http://blog.csdn.net/augusdi/article/details/9011335

图像大小变换

  1. void cvResize( const CvArr* src, CvArr* dst, int interpolation=CV_INTER_LINEAR );  
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;
}