读入视频文件并缩放后存入磁盘

练习:从本地读入视频数据并将缩放变换后的彩色图像存入磁盘


#include "cv.h"
#include "highgui.h"
int main()
{
	//定义两个窗口用来显示视频缩放后的结果
	cvNamedWindow("in",1);
	cvNamedWindow("out",1);

	//读入视频文件
	CvCapture *capture=cvCreateFileCapture("testVideo.avi");
	if(!capture)
	return -1;
	IplImage *frame=cvQueryFrame(capture);//获取视频帧
	assert(frame->width%2==0&&frame->height%2==0);
	IplImage *out=cvCreateImage(cvSize(frame->width/2,frame->height/2),frame->depth,frame->nChannels);

	//定义新视频帧大小
	CvSize size=cvSize((int)cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_WIDTH)/2,
				  (int)cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_HEIGHT)/2);
	//获取原视频帧率
	int   fps=(int)cvGetCaptureProperty(capture,CV_CAP_PROP_FPS);
	CvVideoWriter *writer=cvCreateVideoWriter("out.avi",CV_FOURCC('X','V','I','D'),fps,size);
	while((frame=cvQueryFrame(capture))!=NULL)
	{
	   cvPyrDown(frame,out,CV_GAUSSIAN_5x5);
	out->origin=1;
	cvWriteFrame(writer,out);
	cvShowImage("in",frame);
	cvShowImage("out",out);
	cvWaitKey(33);
	}
	cvReleaseVideoWriter(&writer);
	cvReleaseImage(&out);
	cvReleaseCapture(&capture);
	cvDestroyWindow("in");
	cvDestroyWindow("out");
	return 0;
}
程序运行结果:


可以看到out.avi保存成功了,如下图:


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值