码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【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帧左右
    在这里插入图片描述
    另外,命令输出中显示设置格式为MJPG,设置分辨率为1280x720,设置帧率为90fps,没有问题
    在这里插入图片描述

    解决方案

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

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

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

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

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

    使用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)
    
    • 1
    • 2
    • 3

    参考的两篇博客:
    CSDN-Python opencv 调用摄像头时设置以MJPG等编码格式获取视频
    CSDN-Python+Opencv读取高帧率USB摄像头问题

  • 相关阅读:
    C#中的四种类型转换
    ASP已老,尚能饭否?
    在MySQL中添加索引
    openai assistants(机器人助理)彩色图片转黑白
    快排,代码思路详解
    关于暖气不热的9大问题与解答
    基于ZYNQ-7000的AI加速器设计之Python网络编程(TCP协议)
    研发提速:nacos+openfeign环境下的本地链接服务
    一键分割视频并生成M3U8格式:高效管理视频内容,畅享流畅播放新体验
    python library reference
  • 原文地址:https://blog.csdn.net/qq_42475234/article/details/126201152
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号