問題タブ [frame-grab]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
128 参照

python - Python用OpenCVでビデオソースが切断されたときのエラー

デスクトップ アプリケーションを表示するために、OpenCV (cv2) を使用してビデオ フィードを読み込んでいます。ビデオ フィードは、Magewell フレーム グラバー デバイスからの外部入力であり、USB 経由でコンピューターに接続され、HDMI 経由でカメラに接続されます (ユーザーは、アプリケーションを使用するときに、このハードウェアを現場に持っています)。USB 接続が失われた場合は、ユーザーに警告を表示し、接続が再確立された場合は、ビデオ フィードの実行を再開する必要があります。

ただし、意図的にフレーム グラバーの USB を切断すると、プロセスが停止します。次のエラー メッセージが表示されます。

私のコードはクラスで実行されていますCamera(threading.Thread)Cameraのサブクラスであるthreading.Threadため、スレッドのネイティブメソッドがあります)。

__init__このクラスの私のメソッドでは、設定していますself._cam = cv2.VideoCapture(0)。(0 はデフォルトのビデオ ソースで、この場合はフレーム グラバーです)。

起動時に、スレッド ネイティブ メソッドstart()は として呼び出されsuper().start()ます。これにより、 が呼び出されますrun()。次のようなrun()呼び出し(簡略化):__grab_frame

このコードを実行すると、USB を抜くまですべてが機能します。その後、上記の 3 行のエラー メッセージが表示され、その後に"not connected"すべてが停止します。

その後、フレーム グラバーを再接続すると、数秒ごとに次のメッセージが繰り返し表示されます (新しいエラー ID に注意してください!)。

... 続いて print "not connected"

内蔵のラップトップ カメラも有効にしてエラーを再現しようとしたので、2 つの機能するビデオ ソースができました。次に、内蔵カメラ (source=0) を無効にして、OpenCV が他の利用可能なビデオ ソースに移行できるかどうかを確認しますが、その場合も同じエラー メッセージが表示されます。そのため、ビデオ ソースが利用できないというよりも、ビデオ ソースが切断されていることに関連する問題のようです。

どんな助けでも大歓迎です!