さあ今回はOpenCVライブラリを使ってカメラを自在に操れるようになろう。
PCに接続したカメラから動画を取得しwindowに表示し、”s”キーが押されたらキャプチャを.jpgファイルで保存するソースコードを解説していきます。
✅カメラ複数台接続に対応するため、”n = 0″と変数を設定し、キャプチャが取られると次のカメラに移行する⇨今回は4台カメラ接続を想定
✅datetimeメソッドを使い現在時刻を取得し、キャプチャを時刻名で保存できるようにする
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
import cv2 from datetime import datetime n = 0 # カメラ4台接続の想定 while n < 5 : # VideoCapture オブジェクトを取得 cap = cv2.VideoCapture(n) # 1コマ分のキャプチャ画像データを読み込み ret, frame = cap.read() # frameが取得できなかったらwhileループを抜ける if not ret: break # キーボードで押されるまで待つようにする key = cv2.waitKey(1) & 0xFF cv2.imshow('frame' + str(n+1), frame) if key == ord('s'): # datetimeメソッドを使い現在時刻を取得 date = datetime.now().strftime("%Y%m%d_%H%M%S") # "./img/camera[n]/"に"date.jpg"で保存 path = "./img/camera" + str(n) + "/" + date + ".jpg" cv2.imwrite(path, frame) # ファイル保存 # nをインクリメントし、次のカメラでキャプチャできるようにする n += 1 # 動画ファイル閉じる、もしくはキャプチャデバイスを終了 # ウィンドウ画面の表示を終了 capture.release() cv2.destroyAllWindows() # "q"でwhileループを抜ける if key == ord('q'): break |
いかがだったでしょうか?比較的簡単なコードで写真撮影できますので、ラズパイとUSBカメラを買って試してみて下さいね😄📸
今回はこの辺で、ばいばい👋
コメントを残す