首页 > 解决方案 > USB Camera OpenCV 的 YUYV 帧速率比 MJPG 快

问题描述

我正在使用运行 cortex A5 @500MHz 的 SOM,并试图最大化从 USB 摄像头接收的帧速率。我的相机支持使用 YUYV 和 MJPEG 进行视频拍摄。

其他帖子建议强制 opencv 从相机读取 MJPEG 帧,但这会减慢帧速率。

我目前可以读取约 18 fps 的 YUYV 格式和约 10 fps 的 640x480 读取 MJPEG。目前我只是抓帧,没有做任何其他处理。我在每个循环中都获取 CAP_PROP_FOURCC 格式,以确保 opencv 正确设置捕获格式。

我目前正在运行 opencv 4 和 python3.5

任何想法为什么会发生这种情况?

编辑:捕获代码:

# Repeatedly capture current image
while True:
 ret, image = cap.read()
 if image is None:
    time.sleep(0.5)
    continue
 codec = cap.get(cv2.CAP_PROP_FOURCC)
 print(codec)
 # Print the framerate.
 text = '{:.2f}, {:.2f}, {:.2f} fps'.format(*fps.tick())
 print(text)

标签: pythonpython-3.xopencv

解决方案


请提供您正在使用的确切 SOM 和相机。

有很多因素,例如相机捕获的图像的格式、它们如何传输以及它们如何被 SOM 接收和管理。

就带宽而言,传输它们不应该是问题。

我假设 opencv 中的设置仅适用于 SOM,不会更改相机捕获的格式,因此 SOM 需要进行更多处理,因此帧速率会下降。

[编辑]我还不能发表评论,所以我希望你能读到这个……你的相机链接已经死了:/


推荐阅读