1、CvCapture:CvCapture是一个结构体,用来保存图像捕获的信息,就像一种数据类型(如int,char等)只是存放的内容不一样,在OpenCv中,它最大的作用就是处理视频时(程序是按一帧一帧读取),让程序读下一帧的位置,CvCapture结构中,每获取一帧后,这些信息都将被更新,获取下一帧回复。
2、CvCapture *cvCreateFileCapture(const char* mov)
功能:通过参数设置确定要读入的avi文件,返回一个指向CvCapture结构的指针。这个结构包括了所有关于要读入avi文件的信息,其中包含状态信息。调用这个函数之后,返回指针所指向的CvCapture结构被初始化到对应的avi文件的开头。
3、CvCapture *cvCreateCameraCapture(int index)
功能:从摄像头中取流,index=0表示第0个摄像头,index=-1表示随机读取一个
4、IplImage* cvQueryFrame(CvCapture* capture);
功能:表示从摄像头或者文件中抓取并返回一帧
5、void cvReleaseCapture(CvCapture** capture)
功能:释放为capture分配的内存,关闭文开的视频文件的文件句柄
代码演示:
#include "highgui.h"
int main(void)
{
/*读视频文件爱嗯*/
//CvCapture *capture = cvCreateFileCapture("/home/ling/Desktop/1.mp4");
/*调用摄像头*/
CvCapture *capture = cvCreateCameraCapture(0);
IplImage *frame;
while(1)
{
/*获取一帧*/
frame = cvQueryFrame(capture);
if(!frame)
break;
/*显示刚刚获取的一帧图像*/
cvShowImage("avi", frame);
/*控制帧率,33ms内若按下esc则推出,否则读取下一帧*/
char c = cvWaitKey(1);
if(c == 27)
break;
}
/*释放内存*/
cvReleaseCapture(&capture);
return 0;
}