0

IP カメラから毎秒 (または 2) フレームを取得し、何らかの方法で処理する必要があるプロジェクトに取り組んでいます。でのキャプチャの初期化後

CvCapture* capture = cvCaptureFromFile(ipSource);

1秒(または2秒)の遅延を導入するループからフレームを取得しています-

frame = cvQueryFrame(capture);

問題 - 取得しようとした瞬間のフレームではなく、連続したフレームのみを取得します (バッファからだと思います)。撮りたい瞬間にフレームを入れるにはどうしたらいいですか?

4

1 に答える 1

0

cvQueryFrame実際に呼び出しcvGrabFrame()てからcvRetrieveFrame(). 最初の関数は、カメラから画像を取得し、内部に保存します。2 番目のフレームは実際にそれを解凍し、IPLImage を返します。手動で呼び出して、プロセッサーの重いコードをそれらの間に入れることができます。

他のオプション (迅速かつ汚い) は、フレームを継続的に取得する別のスレッドを実行することです。その後、最新のフレームを簡単に取得できます。

それが役立つことを願っています..

于 2012-07-16T16:19:37.623 に答える