四、读取视频

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;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值