[学习OpenCV攻略][004][播放AVI视频]

本文介绍了如何使用OpenCV库中的cvCreateFileCapture函数创建视频文件录像机,读取视频文件并将其帧显示在窗口中。通过循环调用cvQueryFrame获取每一帧,并使用cvShowImage在窗口中展示。最后,确保释放资源以避免内存泄漏。

cvCreateFileCapture(文件路径)

创建一个影音文件录像机,返回值为CvCapture类型,用于读取视频文件

 

cvQuerFrame(视频)

将下一帧视频文件载入内存,当CvCapture被释放时,每一帧对应的内存会被释放,所以不需要cvReleaseImage(&frame);

 

cvReleaseCapture(视频)

释放CvCapture结果的内存空间,同时也会关闭所有打开的视频文件相关的句柄。

 

#include "highgui.h"

int main(int argc, char** argv){
	char c;
	IplImage* frame;
	CvCapture* capture;
	
	cvNamedWindow("hello", CV_WINDOW_AUTOSIZE);
	
	capture = cvCreateFileCapture(argv[1]);
	while(1){
		frame = cvQueryFrame(capture);
		if(!frame){
			break;
		}

		cvShowImage("hello", frame);
		
		c = cvWaitKey(33);
		if(c == 27){   //Esc
			break;
		}
	}
	
	//cvReleaseImage(&frame);   加上这句后会产生错误:段错误 (核心已转储)
	cvReleaseCapture(&capture);
	cvDestroyWindow("hello");
	
	return 0;
}

 

转载于:https://www.cnblogs.com/d442130165/p/4917911.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值