关于使用opencv在相机的高分辨率情况下,解决相机输出视频流到opencv窗口卡顿的可行性解决方案

在Windows 10环境下,使用深圳市锐尔威视科技有限公司的800W高清摄像头,开发者在尝试4K采集模式时遇到了画面严重卡顿的问题。通过调整OpenCV代码中的设置顺序,即先设置分辨率后设置采集格式,成功解决了卡顿问题。具体表现为将设置采集格式的代码放置在设置分辨率之后,使得2K以上分辨率的视频流能平稳输出。目前尚不清楚导致卡顿的确切原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发环境:Win10系统,深圳市锐尔威视科技有限公司 生产的800W高清摄像头(3840*2160),VS2017

遇到问题:在4k采集模式下,画面卡顿厉害。

通常设置是下面这样的,但是在2K以下还能平稳顺滑输出视频流,但是下面这种方法超过2K以后的分辨率,就会严重卡顿

  1. //1.打开摄像机设备(默认第一个)

  2. cv::VideoCapture cap= cv::VideoCapture(0);

  3. //2.一定要先设置采集格式!!!

  4. cap.set(CV_CAP_PROP_FOURCC, cv::VideoWriter::fourcc('M', 'J', 'P', 'G'));

  5. //3.然后再设置高清采集分辨率

  6. cap.set(CV_CAP_PROP_FRAME_WIDTH, 1920);

  7. cap.set(CV_CAP_PROP_FRAME_HEIGHT, 1080);

解决方式:将设置MJPG的地方挪一下位置,将设置采集模式放到最后,我在项目上就顺利解决了卡顿问题。具体引起卡顿的问题还未找到,还希望有大佬看到后能在评论区告知,但是解决方案就是以下这种。

  1. //1.打开摄像机设备(默认第一个)

  2. cv::VideoCapture cap= cv::VideoCapture(0);

  3. //3.然后再设置高清采集分辨率

  4. cap.set(CV_CAP_PROP_FRAME_WIDTH, 1920);

  5. cap.set(CV_CAP_PROP_FRAME_HEIGHT, 1080);

  6. //2.一定要先设置采集格式!!!

  7. cap.set(CV_CAP_PROP_FOURCC, cv::VideoWriter::fourcc('M', 'J', 'P', 'G'));

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值