【问题标题】:Process image only when new image received from USB camera仅当从 USB 摄像头接收到新图像时才处理图像
【发布时间】:2023-01-02 18:42:49
【问题描述】:

我是多线程/处理的新手。 我在 Python3 中创建了一个多线程应用程序。

  1. 线程 1 使用 cv2.VideoCapture() 从 USB 摄像头读取
  2. 主线程处理此图像并返回后处理图像。

    我意识到主线程在同一个图像帧上运行 3~4 次。 我应该如何使主线程处理功能仅在来自 USB 相机的新图像帧上运行?我应该使用哪些方法/对象来启用它?

【问题讨论】:

  • 请提供足够的代码,以便其他人可以更好地理解或重现问题。

标签: python-3.x multithreading image-processing multiprocessing real-time


【解决方案1】:

有几种方法可以做到这一点:

  • 使用队列。帧处理线程在队列上进行阻塞等待,帧抓取线程在队列中放置一条消息,说明帧已准备就绪。无需将整个视频帧放在队列中,只需将索引放入帧列表中,以便在获取线程将下一帧读入不同的缓冲区时获取并处理它。
  • 使用多处理事件。

here 很好地涵盖了这两个想法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-17
    • 2012-05-04
    • 1970-01-01
    • 2012-07-14
    • 1970-01-01
    • 2020-07-06
    • 2013-12-16
    相关资源
    最近更新 更多