无法使用非主线程在Python OpenCV(cv2)中启动相机捕获

无法使用非主线程在Python OpenCV(cv2)中启动相机捕获,python,opencv,Python,Opencv,我有一些python opencv(cv2)代码,用于打开视频捕获设备(摄像头): 如果我从python主线程调用这段代码,那么视频捕获启动正常;但是,如果我从非主线程调用此设置代码,相机将永远不会打开。VideoCapture()调用永远不会返回。我正在创建一个背景线程,只需执行以下操作: run_thread = threading.Thread(target=self.run) run_thread.start() 这仅仅是OpenCV/cv2中的一个bug,还是我忽略了python线程

我有一些python opencv(cv2)代码,用于打开视频捕获设备(摄像头):

如果我从python主线程调用这段代码,那么视频捕获启动正常;但是,如果我从非主线程调用此设置代码,相机将永远不会打开。VideoCapture()调用永远不会返回。我正在创建一个背景线程,只需执行以下操作:

run_thread = threading.Thread(target=self.run)
run_thread.start()
这仅仅是OpenCV/cv2中的一个bug,还是我忽略了python线程的限制?

非常概括地提到这是一个
OpenCV
限制。此外,对于
show
waitKey
方法也存在此约束


这可以为python openCV多线程提供一些想法。

另一篇文章似乎已经过时或不正确,至少对于OSX上运行的t openCV 2.4.6来说,因为我可以在后台线程中捕获帧,除了主线程之外,我无法启动视频捕获。无论如何,感谢链接。官方代码示例现在在这里:
run_thread = threading.Thread(target=self.run)
run_thread.start()