播放一个AVI视频,相当于使用opencv创建自己的视频播放器

#include "cv.h"
#include "highgui.h"


int main (int argc,char** argv)
{
cvNamedWindow("Example2",0);
CvCapture* capture = cvCreateFileCapture("D:\\VS2010\\test\\test2\\test2\\V2013_11_06.avi");       //cvCreateFileCapture()通过参数设置确定要读入的avi文件,返回一个指向CvCapture结构的指针。这个结构包括了所有关于要读入avi文件的信息,其中包含状态信息。调用这个函数之后,返回指针所指向的CvCapture结构被初始化到对应的avi文件的开头。
   IplImage* frame;
while(1)
{
frame = cvQueryFrame(capture);//函数cvQueryFrame从摄像头或者文件中抓取一帧,然后解压并返回这一帧。cvQueryFrame的参数为CvCapture结构的指针。用来将下一帧视频文件载入内存,返回一个对应当前帧的指针。与cvLoadImage不同的是cvLoadImage为图像分配内存空间,而cvQueryFrame使用已经在cvCapture结构中分配好的内存。这样的话,就没有必要通过cvReleaseImage()对这个返回的图像指针进行释放,当CvCapture结构被释放后,每一帧图像所对应的内存空间即会被释放。
if (!frame)
break;
cvShowImage("Example2",frame);
char c = cvWaitKey(33);//当前帧被显示后会等待33ms,如果期间用户触发了一个按键,c会被设置成这个按键的ASCII码,否则,c会被设成-1.如果用户触发了ESC键,循环被退出,读入视频停止,否则33ms以后继续执行循环。
if (c==27) 
break;
}
cvReleaseCapture(&capture);
cvDestroyWindow("Example2");
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值