现在的位置: 首页 > 综合 > 正文

OpenCV 播放视频

2014年01月16日 ⁄ 综合 ⁄ 共 866字 ⁄ 字号 评论关闭

新建Win32 Console Application 项目: opencvvedio

在Opencvvedio.cpp中输入如下代码, 并在项目源码目录下放入avi文件:vedio.avi(注意这个avi文件不能太大,否则可能不能正常加载)

#include "stdafx.h"
#include"highgui.h" // 图像和视频的输入/输出均在HighGUI模块中

// 播放视频文件只需要循环地并按顺序地读取视频中的每一帧
// 读到帧后,便可以将这个帧作为普通的图像一样显示即可
int main(int argc, char** argv)
{   
	//首先需要建立一个窗口来容纳视频的播放
	cvNamedWindow("vedio",CV_WINDOW_AUTOSIZE);
	//打开一个视频文件,返回 CvCapture 结构中包含了视频文件的信息
	CvCapture *capture = cvCreateFileCapture("vedio.avi");
	IplImage *frame;
	//循环顺序地读取视频中的帧
	while(1)
	{
		// 获取当前播放帧的下一帧,并且将获取到的帧加载到内存中,覆盖掉前面帧所占的内存
		frame = cvQueryFrame(capture);
		if(!frame)
		{   // 如果没有读取到帧的话,则说明视频播放完毕了,从而退出播放
			break;
		}
		//将读取到的帧显示在窗口中
	cvShowImage("vedio",frame);
	//每播放一个帧就在此等待30毫秒
	char c=cvWaitKey(30);
	//如果在30ms中用户按下了ESC键
	//(ESC键的ASCII为27)则退出播放
	if(27 == c)
     	{
		  break;
	    }
	}
	// 释放分配到内存
	cvReleaseCapture(&capture);
	//销毁窗口
	cvDestroyWindow("vedio");
}

按下F5执行, 运行结果:

 

备注:

CvCapture:视频获取结构

说明:OpenCV中的视频获取结构。结构CvCapture没有公共接口,它只能被用来作视频获取函数中使用的一个参数。

 

 

 

 

 

 

 

 

 

抱歉!评论已关闭.