python - 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)
解决方案
请提供您正在使用的确切 SOM 和相机。
有很多因素,例如相机捕获的图像的格式、它们如何传输以及它们如何被 SOM 接收和管理。
就带宽而言,传输它们不应该是问题。
我假设 opencv 中的设置仅适用于 SOM,不会更改相机捕获的格式,因此 SOM 需要进行更多处理,因此帧速率会下降。
[编辑]我还不能发表评论,所以我希望你能读到这个……你的相机链接已经死了:/
推荐阅读
- reactjs - 如何将本地(我的系统)png 文件导入 React 应用程序?
- python - 选择未知多列具有 False 值的位置
- elasticsearch - 如何在 GKE 上为我的弹性搜索设置设置存储?
- opengl - OpenGL depth issue
- php - 我在mysql中找不到*确切*语法错误是什么
- arrays - 如何在本机反应中仅显示特定数组项的详细信息
- python - 用for循环挑选和写出列表的一些部分
- java - java程序中硒Web驱动程序中的出生日期格式
- php - 为什么 mbstring 不能将 latin1 字符检测为 cp1252?
- c# - 如何修复 linq join 中的“匿名类型不包含‘字段’的定义”错误?