Python で画像ビューアーを作ってみようと思っている。
先日、Java で QIV のようにキー入力で操作する画像ビューアーを作った。
目的としては、Windows の画像表示ソフトの使い勝手が良くないと感じたから。
ところが、使っているPCの JRE のバージョンが 8 代で、Tiff がまだサポートされていなかった。
加えて、jar ファイルから起動すると、なぜか Ctrl + マウスホイールが機能しなかった。
そこで、またまた今更ながら Python で再実装してみる。
Java のときは JavaFX で GUI を実現したけど、Python の場合は OpenCV の HighGUI を使ってみる。
マウスホイールの検出はできないようなので、右クリック+カーソル移動で拡大縮小を実現する予定。
実行ファイルには比較的容易にできそう。
Java よりも開発を含めて全体的に軽やかで、サラリとした印象は受けた。
(JITコンパイラがない頃の VM とか IBM のソフトからフリーになった直後の Eclipse とかの重かった時代の印象を引き摺っているからかもしれない。)
ちなみに Python は、タブでブロックを表したり、だいたい皆おなじコードの書き方になる、程度しか知らない。まだ if 文すら書けない。
Java や C# のように、充実したライブラリが強みの模様。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