免驱摄像头调试记录2-相机输出图像格式

免驱摄像头调试记录2-相机输出图像格式

前言

昨天在使用这款摄像头的时候出现了一个问题,我在Windows在调试的时候,输出帧率大概在40-50FPS(720P下),但是把它用到Jeston nano(一个arm的板子,装的是Ubuntu18.04系统)上帧率只有5FPS左右,画质默认1920*1280,经过半天的调试,解决过程如下。

问题关键词:

  • 摄像头输出只有5FPS

  • yuv/yuy2 摄像头如何在opencv中输出mjpg格式图像

Notes:如果你只关心解决方式 请直接看 最终解决方式

问题解决过程

解决问题过程

出了问题一开始就百度嘛,但是找来找去没有找到趁手的解决方式;然后问题了店家客服,说了帧率只有5FPS,客服也是经验丰富,一看5FPS,就知道输出的是Yuy2格式的图像,不是Mjpg,但是没给解决方法,让自己去网上找办法;然后看了这位老哥的博文:https://blog.csdn.net/qq_38392644/article/details/85197264 ,这里按照他的方法,添加 cap.set(6,cv2.VideoWriter.fourcc('M','J','P','G')),但是不顶用…,最后自己试出来解决方案…

最终解决方式

解决方法就是:将原先的VideoCapture(0)改为VideoCapture(-1)

附最终源代码:

import cv2
import time
capture = cv2.VideoCapture(-1)
while True:
    start = time.time()
    ret, frame = capture.read()

    cv2.imshow("video", frame)
    sp = frame.shape
    print(sp)
    key = cv2.waitKey(1)#这个必须写,否则会因为刷新的问题显示不上
    #fps = capture.get(cv2.CAP_PROP_FPS)
    #print(fps)

    end = time.time()
    print(1/(end-start))
cv2.destroyAllWindows()

yuv格式下(VideoCapture(0)):

在这里插入图片描述

调整过后(VideoCapture(-1)):

在这里插入图片描述

总结

总结如下:

  • 摄像头输出的图像格式有三种:mjpg、yuv、h264
  • YUV和RGB一样都是图像变化方式,Yuy2是YUV的一种;
  • 在opencv中使用摄像头,可以通过调节VideoCapture的值设置不同的输出格式,比如我上面的方法就是0输出的是yuv格式,1920*1680下只有5FPS;-1输出的是mjpg格式,正常模式。
  • 一般免驱摄像头可以输出图像为YUY2和MJPG
  • YUY2和MJPG,前者是无压缩图像格式的视频,系统资源占用少(因为不用解码),不需要解码器,缺点是帧率稍慢(受限于USB分配的带宽),后者是相当于JPEG图像压缩格式,优点是帧率高(视频开启快,曝光快),缺点是影像有马赛克,并且需要解码器,会占用PC系统资源。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GRF-Sunomikp31

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值