OpenCV学习笔记(02) :OpenCV拍摄视频并保存

这篇博客介绍了在Visual Studio 2013和OpenCV 3.1环境下,如何利用USB摄像头在Windows 7 x64系统上拍摄并保存视频。尽管设定帧率为30fps,但实际帧率可能受到硬件条件如电压和光照,以及软件环境如debug模式的影响。调整waitKey的等待时间有助于优化视频帧率。

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

1. 前言

  本程序基于Visual Studio2013+Windows 7x64 +OpenCV3.1的环境,实现调用电脑USB摄像头,并保存视频文件到本地的功能。

程序实现

//VideoCapture.cpp
#include<opencv2\opencv.hpp>
using namespace cv;
int main(){
	VideoCapture capture(0);
	// 设置摄像头的拍摄属性为 分辨率640x480,帧率30fps
	capture.set(CAP_PROP_FRAME_HEIGHT, 480);
	capture.set(CAP_PROP_FRAME_WIDTH, 640);
	capture.set(CAP_PROP_FPS, 30.0);
	// 设置保存视频的格式为AVI,编码为MJPG
	VideoWriter writer("test.avi", VideoWriter::fourcc('M', 'J', 'P', 'G'), 30.0, Size(640, 480), true);
	Mat videoPlay;
	// 通过总帧数来控制拍摄时间,如果是10s的段视频的话,循环300次
	int count(300);
	namedWindow("VideoPlay", WINDOW_NORMAL);
	while (count--){
		capture >> videoPlay;
		writer << videoPlay;
		imshow("VideoPlay", videoPlay);
		waitKey(1000 / 30);
	}
	// 释放相关对象
	writer.release();
	capture.release();
	destroyWindow("VideoPlay");
	return 0;
}

2. 运行结果

这里写图片描述

3. 几种可能会影响拍摄的情况

  • 尽管程序中设定了拍摄的帧率为30fps,但是摄像头的帧率很大程度上受硬件状况和实时环境的限制。比如电压,插电源的笔记本比用电池的笔记本帧率更高更稳定;再比如光照,太暗的环境往往也达不到30fps;
  • debug模式下,由于VS要加入很多调试信息,因此摄像头的帧率可能会有所下降。 waitKey的等待时间可以适当降低,略低于1000/30 ms的间隔最好,太高也会影响视频帧率。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值