Qcam Orbit AF とOpenCVでみる

つづいてキャプチャを試す。
とりあえず、ffmpegで1600x1200でキャプチャできることも確認。MJPEGじゃなくてYUVYならいけるようだ。
が、OpenCVで試すと強制的に640x480になる。バグっぽい。
cvcap_v4l.cppに幾つかprintfを仕込んでためすと、VIDIOC_G_FMTを発行してるタイミングでw/hが書き換わるようだ。
CVSから最新版をとってきたら問題なく動いた・・・と思いきや、960x720までしかいかない。
いろいろhackしてみると、どうも入力がMJPEGで固定されているのが問題のようだ。
cvcap_v4l.cppの550行目前後のV4L2_PIX_FMT_MJPEGとV4L2_PIX_FMT_YUYVをいれかえる。
うまくいった・・・と思いきや、640x480より上の解像度にすると映像が激しく乱れる。一応1600x1200でとれるけど。


バッファの確保周りぽいけど、ちょっと検索してもめぼしいページはなし。ついでに、CVSではFPS設定が入ってるようだが、CV_CAP_PROP_FPSは無視する模様。

おなかがすいたので今日はこのへんで終了。