2013-12-07 62 views
0

我有打開的視頻採集設備(攝像頭)一些Python-的OpenCV(CV2)代碼啓動攝像頭採集的Python-的OpenCV(CV2):無法使用非主線程

self.capture = cv2.VideoCapture(device) 

如果我從python主線程調用此代碼,VideoCapture開始正常;但是,如果我從非主線程調用此設置代碼,則攝像機永遠不會打開。 VideoCapture()調用永遠不會返回。我簡單地做創建一個後臺線程:

run_thread = threading.Thread(target=self.run) 
run_thread.start() 

這是簡單的OpenCV中/ CV2的錯誤還是我俯瞰蟒蛇線程的限制?

回答

1

This SO post相當概括地提到它是一個openCV限制。此外,對於showwaitKey方法存在此限制。

這個official code sample可以給出python-openCV多線程的一些想法。

+1

其他SO後顯得過時或不正確的,至少在OSX上運行的時候,OpenCV的2.4.6,因爲我可以在後臺線程捕捉幀,我只是不能在任何東西,但主要的啓動VideoCapture線。無論如何,感謝您的鏈接。 –

+0

官方代碼示例現在位於:https://github.com/opencv/opencv/blob/master/samples/python/video_threaded.py – fdelia

+0

鏈接已更新,thx –