【opencv的学习】视频的转换

对一个视频进行极坐标转化

#include <cv.h>
#include <highgui.h>
#include<iostream>
int main()
{
	CvCapture* capture = 0;
	capture = cvCreateFileCapture("Example2.avi");
	if (!capture)
	{
		exit(0);
	}
	IplImage *bgr_frame = cvQueryFrame(capture);						//通过cvQueryFrame()函数读入视频
	double fps = cvGetCaptureProperty(capture, CV_CAP_PROP_FPS);		//通过cvGetCaptureProperty()函数可获得视频流的重要属性
	CvSize size = CvSize(												//获取视频的大小(长、宽)
		(int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH),	
		(int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT)
	);
	CvVideoWriter *writer = cvCreateVideoWriter("copy.avi", CV_FOURCC('M', 'J', 'P', 'G'), fps, size);	//创建一个avi格式的文件,可根据第二个参数的不同来创建不同格式的视频文件,第三个参数为帧数,第四个为视频大小
	IplImage* logpolar_frame = cvCreateImage(size, IPL_DEPTH_8U, 3);									//创建一个临时变量
	while ((bgr_frame = cvQueryFrame(capture)) != NULL)
	{
		cvLogPolar(bgr_frame, logpolar_frame, CvPoint2D32f(bgr_frame->width / 2, bgr_frame->height / 2), 40, CV_INTER_LINEAR + CV_WARP_FILL_OUTLIERS);	//对每一帧进行极坐标转换
		cvWriteFrame(writer, logpolar_frame);	//写入文件
	}
	cvReleaseVideoWriter(&writer);				//释放内存
	cvReleaseImage(&logpolar_frame);
	cvReleaseCapture(&capture);
}


这只是一次初步的尝试,大概理解内容即可


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值