アプリ版:「スタンプのみでお礼する」機能のリリースについて

現在VisualStudio2008とOpenCVを用いて、USBカメラから得られた映像をavi形式で保存しようとしています。
プログラムは以下のサイトを参考にしました。
http://chihara.naist.jp/opencv/?%A5%AD%A5%E3%A5% …

プログラムを実際に動かしてみたところ確かに出力はされているのですが、映像がとても速いです(実際には20秒程なのに1,2秒で再生されてしまいます)。
この現象を回避する方法がありましたら是非教えていただきたいです。
よろしくお願いします。

A 回答 (1件)

おそらく,USBカメラからキャプチャしたデータが2フレーム/秒など,


フレームレートの遅いビデオデータなのでしょう(カクカクしてませんか?).
その状態でデフォルト設定で書き込みすると,15フレーム/秒で保存され,早送り状態になってしまいます.

回避策ですが,以下で行けないでしょうか.
(USBカメラが手元にないので未検証です)

1.cvCaptureFromCAM関数の後で,cvGetCaptureProperty関数を実行して,キャプチャのフレームレート(CV_CAP_PROP_FPS)を取得する.
(おそらく2とか出てくるはず)

2.cvCreateVideoWriter関数で,fpsの設定を15ではなく,上で取得したフレームレートを代入する様に変える.

関数仕様は以下にあります.
http://opencv.jp/opencv-1.0.0/document/opencvref …
cvCreateVideoWriterのfps値が任意の小さな値に変えられるのかどうかも未検証です.
駄目ならば,かなり乱暴ですが,cvWriteFrameを10連続くらいで実行してみては(要は,10倍速になってしまうなら,同じ画を10回並べてしまう).
    • good
    • 0
この回答へのお礼

早速試してみます。
ありがとうございました。

お礼日時:2009/10/04 08:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!