私はいくつかの画像処理ルーチン用の C++/opencv コードを作成しており、テスト ビデオ入力を取得するために Dell Precision 7730 の独自の Web カメラを使用しています。ビデオ カードは Quadro P5200 です。
私は VSE 2015 と opencv 4.1.0 を使用して Windows 10 で始めました。そこで 1280x720 のウェブカメラ ビデオをキャプチャし、30fps またはカメラが出力しているレートで表示できます。
しかし、最近、Eclipse を搭載した Ubuntu 18.04 (2 台目の SSD にインストール) に切り替えました。これは、UDP パケットを介してビデオをイーサネット ポートに送信する実際の外部プロトタイプ カメラで、Windows が受信パケットをドロップしすぎていたためです。(これは後で対処する別の問題ですが、Ubuntu ではパケットのドロップは発生しません。30fps で受信して表示できます。)
しかし、Ubuntu では、基本的に同じ C++ コードを使用しても、Web カメラのフレームレートは 10fps 未満に制限されます。キャプチャ (cap >> Mat) と表示 (imshow) 以外何も行わなくても、フレームレートは 7.5fps 程度に低下することがよくあります。
しかし、Ubuntu アプリ Cheese ではこの問題は発生していないようで、フレーム レートは 30fps のようです。
Ubuntu で何が起こって、カスタム OpenCV アプリで Web カメラのフレーム レートが抑制されるのか、誰か知っていますか? また、修正方法は?
注: Ubuntu の安定性のために BIOS で切り替え可能なグラフィックスをオフにしましたが、これは役に立つだけだと思います。