在Opencv中我们经常会需要读取视频,对视频进行操作,最后保存视频,这里我们写了一个示例程序实现读取视频,将视频帧灰度化,最后保存视频的一个流程。
//实现对视频的读入,灰度化,保存视频的功能
#include <cv.h>
#include<highgui.h>
#include <iostream>
using namespace std;
int main()
{
char *video="test.avi";//视频文件,名字可以修改
CvCapture *cap=cvCaptureFromAVI(video);//从视频文件中读取
/*CvCapture *cap=cvCaptureFromCAM(0);*///从摄像头捕捉
IplImage *img=cvQueryFrame(cap);//读取一帧
if (!img)
{
cout<<"读取视频出错"<<endl;
exit(0);
}
//获取视频文件的参数
int frameHeight =(int) cvGetCaptureProperty(cap,CV_CAP_PROP_FRAME_HEIGHT);//帧高度
int frameWidth =(int) cvGetCaptureProperty(cap,CV_CAP_PROP_FRAME_WIDTH);//帧宽度
int fps =(int) cvGetCaptureProperty(cap,CV_CAP_PROP_FPS);//帧率
int numFrames =(int) cvGetCaptureProperty(cap,CV_CAP_PROP_FRAME_COUNT);//帧数
cout<<"视频图像的高度是"<<frameHeigh