opencv播放AVI视频(2)
#include "highgui.h" using namespace cv; using namespace std; int main() { cvNamedWindow("example"); CvCapture * capture = cvCreateFileCapture("H:\\资料\\opencv相关资料\\OpenCV教程\\图像与视频\\video.long.mjpg.avi"); IplImage * frame; while(1) { frame = cvQueryFrame(capture); if(!frame)break; cvShowImage("example",frame); char c = cvWaitKey(33); if(c==27) break; } cvReleaseCapture(&capture); cvDestroyWindow("example"); }
1.cvNamedWindow("example");
创建命名窗口
2.CvCapture * capture = cvCreateFileCapture("H:\\资料\\opencv相关资料\\OpenCV教程\\图像与视频\\video.long.mjpg.avi");
cvCreateFileCapture函数读取路径下的视频文件,把帧信息指针返回到CvCapture结构体指针中,包含关于要读入的avi文件的状态信息
此次调用返回avi视频文件的开头。
3.frame = cvQueryFrame(capture);
需要不断循环读取下一帧,因此需要while循环,只有当用户按键或者视频读取完毕时才跳出循环。
cvQueryFrame函数的功能是:根据CvCapture指针提供的状态信息,抓取帧信息保存到IplImage指针里。
4.char c = cvWaitKey(33);
cvWaitKey函数的作用有两个:①控制帧率,我的理解是控制视频播放的快慢,返回值是-1;
②接受键盘输入,返回值为该键盘对应的asiccII码。
5.cvReleaseCapture(&capture);
cvDestroyWindow("example");
释放CvCapture指针的内存空间,同时关闭命名窗口。
需要注意的是:
如果cvCreateFileCapture的返回值是0,则有以下可能:
1.电脑中没有安装AVI解码器。
2.视频路径有错误。
posted on 2013-02-06 20:35 0fengfan0 阅读(5979) 评论(0) 编辑 收藏 举报