OpenCV视频处理

来源:互联网 发布:域名注册商是什么 编辑:程序博客网 时间:2024/05/17 00:55

1.视频打开方式

1.1利用构造体在定义的时候打开

VideoCapture  cap(deviceID);//从设备打开VideoCapture  cap(filename);//从指定的路径打开视频文件

1.2利用VideoCapture类提供方法open打开

VideoCapture  cap;//下面出现的deviceID和filename与1.1中含义相同if(!cap.open(deviceID/filename)){   //文件没有正确打开的处理}


注意:有多个相机设备打开时,一定按设备号降序打开。

2.视频的读取

//! 方式1Mat  frame;cap >> frame;//利用重载运算符>>//! 方式2Mat  frame;cap.read(frame);
上述两种方式使用方法原型分别为:

方式1.VideoCapture&  VideoCapture::operator>>(Mat& image);

方式2.bool VideoCapture::read(Mat& image);//返回值为布尔型,可以通过返回值判断读取是否成功

如果相机已经断开连接或者视频已经读完,那么函数返回值为NULL或者false。

3.与视频相关的属性获取和设置

3.1获取与视频相关的属性

C++:double  VideoCapture::get(int propId)//获得视频帧率double fps = cap.get(CV_CAP_PROP_FPS)//获得视频图像的宽度double width = cap.get(CV_CAP_PROP_FRAME_WIDTH);
获取的属性主要由propId决定,propId的具体取值可以参看OpenCV Reference Mannual 2.4.9版本的352页。
</pre><pre name="code" class="cpp">3.2设置与视频相关的属性
</pre><p></p><p><pre name="code" class="cpp">C++:bool   VideoCapture::set(int propId, double value)//设置视频的帧率cap.set(CV_CAP_PROP_FPS, 30);//设置视频帧率为30

4.视频写入磁盘

//方式1VideoWriter  wr;//filename:待写入的文件路径//fourcc:用于压缩图像帧的4字符编码器代码//fps:所创建的视频流的帧率//framesize:视频帧的尺寸//isColor:编码为彩色视频还是灰度视频if(!wr.open(filename,fourcc,fps,framesize,isColor){   //打开写入文件出错处理}//将图像写入视频文件wr << frame;或者wr.write(frame);



0 0