OpenCV中cvResize函数图象放缩

图像大小变换

void cvResize( const CvArr* src, CvArr* dst, int interpolation=CV_INTER_LINEAR );

src:输入图像.
dst:输出图像.
interpolation:差值方法:
• CV_INTER_NN - 最近邻差值,
• CV_INTER_LINEAR -  双线性差值 (缺省使用)
• CV_INTER_AREA -  使用象素关系重采样。当图像缩小时候,该方法可以避免波纹出现。当图像放大时,类似于  CV_INTER_NN  方法..
• CV_INTER_CUBIC -  立方差值.
函数  cvResize 将图像  src 改变尺寸得到与  dst 同样大小。若设定ROI,函数将按常规支持 ROI.
 
实例代码:

#include <stdio.h>
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>

#pragma comment(lib, "cv.lib")
#pragma comment(lib, "cxcore.lib")
#pragma comment(lib, "highgui.lib")

int main(int argc,char **argv)
{
	IplImage *src = cvLoadImage("test.png");
	IplImage *desc;
	CvSize sz;
	double scale = 0.5;
	if(src)
	{
		sz.width = src->width*scale;
		sz.height = src->height*scale;
		desc = cvCreateImage(sz,src->depth,src->nChannels);
		cvResize(src,desc,CV_INTER_CUBIC);
		cvNamedWindow("src",CV_WINDOW_AUTOSIZE);
		cvNamedWindow("desc",CV_WINDOW_AUTOSIZE);
		cvShowImage("src",src);
		cvShowImage("desc",desc);
		cvWaitKey(0);

		cvReleaseImage(&src);
		cvReleaseImage(&desc);
		cvDestroyWindow("src");
		cvDestroyWindow("desc");
		return 0;
	}
	return -1;
}
OpenCV中cvResize函数图象放缩_第1张图片

你可能感兴趣的:(OpenCV中cvResize函数图象放缩)