4

私は 1080p 30fps が可能な Web カメラを持っており、VirtualDub を使用して Web カメラ自体からビデオをプレビューおよび保存することで確認しました。

なんらかの理由で、OpenCV は約 4FPS しか提供しません。CPU はどのコアも使い果たしていないので、理由がわかりません。(ちなみに、これは実際にフィードを出力するのではなく、フレームをフェッチするだけです)。

OpenCVの経験がある人は誰でも理由を知っていますか? OpenCVがWebカメラから読み取るためにDirectShowを使用していない可能性があります(DirectShowが30fps / 1080pに必要なものであると仮定します-それがvirtualdubが使用するものだと思います)。OpenCV が画像を独自のデータ型に読み込むという事実がMatボトルネックになるのでしょうか?

カメラは Microsoft LifeCam Studio で、OS は Windows 7 with Visual Studios 2010 です。

誰にもアイデアはありますか?

4

2 に答える 2

2

30 FPS は、圧縮されたビデオ (ほとんどの場合 JPEG) をキャプチャすることによって達成されます。たまたま、OpenCV が RGB などの生のビデオをキャプチャするように切り替えています。この場合、有効な FPS は USB 帯域幅によって制限されます。4 FPS は、USB が 1920x2080 24 ビット RGB (25 MB/秒) でプッシュできるデータ量とほぼ同じです。

解決策は、キャプチャ形式 (DirectShow 用語でのメディア タイプ) が圧縮ビデオであり、ソフトウェアで圧縮解除が行われるようにすることです。

于 2012-06-08T10:12:55.430 に答える