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