【问题标题】:Python Multithreaded Video Read/Write [closed]Python多线程视频读/写[关闭]
【发布时间】:2022-01-15 13:01:41
【问题描述】:

我一直在尝试优化我拥有的视觉处理应用程序,该应用程序从 USB 摄像头读取数据,处理帧,然后将帧写入文件。我已经看到人们通过线程化视频读/写来处理这个问题的例子,并且处理只需要最后一帧并并行处理它。我只能每秒左右处理一次帧。

我一直在玩一些简单的代码示例,但想知道是否有一个经过良好测试和使用的库可以在某处执行此操作?我不认为我的示例具有工业实力,而且有时我的环境会在应用程序完成时冻结。

【问题讨论】:

  • 您应该向我们展示您的尝试。关键是线程之间的良好通信。您可以为此使用Queue;让捕获线程在Queue 上每秒存储一帧,并让处理线程阻塞等待某些东西出现。
  • 所以你必须丢弃帧,对吧?

标签: python multithreading opencv


【解决方案1】:

py 很简单!这是在单独线程中处理图像的基本模板。您所要做的就是将 f() 的实现替换为您想要的并发功能:

from concurrent.futures import ThreadPoolExecutor

import cv2

def f(image):
    print(cv2.sumElems(image))

cap = cv2.VideoCapture(-1)
with ThreadPoolExecutor() as exe:
    while True:
        _, image = cap.read()
        exe.submit(f, image)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-01
    • 2017-07-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多