解决OpenCV使用USB摄像头获取高分辨率视频低帧率、卡、果冻画面的问题

这篇具有很好参考价值的文章主要介绍了解决OpenCV使用USB摄像头获取高分辨率视频低帧率、卡、果冻画面的问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近制作移动设备,需要安置多个usb摄像头到电脑,踩了几个坑,记录一下解决方案。

  1. 不能使用分线器插多个usb摄像头,同一时间只能加载一个。
  2. usb摄像头调高分辨率时,非常卡顿,视频画面像果冻一样,及不流畅

第二个情况具体描述:

摄像头支持1920*1080  60fps,opencv在videocapture后,设置了MJPG和视频尺寸,但依然很卡。

    cv::VideoCapture cap1(1);
	int codec = cv::VideoWriter::fourcc('M', 'J', 'P', 'G');//无法改善!!!!!
	cap1.set(cv::CAP_PROP_FOURCC, codec);//无法改善!!!!!

	cap1.set(cv::CAP_PROP_FRAME_WIDTH, 1920);
	cap1.set(cv::CAP_PROP_FRAME_HEIGHT, 1080);
	cap1.set(cv::CAP_PROP_FPS, 60);//无法改善!!!!!

看到博客说要设置MJPG,并且要用一个变量接收cv::VideoWriter::fourcc('M', 'J', 'P', 'G'),再set(cv::CAP_PROP_FOURCC, codec),没用!!!!

解决方案:

只需要将想要的分辨率降低,例如需要1920*1080,分辨率调整为1560*1080,但摄像头/电脑会自动设置为与摄像头的默认分辨率档位相近的1920*1080,即可非常流畅运行!我电脑两个usb摄像头720p都卡,现在两个1080p不卡,没测帧率,肉眼观测最起码高于30fps,且无果冻情况。

    cv::VideoCapture cap1(1);
	int codec = cv::VideoWriter::fourcc('M', 'J', 'P', 'G');
	cap1.set(cv::CAP_PROP_FOURCC, codec);
	
	cap1.set(cv::CAP_PROP_FRAME_WIDTH, 1560);//降低纵向像素点1920>1560
	cap1.set(cv::CAP_PROP_FRAME_HEIGHT, 1080);//固定横向像素点1080
	cap1.set(cv::CAP_PROP_FPS, 60);

需要注意的是,1920>1560,这个1560不能太低,不能过于接近/等于1280,这样会自动降低分辨率到1280*720(这个是我的usb摄像头支持的更低一档的分辨率),所以调整分辨率的时候,只需要控制横向像素点,然后把纵向像素点控制在摄像头支持的不同分辨率档位之间但接近高一档的分辨率像素。

总结:估计是opencv设置视频采集格式与摄像头一致时会冲突,导致视频采集出问题;如果opencv设置与摄像头支持分辨率不符,摄像头不支持的话,按照摄像头的为准,不会卡。

 文章来源地址https://www.toymoban.com/news/detail-597010.html

 

到了这里,关于解决OpenCV使用USB摄像头获取高分辨率视频低帧率、卡、果冻画面的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Jetson Orin Nano 使用OpenCV调用USB摄像头

    Jetson Orin Nano 8G ubuntu 20.04 检查usb摄像头是否被识别到 或者 Jetson Orin Nano 使用OpenCV调用USB摄像头

    2024年01月21日
    浏览(48)
  • jetson nano 用opencv使用摄像头(CSI和USB)

    目录 1.测试摄像头是否可用 查看是否连接到摄像头  CSI摄像头测试 USB摄像头测试 2.若以上步骤正常,进行oepncv读取摄像头数据 (1)CSI摄像头 1.安装v4l2-utils协助工具 2.查看摄像头详细参数--支持的图片大小和对应帧率 3.安装管道gstreamer库 4.使用opencv读取图片例程 (2)USB摄像

    2024年02月08日
    浏览(28)
  • 【linux】opencv修改摄像头分辨率

    发现linux系统下调用opencv修改摄像头分辨率,一直修改不成功。 正常在window下面读取摄像头数据是如下代码: 但是在Ubuntu下没办法修改摄像头分辨率,一直都是640x360。 怀疑是摄像头的问题,使用linux下的 v4l2 查看usb摄像头支持的分辨率 1. 查看目前有的摄像头设备 0代表实际

    2024年02月14日
    浏览(39)
  • OpenCV调用USB摄像头/相机,并解决1080p下的延迟卡顿问题(附Python代码)

    首先直接放上一段加载USB相机的例程供参考 摄像头成功加载出来,但是默认分辨率太低(我的相机支持的是1080p),通过如下代码设置分辨率和帧率: 此时分辨率是1080p了,但是延迟严重,在网上找了一堆方法, 几乎都不可用!!! : 设置格式为MJPG: == 无法解决问题,依

    2024年02月09日
    浏览(36)
  • jetson nano USB摄像头使用openCv打开帧率低的问题

    最近玩jetson nano的时候发现openCv打开USB摄像头帧率只有5帧,但是windows下能跑30帧,在网络搜了一下原因发现是摄像头默认读取格式不对,需要改成MJPG格式帧率才能上去,于是使用CSDN上找的代码,但是都不能工作,折腾了好久没搞定,突然想到上 stacoverflow上看看,没想到真的

    2024年02月06日
    浏览(68)
  • opencv在linux上调用usb摄像头进行拍照

    一般video1就是usb摄像头

    2024年02月06日
    浏览(35)
  • Python OpenCV读取并显示USB UVC摄像头

    1. 安装Python, 略。 2. 安装 OpenCV:         3. 预览摄像头画面脚本:

    2024年02月13日
    浏览(29)
  • 在Orangepi5开发板3588s使用opencv获取摄像头画面

    先感谢香橙派群的管理员耐心指导,经过不断的调试修改最后成功通过opencv调用mipi摄像头获取画面 就记录分享一下大概步骤希望大家少踩点坑!!!!!! 我用的固件系统是 ubuntu2022.0.4 固件是: Orangepi5_1.1.6_ubuntu_jammy_desktop_gnome_linux5 .10.110.img 想通过opencv获取画面得先安装

    2024年02月12日
    浏览(36)
  • RK3588安装Qt+opencv+采集USB摄像头画面

    Qt:5.12.8 opencv:3.4.14 qt安装 ---------------------------------------------------------------------------------- 因为使用官网下载的版本始终安装失败,所以我可以直接使用命令行进行下载安装: 1:首先先将ubuntu的软件更新,并更新镜像源 sudo apt-get update sudo apt-get upgrade 2:使用如下步骤安装Qt

    2023年04月10日
    浏览(33)
  • Windows下使用QT+OpenCV完成人脸检测(获取摄像头的数据进行检测)

    Windows版本: Win10 X64 OpenCV版本: 2.4.13.6 QT版本: 5.12 OpenCV官网下载地址: ​ ​https://opencv.org​​​     目前官网OpenCV最新的版本是4.2.0 ,Windows版本的OpenCV在3.X版本后就不带X86的库,只有X64的库,如果需要X86的库,需要自己下载源码去重新编译。 由于我的QT软件在安装时没有安装

    2024年01月16日
    浏览(24)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包