AVI文件制作完了,接着就是将制作出来的AVI文件作播放的动作啦.播放AVI文件的程序代码如下:
执行结果:
用 cvCaptureFromAVI()播放AVI的文件,再开个窗口接口show出来,就是这么简单,其中cvGrabFrame()跟cvRetrieveFrame()其实就是cvQueryFrame()的组合,直接用cvQueryFrame()也行,在这里,当文件播放完的时候 cvGrabFrame()会自动返回0而while循环就会被break,如果没播放完就会返回1,而它就会继续执行播放相关的动作,当在GUI接口按任意键,就会跳出while循环而结束播放.再将数据结构的內存清空.
这边是用来播放AVI相关文件,不过,它被OpenCV定义为
所以用cvCaptureFromAVI()跟cvCaptureFromFile(),cvCreateFileCapture()其实都是一样的东西.这边其实扩展名不限avi档,只要文件格式符合OpenCV播放程序内建格式的标准就行
cvCaptureFromAVI("AVI文件名称");
将capture抓下来的图片放在OpenCV的高速缓存中,OpenCV描述是说用他们专用的压缩格式放在它们的高速缓存中.同样的,cvQueryFrame()也是相同的步骤,cvGrabFrame()返回的数值是0跟1,0是失败,1是成功.
int cvGrabFrame(CvCapture数据结构);
从高速缓存中撷取Frame,并配置给IplImage数据结构.这边cvQueryFrame()=cvGrabFrame()+cvRetrieveFrame().
cvRetrieveFrame(CvCapture数据结构);