接上一篇:Ubuntu+QT+Opencv读取视频
这篇文章主要介绍Opencv视频的简单读取:
相似,视频的读取和图片类似,我们先看下代码:
#include "highgui.h"
int main(int argc, char* argv[])
{
cvNamedWindow("avi");
CvCapture* capture = cvCreateFileCapture("文件路径");
IplImage* frame;
while(1)
{
frame = cvQueryFrame(capture);
if(!frame)break;
cvShowImage("avi",frame);
char c = cvWaitKey(33);
if(c==27)
break;
}
cvReleaseCapture(&capture);
cvDestroyWindow("avi");
return 0;
}
下面对简单分析下:
CvCapture是个结构体,来保存图像捕获所需要的信息。
Opencv提供两种方式来从外部捕获图像
一:从摄像头中。
二:通过解码视频得到图像。
由于两种方法都是一帧一帧的获取,因此每获取一帧后都要保存相应的状态和参数。
例如上面的例子,从视频中获取信息后,需要保存视频文件的文件名,相应的解码器类型,下一次如果要获取需要解码那一帧等。这些信息都保存在CvCapture结构中。每获取一帧后这些信息都将被更新。
cvCreateFileCapture(char*name)
通过输入要读取的avi文件的路径,然后,该函数返回一个指向CvCapture结构体的指针。
cvQueryFrame(capture)
如果读取摄像头只需要把cvCreateFileCapture改成cvCreateCameraCapture即可,另外摄像头驱动要安装好。
遇到问题欢迎提问。同样ippicv也在此处下载:点击打开链接