必要になるたび調べなおしているシリーズの一つ。
OpenCVを用いてWebカメラを扱う際に、フレームサイズとかFPSを設定する方法です。
※Windows向けの場合「cv2.CAP_MSMF」を指定してVideoCapture()を初期化しないと60fpsにならない
cap = cv2.VideoCapture(0, cv2.CAP_MSMF)
cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc('M', 'J', 'P', 'G'))
cap.set(cv2.CAP_PROP_FPS, 60) # カメラFPSを60FPSに設定
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1280) # カメラ画像の横幅を1280に設定
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 720) # カメラ画像の縦幅を720に設定
print cap.get(cv2.CAP_PROP_FPS)
print cap.get(cv2.CAP_PROP_FRAME_WIDTH)
print cap.get(cv2.CAP_PROP_FRAME_HEIGHT)
なぜまた調べたかというと、USB2.0系Webカメラ界のエース c920rの後継機
ロジクールのc922を買ってしまったからです。
ロジクール C922
ぶっちゃけ、c920rとほぼほぼ性能に差はありませんが、
720p(60fps)と言う表記に惹かれ購入。
USB3.0系の産業用カメラならまだしも、市販機で60fpsを謳っているWebカメラは珍しい。
以上。