2014-12-04 3 views
1

Я работаю с opencv и имею два источника видео. Я использую следующий код. Иногда код работает, а иногда он не работает. Есть ли проблема с моим кодом. Как я могу сделать поправки ...Opencv два источника камеры

import cv2 

Channel0 = cv2.VideoCapture(0) 
IsOpen0, Image0 = Channel0.read() 
Channel1 = cv2.VideoCapture(1) 
IsOpen1, Image1 = Channel1.read() 

while IsOpen0 and IsOpen1: 
    IsOpen0, Image0 = Channel0.read() 
    IsOpen1, Image1 = Channel1.read() 
    cv2.imshow("Webcamera",Image0) 
    cv2.imshow("Panasonic",Image1) 
    cv2.waitKey(10) 

PS Это всегда работает, когда я использую только один источник видео.

+0

Не могли бы вы объяснить, что он делает, когда он не работает? – user2313067

ответ

0

Я думаю, что я понял свою ошибку. По какой-то причине работает следующий код. Должно быть, проблема с резьбой ...

import thread 
import time 
import cv2 


def Webcamera(): 
    Channel0 = cv2.VideoCapture(0) 
    IsOpen0, Image0 = Channel0.read() 
    while IsOpen0: 
     IsOpen0, Image0 = Channel0.read() 
     cv2.imshow("Webcamera",Image0) 
     cv2.waitKey(10) 
    if not IsOpen0: 
     time.delay(0.5) 
     print "Error opening Web camera" 


def Panasonic(): 
    Channel1 = cv2.VideoCapture(1) 
    IsOpen1, Image1 = Channel1.read() 
    while IsOpen1: 
     IsOpen1, Image1 = Channel1.read() 
     cv2.imshow("Panasonic",Image1) 
     cv2.waitKey(10) 
    if not IsOpen1: 
     time.sleep(0.5) 
     print "Error opening Panasonic" 

try: 
    thread.start_new_thread(Webcamera,()) 
    thread.start_new_thread(Panasonic,()) 
except: 
    print "Error: unable to start thread" 

while 1: 
    pass 

Смежные вопросы