我有一些python-opencv(cv2)代码打开视频捕获设备(相机):
self.capture = cv2.VideoCapture(device)
如果我从python主线程调用此代码,VideoCapture启动OK;但是,如果我从非主线程调用此设置代码,则相机永远不会打开。 VideoCapture()调用永远不会返回。我只是通过以下方式创建一个后台线程:
run_thread = threading.Thread(target=self.run)
run_thread.start()
这只是OpenCV / cv2中的一个错误,还是我忽略了python线程的限制?
答案 0 :(得分:1)
This SO post非常简单地提到它是openCV
限制。此外,show
和waitKey
方法存在此约束。
这个official code sample可以提供一些关于python-openCV多线程的想法。