【13】OpenCV C++实战篇——调用摄像头读取视频并显示 并在指定位置保存

本文介绍了如何使用OpenCV C++的VideoCapture功能调用摄像头读取视频并进行显示,同时讲解了如何在指定位置保存视频。程序适用于Windows 10,使用Visual Studio 2019和OpenCV 4.20。通过示例代码展示了从捕获视频流到保存视频的操作步骤。

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

转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_51233386/article/details/113692560

1 调用摄像头读取视频并显示

1.1程序说明


// 程序描述:VideoCapture cap(0)调用摄像头读取视频并显示
// 操作系统: Windows 10 64bit
// 开发语言:C++
// IDE 版 本:Visual Studio 2019
// OpenCV版本: 4.20


1.2VideoCapture功能说明

捕获本地视频:;

VideoCapture cap(“video.mp4”):

调用电脑摄像头:

VideoCapture 
### OpenCV C++ 调用摄像头视频卡顿解决方案 对于使用OpenCVC++调用摄像头时遇到的视频卡顿问题,可以通过合理配置摄像设备来改善性能。具体来说,调整编码格式、帧率以及分辨率能够有效减少卡顿现象。 在设置这些属性之前,建议先利用`ffmpeg`工具查询目标USB相机所支持的具体参数组合,从而确保后续设定的有效性和兼容性[^1]。例如: ```bash ffmpeg -list_devices true -f dshow -i dummy ``` 当明确了合适的参数之后,则按照特定顺序依次对捕获对象(`cv::VideoCapture`)应用如下几个重要属性: - `CAP_PROP_FPS`: 设置期望获取图像的速度(即每秒多少帧),这里设定了30 fps; - `CAP_PROP_FRAME_WIDTH` 和 `CAP_PROP_FRAME_HEIGHT`: 定义采集画面宽度与高度,本案例中选择了常见的1920x1080全高清尺寸; - `CAP_PROP_FOURCC`: 指定采用何种编解码器处理数据流,此处选用MJPG压缩方式以平衡质量与效率; 值得注意的是,上述属性赋值操作应当遵循一定次序执行,错误的先后关系可能导致预期效果不佳甚至继续存在卡顿情况。一种推荐的做法是在初始化`cv::VideoCapture`实例打开对应硬件资源后立即完成全部必要配置项的设定,如下面这段代码所示: ```cpp m_videoCapture.set(cv::CAP_PROP_FPS, 30); m_videoCapture.set(cv::CAP_PROP_FRAME_WIDTH, 1920); m_videoCapture.set(cv::CAP_PROP_FRAME_HEIGHT, 1080); m_videoCapture.set(cv::CAP_PROP_FOURCC, cv::VideoWriter::fourcc('M', 'J', 'P', 'G')); ``` 另外,在某些Linux环境下还可以尝试通过指定V4L2接口的方式来进一步优化读取过程中的表现,这有助于提高稳定性和响应速度[^2]。实现方法如下: ```cpp cap.open(2, cv::CAP_V4L2); // 使用第3个连接上的摄像头作为输入源,启用V4L2模式 cap.set(cv::CAP_PROP_FOURCC, cv::VideoWriter::fourcc('M', 'J', 'P', 'G')); cap.set(cv::CAP_PROP_FPS, 30); ``` 以上措施综合运用可以帮助缓解乃至彻底消除基于OpenCV框架下开发的应用程序中存在的摄像头访问延迟或不流畅等问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

R-G-B

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值