1. はじめに
計測中の様子をカメラで録画するときってありますよね.
別に撮るだけだったら特に苦ではないですが,計測データと録画映像とをリンクさせるとなると話が別です.
後でスタート位置が合うように調整するという,とてつもなく面倒な作業が待っています.
だったらそもそも計測開始時に録画を開始すればいいのではというお話です.
2. 必要なもの
- USBカメラ
- OpenCVライブラリ
3. 記述
まず,USBカメラのcapture IDを取得します.
import cv2
for i in range(20):
cap = cv2.VideoCapture(i)
if not cap.isOpened():
continue
print(f"Camera {i}: {cap.get(cv2.CAP_PROP_FRAME_WIDTH)}x{cap.get(cv2.CAP_PROP_FRAME_HEIGHT)}")
cap.release()
実行結果は後程.
以下のコードを実行すると別画面で録画始まり,Enterキーで終了します.
import cv2
import time
cap = cv2.VideoCapture(2, cv2.CAP_DSHOW)
fmt = cv2.VideoWriter_fourcc('m', 'p', '4', 'v')
fps = 30
size = (640, 360)
write = cv2.VideoWriter("C:/path/to/file/hoge.m4v", fmt, fps, size)
while True:
ret, frame = cap.read()
frame = cv2.resize(frame, size)
write.write(frame)
cv2.imshow('WebCam', frame)
if cv2.waitKey(1) == 13:
break
write.release()
cap.release()
cv2.destroyAllWindows()
後は,スレッドやRecodingの呼び出しと組み合わせれば完成です.
4. おわりに
USB出力でない一眼レフなどとも連動したいところです.