とにかく書く

日々の雑感や知り得たことを、とにかく書いています

画像ビューアーの作成

Python で画像ビューアーを作ってみようと思っている。

先日、JavaQIV のようにキー入力で操作する画像ビューアーを作った。
目的としては、Windows の画像表示ソフトの使い勝手が良くないと感じたから。
ところが、使っているPCの JRE のバージョンが 8 代で、Tiff がまだサポートされていなかった。
加えて、jar ファイルから起動すると、なぜか Ctrl + マウスホイールが機能しなかった。

そこで、またまた今更ながら Python で再実装してみる。
Java のときは JavaFXGUI を実現したけど、Python の場合は OpenCV の HighGUI を使ってみる。
マウスホイールの検出はできないようなので、右クリック+カーソル移動で拡大縮小を実現する予定。

実行ファイルには比較的容易にできそう。
Java よりも開発を含めて全体的に軽やかで、サラリとした印象は受けた。
JITコンパイラがない頃の VM とか IBM のソフトからフリーになった直後の Eclipse とかの重かった時代の印象を引き摺っているからかもしれない。)

ちなみに Python は、タブでブロックを表したり、だいたい皆おなじコードの書き方になる、程度しか知らない。まだ if 文すら書けない。
JavaC# のように、充実したライブラリが強みの模様。10年以上前に読んだ本で、まつもとゆきひろ氏が、Python は作者の性格もあってどちらかといえばお固い…みたいなことを話していた気がする。

まずは Python から OpenCV を読み込めるまで進めてみた。
結論から言えば、以下でできた。その他は、私の環境ではすでにインストール済み。

 # pacman -S python python-pip opencv hdf5
 # pip install numpy
 $ python
 >>> import cv2
 >>> cv2.__version__
 '4.5.1'

途中のエラーと対処法は以下。
OpenCV をインストールしていない。

 $ python
 >>> import cv2
ModuleNotFoundError: No module named 'cv2'

・hdf5 をインストールしていない。

$ python
>>> import cv2
ImportError: libhdf5.so.200: cannot open shared object file: No such file or directory