問題タブ [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.
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 が他の利用可能なビデオ ソースに移行できるかどうかを確認しますが、その場合も同じエラー メッセージが表示されます。そのため、ビデオ ソースが利用できないというよりも、ビデオ ソースが切断されていることに関連する問題のようです。
どんな助けでも大歓迎です!