opencv2中,提供了两个视频操作相干的类,VideoCapture和VideoWriter,固然也有相对应的构造函数。
对VideoCapture,其有以下几个操作函数:
open(const string &filename) //打开视频文件
open(int device) //打开摄像头,device为装备序号
isOpened() //判断视频文件或摄像头是不是打开,其返回值为bool型
release() //关闭视频文件或摄像头
grab() //获得视频或摄像头下1帧,若获得成功,则返回TRUE,其函数类型也是bool型。
retrieve(Mat& image , int channel=()) //解码刚刚获得到的1帧图象,并将其赋给image,这个函数的返回值也是bool型。
read(Mat& image) //获得、解码和读取视频的下1帧。在opencv中,其用“>>”操作符重载了这个函数,即 video >> image
get(int propId) //返回视频的属性
propId取值不同,则返回的属性也不同。当propId取以下值时:
CV_CAP_PROP_POS_MSEC 以毫秒或时间戳的情势当前视频文件的位置
CV_CAP_PROP_POS_FRAMES 以0开始的视频帧解码捕获索引
CV_CAP_PROP_POS_AVI_RATIO 视频的相对位置,0为开始,1为结束
CV_CAP_PROP_FRAME_WIDTH 视频帧图片的宽度
CV_CAP_PROP_FRAME_HEIGHT 视频帧图片的高度
CV_CAP_PROP_FPS 帧率
CV_CAP_PROP_FOURCC 视频的4字符代码
CV_CAP_PROP_FRAME_COUNT 视频的总帧数
CV_CAP_PROP_FORMAT 视频的图片格式
CV_CAP_PROP_MODE 后端特定值唆使当前捕获模式
下面几个属性只在摄像模式下有效:
CV_CAP_PROP_BRIGHTNESS 图象的亮度
CV_CAP_PROP_CONTRAST 图象对照度
CV_CAP_PROP_SATURATION 图象的饱和度
CV_CAP_PROP_HUE 图象的色度
CV_CAP_PROP_EXPOSURE 图象的暴光
CV_CAP_PROP_CONVERT_RGB图象是不是转换为RGB型
set(int propId) //设置属性,其参数的取值和get函数的取值1样
对VideoWriter,其有以下几个操作函数:
open(const string &filename, int fourcc, double fps, Size frameSize, color = true)
以上几个参数在上文中均已介绍过了。
isOpened() //与前面的是1个意思
write(const Mat& image) //opencv中也一样重载了这个函数,即用操作符<<
下面看段程序,程序的功能是将1个段视频变小,即原来1024*780的视频,变成320*280,为了多使用几个视频操作函数,所以有些地方可以大大简化或修改的我没有修改,为了展现1下各个函数的用法。