(2020-05-07 初稿 - 2021-05-19 修正)
はじめに
pythonでは、OpenCVというライブラリを用いることにより、簡単に画像を表示することができる。
たくさんのサイトに有益な情報が掲載されているが、筆者の備忘録としてメモを残す。
参考にしたサイトは以下のとおり。
いずれのサイトも大変参考になった。多謝。
インストールと環境
スクリプトを実行するために、いくつかのライブラリをインストールする必要がある。
筆者の環境は、DebianとRaspberry Piなので、それぞれのパッケージをインストールする。
なお、pythonにはpip3等のライブラリをインストールするコマンドもあるが、Debian等aptでファイル更新ができる環境の場合は、aptのパッケージでインストールした方が、セキュリティ、他のプログラムとの整合性の点で安心できると思われる。
参考までに筆者の環境は執筆時点でのデスクトップ、ノートPC、Raspberry Pi4の環境は以下のとおり。
- Linux hostname 4.19.0-8-amd64 #1 SMP Debian 4.19.98-1+deb10u1 (2020-04-27) x86_64 GNU/Linux
- Linux hostname 4.19.97-v7l+ #1294 SMP Thu Jan 30 13:21:14 GMT 2020 armv7l GNU/Linux
今回のスクリプト実行に必要なライブラリを以下のとおりインストールする。
sudo apt-get install python3-opencv
実行例(簡単なpythonスクリプト)
筆者は、とりあえず手元の画像ファイルを表示させ、矢印キー等でスライドショーを実行したくて、以下の簡単なpythonスクリプト(gazoview.py)を作成した。
なお、実行環境によって、キー入力後のコードが変更するかもしれないので、スクリプトの中では、不明なキーを入力するとターミナルにキーコードを表示させるようにしてある。
$ cat gazoview.py #!/usr/bin/env python3 #coding: UTF-8 import cv2 img = cv2.imread('sample.png') while (1): cv2.imshow('sample', img) key = cv2.waitKey(0) if key == 27: break elif key == 81: print("Left Key") elif key == 82: print("Up key") elif key == 83: print("Right key") elif key == 84: print("Down key") else: #print("Key: \'" + chr(key) + "\' pressed.") print(key) cv2.destroyAllWindows()
実行にあたっては、適当な画像ファイル(png)をスクリプトと同じディレクトリにsample.png というファイル名で保存しておく。
ちなみに、右矢印キーと同じ機能をnに割り当てるには、上記スクリプトを以下のように変更する。
elif key == 83 or key== 110: print("Right key")
くどいようだが、環境によってキースキャンコードは違っている可能性があるので、上記スクリプトで確認すること。
おわりに
OpenCVライブラリを用いることにより、驚くほど簡単に画像を表示させることができた。
上記スクリプトを改良することで、ディレクトリ内の画像ファイルを順番に表示させることも可能である。
また、機会があったら紹介する。