現在pythonでopencvにて複数カメラのキャプチャを試しているのですが、
PCにはUSB拡張(3ポートに拡張)を接続し、その先3ポートに同じカメラ3つを接続して試しているのですが、
ほかのPCにUSB拡張ごと繋ぎ変えたり、拡張先のUSBの順番を入れ替えたりすると表示されるイメージの順番が入れ替わってしまいます。
カメラ毎に識別して表示の順番を固定化する方法をご教授願いたいです。
python
1#この関数を3台分呼ぶ 2def ConnectCamera( self,device ): 3 4logger.info( self.TAG + 'カメラデバイスと接続開始します。:' + self.device ) 5 if device == 'USB-CAM0': 6 self.cap = cv2.VideoCapture( 0 ) 7 # カメラ0 8 elif device == 'USB-CAM1': 9 self.cap = cv2.VideoCapture( 1 ) 10 # カメラ1 11 elif device == 'USB-CAM2': 12 self.cap = cv2.VideoCapture( 2 ) 13 #カメラ2 14 else: 15 self.cap = cv2.VideoCapture( self.device ) 16
cv2.VideoCapture()のカッコ内の数値を変えると表示される順番も変わるので
そこを何らかの方法で識別できればできそうな気もしておりますが、、、
現在はカッコ内の数字をいちいち入れ替えているのでそこをプログラム上で固定化させたいです。
表示方法ですが、カメラそれぞれのスレッドを立ててキューに入れる⇒キューから取り出す⇒QTのラベルに表示
をループで繰り返しています。
ですがスレッドを別々で立てているのでそこはあまり関係ないのかなと思案しております。
見づらいコードで申し訳ないです。


回答1件
あなたの回答
tips
プレビュー