OpenCV の VideoCapture read がなんか古い
OpenCV で USBカメラをつなげて VideoCapture で read したところ、なぜか2フレームぐらい古いフレームが取得されてしまう。
結果、遅延した感じに見える。
なんで?困る〜。と思ってたらバッファされてるからとのこと。
CAP_PROP_BUFFERSIZE で バッファ数を指定できるのでそれで1を指定したら遅延しなくなった!(0は指定できない)
Pythonだと以下のような感じ。
cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_BUFFERSIZE, 1)
_, frame = cap.read()
デフォルトは 3 みたいだから、2つ前のフレームが取得されたようだ。
1にしとけば毎回最新のが取れるみたい。やったね!
以上!