【CV】树莓派+OpenCV-python解决摄像头分辨率及帧率过低无法调整问题

这篇具有很好参考价值的文章主要介绍了【CV】树莓派+OpenCV-python解决摄像头分辨率及帧率过低无法调整问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题

笔者使用的是USB摄像头。
如果你使用的是CSI摄像头,vcgencmd get_camera命令可能能够帮到你。希望读取高帧率可以看看CSDN-树莓派ARM64系统中如何设置opencv-python读取高清摄像头画面
如果你使用的是USB摄像头,vcgencmd get_camera命令会出现supported=1 detected=0的提示,这是正常的。同时,raspistill库不支持USB摄像头,不能使用该库也是正常的。

之前在树莓派上一直使用的30fps的低帧率摄像头,所以一直没有发现opencv不能设置摄像头的帧率和分辨率,一直跑的是320x240,30fps
最近更换了一个在640x480下180fps,在1280x720下90fps的摄像头才发现opencv怎么都不能更改摄像头的分辨率,并且就算是在默认的320x240分辨率下也只有30fps

解决过程

需要直接看解决方案请下拉,这里的内容如果不全看完可能会误导

1.用fswebcam拍照,尝试摄像头在树莓派上是否能切换到1280x720

安装:sudo apt-get install fswebcam
使用:fswebcam --no-banner -r 1280x720 -q img.jpg
发现能够保存下来一张1280x720分辨率的图片,说明摄像头调整分辨率没问题

fswebcam命令参数使用见 CSDN-树莓派使用摄像头——fswebcam

2.用luvcview显示摄像头画面

安装:sudo apt-get install luvcview
使用:luvcview -s 1280x720
可以看到分辨率显示正确,但是帧率只有7帧左右
【CV】树莓派+OpenCV-python解决摄像头分辨率及帧率过低无法调整问题
另外,命令输出中显示设置格式为MJPG,设置分辨率为1280x720,设置帧率为90fps,没有问题
【CV】树莓派+OpenCV-python解决摄像头分辨率及帧率过低无法调整问题

解决方案

偶然看见一篇文章说是视频读取格式导致帧率过低,尝试一下发现可以输出高帧率了。

大部分摄像头支持YUY2和MJPG两种格式,而使用YUY2格式时因为数据量较大,可能帧率会较低,所以需要切换成MJPG格式输出。

  • 笔者在windows上使用opencv读取这个摄像头可以不需要修改视频格式就能到高帧率,猜测可能在windows上opencv默认读取MJPG格式,而在树莓派上opencv默认读取YUY2格式

opencv中的cap.set()函数可以对摄像头进行设置,部分参数如下

参数 作用
3 CV_CAP_PROP_FRAME_WIDTH
4 CV_CAP_PROP_FRAME_HEIGHT
6 CV_CAP_PROP_FOURCC 4个字符表示的视频编码器格式

使用cap.set(6,cv2.VideoWriter.fourcc('M','J','P','G'))函数即可将视频格式切换成MJPG格式,
修改后进行摄像设置的代码为:

cap.set(6,cv2.VideoWriter.fourcc('M','J','P','G'))
cap.set(3,1280)
cap.set(4,720)

参考的两篇博客:
CSDN-Python opencv 调用摄像头时设置以MJPG等编码格式获取视频
CSDN-Python+Opencv读取高帧率USB摄像头问题文章来源地址https://www.toymoban.com/news/detail-448839.html

到了这里,关于【CV】树莓派+OpenCV-python解决摄像头分辨率及帧率过低无法调整问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 树莓派4B使用opencv获取Camera Module 3摄像头图像(解决无法直接获取图像的问题)

    莓派4B在使用官方的Camera Module 3摄像头时,无法通过opencv直接获取到图像,具体问题表现在 opencv可以打开摄像头但是无法获取到图像信息,导致imshow等方法因无法获取图像数据进而报错 ,只能使用picamera2库进行图像的获取和和处理,对不熟悉picamera2库的同学不够友好; [INF

    2024年04月27日
    浏览(51)
  • 树莓派——opencv打开树莓派摄像头调试记录

    目录 一、安装包:(注意换要源,不要用系统默认源) 问题1:磁盘空间不足——把根目录扩展到整个SD卡 解决:把根目录扩展到整个SD卡 二、下载 1、先创建opencv目录: 2、下载 问题:fatal: unable to access \\\'https://github.com/opencv/opencv.git/\\\': gnutls_handshake() failed: The TLS connection was

    2024年02月11日
    浏览(45)
  • opencv-python调用摄像头失败 global /io/opencv/modules/videoio/src/cap_v4l.cpp (1000) tryIoctl VIDEOIO(V4L2

    Ubuntu 18.04 aarch64 Python 3.7.15 opencv-python 4.6.0 插入USB摄像头后, /dev/video0 会正常出现,使用 fswebcam 也能正常拍摄照片。但运行 opencv-python 的视频拍摄例程时出错,例程如下。 如果例程正确运行,屏幕窗口中将显示灰度处理后的摄像头实时视频。 报错信息如下 单步调试后,发现

    2023年04月24日
    浏览(72)
  • 【树莓派】USB摄像头+python+opencv 六、报错:python Non-ASCII character '\xe5' in file

    插入usb摄像头,在命令行模式下输入        lsusb         如果看到列举出来的信息有camera的话就说明识别成功,可以使用。 1、拍照测试 安装 fswebcam 输入以下命令,开启摄像头 2、录像测试 安装 luvcview 输入以下命令,开启摄像头 如果发现安装的是python3的话就需要把pyth

    2024年02月05日
    浏览(47)
  • 树莓派学习:学习opencv+用opencv获取树莓派mjpg摄像头视频流

    目录 前提步骤 打开树莓派摄像头 查看是否有图像,登录游览器打开树莓派IP地址的8080端口 获取mjpg的视频流url 代码 先设定好mjpg的视频流的url 利用opencv库中的v2.VideoCapture类读取mjpg视频流   cv2.VideoCapture() 检查摄像头是否成功打开,如果没有,则打印错误消息并退出程序 

    2024年02月03日
    浏览(53)
  • cv2.VideoCapture使用,opencv读取摄像头,视频图像

            cv2.VideoCapture()用于读取视频,也可以用于读取摄像头图像。         上面的2种写法,第一种表示读取摄像头,第二种读取视频文件,返回值就是视频数据。         在读取到视频后,可以使用isOpened方法来判断视频是否能够打开,能打开返回True,不能够打

    2024年02月12日
    浏览(78)
  • python opencv 调用摄像头失败问题的解决 Windows

    省流: 内含 Python Opencv 双目相机拍照代码(手动 or 自动),可自取; 如果你的 cv2.VideoCapture() 函数卡住但不报错,打开 Windows “相机”应用可以正常看到摄像头画面,且能够正常用 cv2.imshow() 打开图像,请继续阅读。 这个学期选修了方璐老师的媒体与认知课程,期末的 Fin

    2024年02月05日
    浏览(47)
  • opencv进阶09-视频处理cv2.VideoCapture示例(打开本机电脑摄像头)

    视频信号(以下简称为视频)是非常重要的视觉信息来源,它是视觉处理过程中经常要处理的一类信号。实际上,视频是由一系列图像构成的,这一系列图像被称为帧,帧是以固定的时间间隔从视频中获取的。获取(播放)帧的速度称为帧速率,其单位通常使用“帧/秒”表示

    2024年02月12日
    浏览(48)
  • Python OpenCV 读取USB摄像头报错问题解决

    Traceback (most recent call last):   File \\\"G:Python图像识别相关学习视频人体姿势检测.py\\\", line 32, in module     cv2.imshow(\\\'image_title\\\',img) cv2.error: OpenCV(4.6.0) D:aopencv-pythonopencv-pythonopencvmoduleshighguisrcwindow.cpp:967: error: (-215:Assertion failed) size.width0 size.height0 in function \\\'cv::imshow\\\' Python 3.8.10 o

    2024年02月05日
    浏览(48)
  • 【已解决】安装cv2时Building wheel for opencv-python终端卡死

    环境: Ubuntu20.04 Python3.6 现象:终端输出类似下面的命令,并卡住不动 首先, OpenCV 较旧的Python版本不需要进行滚轮编译,因此造成编译在 处停止。为了防止因为pip版本较旧引起干扰,首先运行 更新 pip 版本,接着再次安装 接着大概率能解决 Building wheel for opencv-python (PEP 51

    2024年02月03日
    浏览(66)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包