使用opencv播放avi视频文件
代码如下:
<span style="font-size:14px;">#include "stdafx.h"
#include <cv.h>
#include <highgui.h>
int _tmain(int argc, _TCHAR* argv[])
{
const char* Title="avi视频播放";
IplImage *Image;
CvCapture *avi;
double AVI_FrameCount;
int DelayTime_ms;
//加载avi
avi=cvCaptureFromAVI("Javaw.avi");
if(avi==0)//文件不支持
{
printf("加载视频错误!\r\n");
system("pause");
return 0;
}
//获取视频帧率
AVI_FrameCount=cvGetCaptureProperty(avi,CV_CAP_PROP_FPS);
//计算每一帧的延时时间
DelayTime_ms=1000/(int)AVI_FrameCount;
//创建窗口
cvNamedWindow(Title,CV_WINDOW_AUTOSIZE);
//获取视频1帧的图像
Image=cvQueryFrame(avi);
while(Image)
{
//显示图片
cvShowImage(Title,Image);
//帧延时
cvWaitKey(DelayTime_ms);
//获取视频1帧的图像
Image=cvQueryFrame(avi);
}
//等待任意按键
cvWaitKey();
//销毁窗口
cvDestroyWindow(Title);
//释放占用的资源
cvReleaseImage(&Image);
cvReleaseCapture(&avi);
return 0;
}</span>
效果:
使用opencv打开avi文件并逐帧读取并显示
这次主要使用到了一个类型CvCapture保存图像捕获信息
可以接受来自文件或者摄像头的图像