用opencv调用USB摄像头帧率低问题解释 您所在的位置:网站首页 摄像头不彩色是什么原因 用opencv调用USB摄像头帧率低问题解释

用opencv调用USB摄像头帧率低问题解释

2024-03-19 15:40| 来源: 网络整理| 查看: 265

当我们用opencv自带的接口VideoCapture 打开设备自带的摄像头或者usb连接的摄像头时。对于一些高清的摄像头画面有的时候会出现帧率很低的情况(大概是6FPS).画面获取是出现处理的第一步,太低的数据能力会对算法的处理造成一定困扰。

本篇博客主要针对摄像头数据流的两种编码方式做个解释和对比,并给出如何解决帧率低的情况。

一般的USB接口摄像头输出格式:H.264 、YUYV、MJPEG

三者的利弊可以查看博客:https://blog.csdn.net/yangdashi888/article/details/52289036

一般情况下,我们会用如下方式获取摄像头数据

VideoCapture cap; cap.open(0); while(cap.isOpened()){ Mat in; cap >> in; ...... }

绝大多数情况下我们能够实时获取数据。

用videocapture获取数据时默认情况下会以数据流的原始数据格式读入,当目前接入默认以YUYV格式编码的摄像头时,同样方式导入数据时,则帧率就会很低。对此我们可以通过改变读取摄像头格式的方法来提高数据传输速度,虽然会损失一点图像质量,但并不很影响。

VideoCapture cap; VideoWriter vw; cap.open(0); int fourcc = vw.fourcc('M','J','P','G');//设置摄像头编码方式 cap.set(CAP_PROP_FRAME_WIDTH, FRAME_WIDTH);//设置摄像头采集图像分辨率 cap.set(CAP_PROP_FRAME_HEIGHT, FRAME_HEIGHT); cap.set(CAP_PROP_FOURCC,fourcc);

我们可以通过set函数设置更多参数,例如博文https://blog.csdn.net/frosuccess/article/details/79589778

在linux下通过设置CAP_PROP_FPS改变帧率会不成功~

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有