使用全局变量进行图像处理的Python 3中的线程似乎效率更高

时间:2018-06-11 23:58:37

标签: python multithreading opencv

我正在通过现场网络摄像头录制来检测和跟踪QR标签。我决定使用线程来创建一个单独的线程来连续读取/分配帧到全局变量图像,并使主线程循环连续通过图像处理循环,根据需要采用每个帧(图像)来识别标记。我使用线程(上一个解释)实现了这一点,并且没有线程化(在循环外部记录初始化,csv.read()在图像处理循环中调用当前帧)。两个版本都输出实时录制并突出显示QR码的边缘。

我希望线程版本更有效,但似乎线程效率不是那么高(可能更差)。线程版本更多" flickery"。为什么会这样?我的实施不正确吗?

QR tracker without threading

QR tracker with threading

提前致谢!

更新:我在线程版本中实现了相同的功能,而没有使用全局变量。相反,我使用了一个使用cv2.read()的方法框架的类。看起来我可能会得到更好的结果,但可能与我没有穿线的东西相提并论。

0 个答案:

没有答案