视频信号是由按序列排放的图像(帧)组成,它们是通过有规律的间隔进行拍摄以展示动态的场景。
一、读取视频序列
1.原理及概念
(1)通过重复调用read方法获取视频序列,这里需要注意为了打开视频计算机中必须安装有对应的解码器,否则cv::VideoCapture将无法理解视频格式,关于视频的编解码可以查看ffmpeg.org站点提供了完整的开源及跨平台解决方案,可用于音视频录制、转换以及流媒体,Opencv中操作视频文件的类就是基于ffmpeg。xvid.org站点提供了基于MPEG-4视频压缩标准的开源编解码库。Xvid也有名为DivX的竞争者,后者提供私有但免费的编解码工具。
2.实验
源码示例
#include<iostream>
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv;
int main(){
//打开视频文件
VideoCapture capture("屌丝男士.mov"); //ID为0将打开默认的摄像头
//检查视频是否成功打开
if (!capture.isOpen