Setting up OpenCV Python (CV2)
OpenCVをPython言語を使用して開発するための環境設定の方法を解説します。
Webカメラの画像を取得し・表示するアプリケーションを例に、設定方法を説明します。
1. コーディング
OpenCVが正常にインストールされていればPythonを使う場合には特に設定は必要ありません。
うまくいかない場合は、もう一度インストール編を確認して下さい。
それでは早速コーディングを行います。
以下のコードを適当なテキストエディタでcamera_cv2.pyに入力して下さい。
2. おわりに
これで、OpenCVをPython言語で開発できました。
Pythonでは非常に簡単に、開発できることがわかったと思います。
動作確認として、Webカメラから画像を取得しウィンドウに表示するアプリケーションを作成しました。
この取得した画像に処理を加えることで様々な用途に使用することができます。
OpenCVは高度な処理が簡単に使用できますので、色々試して見て下さい。
コーディングができたら、プログラムを実行します。
▶ Windowsの場合
camera_cv2.pyをダブルクリックして下さい。
▶ Ubuntu / Raspbianの場合
コードの解説を行います。
-
1行目
Linuxで動作させる場合にはこの記述を行って下さい。
-
2-3行目
CVとCV2を明確に分けてインポートします。
-
6-8行目
VideoCaptureクラスの初期化を行います。
また、Webカメラに接続できなければエラーを発生させます。
-
10行目
キャプチャした画像を表示するウィンドウを設定します。
-
12-23行目
Webカメラの画像をキャプチャしウィンドウに表示します。
キー入力があるまで処理を続けます。
-
13-17行目
Webカメラから画像を取得します。
取得に失敗した場合は、Webカメラへの接続を試みます。
接続が失敗した場合は、エラーを発生させます。
-
19行目
Webカメラから取得した画像を表示します。
-
20-23行目
キー入力を30 ms*1待ちます。
*1 ほとんどのWebカメラは30 fpsで動作するので、30 ms待っています。お使いのカメラに合わせて調整してください。
キー入力があった場合に、image.pngというファイルに画像を保存し、ループから脱出します。
-
25行目
全てのウィンドウを破棄します。
-
# -*- coding: utf-8 -*-
-
import cv2
-
import cv2.cv as cv
-
-
if __name__=="__main__":
-
capture = cv2.VideoCapture(0)
-
if capture.isOpened() is False:
-
raise("IO Error")
-
-
cv2.namedWindow("Capture", cv.CV_WINDOW_AUTOSIZE)
-
-
while True:
-
ret, image = capture.read()
-
if ret is False:
-
open_cam(0)
-
if capture.isOpened() is False:
-
raise("IO Error")
-
-
cv2.imshow("Capture", image)
-
-
if cv2.waitKey(30) >= 0:
-
cv2.imwrite("image.png", image)
-
break
-
-
cv2.destroyAllWindows()
$ python camera_cv2.py
プログラムを実行すると、Webカメラから取得された画像がウィンドウに表示されます。
終了するときはキーボードから適当なキーを押して下さい。
すると、画像が保存されプログラムが終了します。
これで動作確認は終了です。
