播放视频主要的问题是如何循环顺序读取视频中的每一帧,如何退出该循环操作。
#include <opencv2\opencv.hpp>
#include <iostream>
#include <string>
#include<highgui.h>
#include <cv.h>
using namespace cv;
using namespace std;
int main(int argc,char **argv){
cvNamedWindow("video",CV_WINDOW_AUTOSIZE);//创建窗口
CvCapture *capture=cvCreateFileCapture("bike.avi");//打开avi格式视频文件
IplImage *frame;//定义每一帧图像的图片
while(1){
frame=cvQueryFrame(capture);//把图像存入内存
if (!frame)break;
cvShowImage("video",frame);
char c=cvWaitKey(33);//等待33ms,若用户案件按键则返回案件的ascii码
if (c==27)break;//esc按键的ascii码为27
}
cvReleaseCapture(&capture);
cvDestroyWindow("video");
return 0;
}