Pythonライブラリ | OpenCVでカメラから画像/動画を取得する
- 2022.09.17
- Python
今回はOpenCVライブラリのうち、「カメラ」から画像を取得する方法を検証します。
基本:カメラから画像を取得する
以下がコードになります。実行したタイミングで、特定のカメラから画像を取得します。
import cv2
try:
# 1)カメラIDを設定
camera = cv2.VideoCapture(0)
# 2)設定したカメラから画像を取得
ret, img = camera.read()
# 3)画像を表示する / 引数=(Window名,表示したい画像)
cv2.imshow('Camera',img)
# 4)キーイベントの待機 / 引数=0 で何か入力されるまで待つ
cv2.waitKey(0)
# 5)入力されたら、ウィンドウを閉じる
cv2.destroyAllWindows()
# 6)カメラのメモリを解放する
camera.release()
# except) Error時
except FileNotFoundError as e:
print(e)
基本:カメラから動画を取得する
こちらは while文で画像取得を繰り返しています。
import cv2
try:
# 1)カメラIDを設定
camera = cv2.VideoCapture(0)
# 2)繰り返し画像を取得する
while True:
# 3)設定したカメラから画像を取得
ret, img = camera.read()
# 4)画像を表示する / 引数=(Window名,表示したい画像)
cv2.imshow('Camera',img)
# 5)Escが入力されたらループ処理を終了する
key = cv2.waitKey(10)
if key == 27:
break
# 6)入力されたら、ウィンドウを閉じる
cv2.destroyAllWindows()
# 7)カメラのメモリを解放する
camera.release()
# except) Error時
except FileNotFoundError as e:
print(e)
応用:任意のタイミングでシャッターを押す
キーイベントで何か入力したタイミングでシャッターが押されるように改造します。
今回は「Space」キーを押下したときに、シャッターを切ります。
import cv2
import winsound
try:
# 1)カメラIDを設定
camera = cv2.VideoCapture(0)
# 2)繰り返し画像を取得する
while True:
# 3)設定したカメラから画像を取得
ret, img = camera.read()
# 4)画像を表示する / 引数=(Window名,表示したい画像)
cv2.imshow('Camera',img)
# 5)キー入力
# Space(32) : シャッターを切る
# Esc(27) : 処理終了
key = cv2.waitKey(10)
if key == 32: #space
winsound.Beep(2000, 200)
cv2.waitKey(0)
break
elif key == 27:
break
# 6)入力されたら、ウィンドウを閉じる
cv2.destroyAllWindows()
# 7)カメラのメモリを解放する
camera.release()
# except) Error時
except FileNotFoundError as e:
print(e)
キー入力の部分(5の部分)を改造しました。
Spaceを入力した際は、cs2.waitKey(0)としてキー入力を受け付けるまでは処理を停止しています。
今回は以上です!ではまた!
-
前の記事
Pythonライブラリ | OpenCVで画像処理 2022.09.16
-
次の記事
Pythonの開発環境整備 | RaspberryPiでJupyter Notebookサーバ構築 2022.09.18