我是多线程/处理的新手。我在Python3中创建了一个多线程应用程序。
- 线程1读取USB相机与cv2. videoccapture ()
- 主线程处理此图像并返回后处理的图像。
我意识到主线程在同一图像帧上运行了3~4次。我该如何使主线程处理功能仅在来自USB相机的新图像帧上运行?我应该使用哪些方法/对象来启用这一点?
有几种方法可以做到:
- 使用队列。帧处理线程在队列上执行阻塞等待,帧抓取线程在队列上放置消息,表示帧已准备好。不需要将整个视频帧放在队列中,只需将索引放入帧列表中,以便它可以在获取线程将下一帧读取到不同缓冲区时获取并处理它。 使用多进程事件。
这两个概念在这里都很好地涵盖了。