ホームページ > バックエンド開発 > C++ > キャプチャ バッファの蓄積によって引き起こされる OpenCV VideoCapture の遅延を克服するにはどうすればよいですか?

キャプチャ バッファの蓄積によって引き起こされる OpenCV VideoCapture の遅延を克服するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-06 12:34:02
オリジナル
666 人が閲覧しました

How to Overcome Lag in OpenCV VideoCapture Caused by Capture Buffer Accumulation?

キャプチャ バッファによる OpenCV VideoCapture の遅延

OpenCV の VideoCapture で、フレームの蓄積により遅延の問題が発生しました。キャプチャバッファ。回避策として、バッファをすばやくクリアするために 30fps でバッファを読み取るという手段を講じました。

OpenCV ソリューション

OpenCV は、バッファ サイズを手動で設定する方法を提供します。 :

<code class="cpp">cv::VideoCapture cap;
cap.set(CV_CAP_PROP_BUFFERSIZE, 3); // store only 3 frames</code>
ログイン後にコピー

ただし、このソリューションは DC1394 v 2.x バックエンドでのみサポートされています。

ハックアラウンド 1

代替案このアプローチは、フレームの取得にかかる時間を測定することです。

  • 時間が短い場合、フレームはバッファからのものであり、破棄できます。
  • 時間が超過するまで繰り返します。バッファが空であることを示すしきい値。

ハックアラウンド 2

CV を使用して、高速でフレームを継続的に取得する 3 番目のスレッドを作成できます。 ::VideoCapture.grab() を使用してバッファを空に保ちます。スピンロックを使用して、このスレッドとワーカー スレッド間のアクセスを同期します。

以上がキャプチャ バッファの蓄積によって引き起こされる OpenCV VideoCapture の遅延を克服するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート