以下内容摘自《OpenCV2计算机视觉编程手册》
引言
本章内容主要是如何读取视频、处理和写入视频。
读取视频序列
视频其实就是一帧一帧的图像组成,这里的读取视频可以是视频文件或USB摄像头。
使用到的类为cv::VideoCapture
,创建一个对象,构造参数为视频文件的名称,则会自动打开视频,例如:cv::VedeoCapture capture("../bike.avi")
,如果要读取USB摄像头,那么需要指定的是整数的ID号,而不是文件名。
类中与读取视频序列相关的函数:
isOpend()
:检查视频是否成功打开get(CV_CAP_PROP_FPS)
:获取视频的帧率read()
:读取一帧图像,输入参数为Mat对象release()
:关闭视频文件set()
:指定视频读取的起始位置
注意:获取的帧率是double变量,使用式将其强制转化为long类型即可,得到帧率以后,我们就知道循环读取并处理每一帧图片的时间间隔设置为多少,可以比帧率快,也可以慢。另外,打开视频时,计算机中必须安装有对应的解码器,通常,如果你能用windows自带的播放器(Windows Media Player)打开视频,那么你就能用OpenCV读取它。
处理视频帧
在每一次的循环中,读取新的一帧图像并进行处理,处理