前言
本文展示一个播放 AVI 视频的程序。( 呵呵是 AVI 视频不是 AV 视频噢! )
代码示例
1 // 此头文件包含图像IO函数的声明 2 #include "highgui.h" 3 4 int main (void) { 5 6 // 定义一个窗口来播放视频 7 cvNamedWindow ("示例", CV_WINDOW_AUTOSIZE ); 8 9 // 将 D 盘目录下名为" 1.avi "的视频加载至内存并获得一个指向该视频内存块的指针 capture 10 // 该指针所指向的结构包含了此视频的当前播放帧序 11 CvCapture *capture = cvCreateFileCapture ("D:\1.avi"); 12 13 // 定义一个图像指针来指向各帧图像 14 IplImage *frame; 15 16 while (1) { 17 18 // 获取视频最新的帧图。这个帧图是存放在视频内存块里的,因此,程序结束时只释放 capture 所指向的内存块就够了。 19 frame = cvQueryFrame (capture); 20 21 // 读取帧失败则退出程序 22 if (!frame) break; 23 24 // 显示最新获取到的帧图 25 cvShowImage ("示例", frame); 26 27 // 用户键入ESC后退出循环,键入其他按键播放下一帧,什么都不按则 33 毫秒之后自动播放下一帧。 28 char c = cvWaitKey(33); 29 if (c==27) break; 30 } 31 32 // 释放内存空间 33 cvReleaseCapture (&capture); 34 cvDestroyWindow ("示例"); 35 36 return 0; 37 }
运行测试
1. 将格式为 avi 的测试视频拷贝到 D 盘,命名为 "1.avi"。
2. 运行结果: