图像处理学习

图像处理(二)

视频文件处理

调用摄像头与写入视频文件

	在opencv中,视频来源有两种,一种是视频文件,另一种是来自摄像头等设备的视频。
	我们可以使用VideoCapture类来对视频文件或调用摄像头获取视频流进行操作,使用VideoWriter类来实现对视频的写入。
	1)读取视频文件及调用摄像头

#include
#include<opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main() {
//视频图像的实例化并初始化
//初始化时,将VideoCapture类的对象的参数设为数字,该值根据系统的摄像设备确定,一般笔记本摄像头为0
VideoCapture liu(“D://vc程序//my.avi”);
//创建一个循环体,每次循环从视频文件中读取一帧
while (1) {
Mat shipin;
liu >> shipin;
//当读取完毕,退出循环
if (shipin.empty()) {
break;
}
//显示当前帧
imshow(“视频”, shipin);
waitKey(30);//等待30ms,表示每隔30ms读取一帧,即帧率大约为33帧/s
}
return 0;
}
2)写入视频,此时要特别注意当前帧要与定义的VideoWriter的对象的分辨率一致
#include
#include<opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main() {
//视频图像的实例化并初始化
VideoCapture liu(0);
//视频文件的写入实例
VideoWriter my;
//初始化
my.open(
“a.avi”,//保存的路径、文件名
CV_FOURCC(‘D’, ‘I’, ‘V’, ‘X’),//视频编码类型
20.0,//帧率
Size(600, 400),//单帧的图像分辨率
true//表示只输入彩色图
);
int i = 0;
//创建一个循环体,每次循环从视频文件中读取一帧
while (i<100) {
i++;
Mat shipin;
liu >> shipin;
//当读取完毕,退出循环
if (shipin.empty()) {
break;
}
resize(shipin, shipin, Size(600, 400));
//将当前帧写入视频文件
my<<shipin;
//显示当前帧
imshow(“视频”, shipin);

	waitKey(30);//等待30ms,表示每隔30ms读取一帧,即帧率大约为33帧/s
}
liu.release();
my.release();
return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值