转载自
cvCaptureFromAVI()
格式:cvCaptureFromAVI(“AVI文件名称”);
功能:用来播放AVI文件视频;OpenCV中有以下定义:
#define cvCaptureFromAVI cvCaptureFromFile
#define cvCaptureFromFile cvCreateFileCapture
说明:所以用cvCaptureFromAVI()跟cvCaptureFromFile(),cvCreateFileCapture()都是一样的作用;文件的类型不一定必须是AVI格式,只要文件符合OpenCV播放支持的格式就能播放。
cvGrabFrame()
格式:int cvGrabFrame(CvCapture结构体);
功能:将capture抓下來的相片放在OpenCV中;其与cvQueryFrame()是相同的步骤;
cvGrabFrame()返回值为0或1;0是失败,1是成功。
cvRetrieveFrame()
格式:cvRetrieveFrame(CvCapture结构);
功能:从OpenCV快取中得到Frame,并配置给IplImage结构体;其中:
cvQueryFrame()=cvGrabFrame()+cvRetrieveFrame().
实例:
#include <cvcam.h>
#include <stdio.h>
#include "cv.h"
#include "highgui.h"
void main( )
{
CvCapture *capture;
IplImage *frame;
char *AviFileName = "video.avi";
capture = cvCaptureFromAVI(AviFileName);
cvNamedWindow("AVI player",0);
while(true)
{
if(cvGrabFrame(capture))
{
frame=cvRetrieveFrame(capture);
cvShowImage("AVI player",frame);
if(cvWaitKey(10)>=0) break;
}
else
{
break;
}
}
cvReleaseCapture(&capture);
cvDestroyWindow("AVI player");
}
程序说明:播放AVI文件,并在窗口中显示出来。当AVI文件播放完的时候cvGrabFrame()会自动返回0;而while被break,如果沒播放完会返回1,就会继续播放。当在GUI界面按任意键,会跳出while循环,并结束播放。