示例程序010--图像缩放

用到的函数:

cvResize

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

  作用:

    函数cvResize 重新调整图像src(或它的ROI),使它精确匹配目标dst(或其ROI)。

  参数列表:

  src 源图像

  dst 目标图像

  interpolation 修改、插补的方法,取值如下:

  ·CV_INTER_NN - 最近-邻居插补

  ·CV_INTER_LINEAR - 双线性插值(默认方法)

  ·CV_INTER_AREA - 像素面积相关重采样。当缩小突刺昂视。该方法可以避免波纹的出现。当放大图像是,类似于方法CV_INTER_NN。(It is the preferred method for image decimation that gives moire-free results. In case of zooming it is similar to CV_INTER_NN method. )

  ·CV_INTER_CUBIC - 双三次插值。

 

代码:

#include "stdafx.h"
#include<cv.h>
#include<highgui.h>

int main(int argc, char* argv[])
{
 IplImage *src =cvLoadImage("Lena.jpg");   

 IplImage *dst = 0;  

 double scale=0.5;  //缩放倍数


 CvSize dst_cvsize;   //目标图像尺寸
 dst_cvsize.width = src->width * scale;  //目标图像的宽为源图象宽的scale倍
 dst_cvsize.height=src->height * scale; //目标图像的高为源图象高的scale倍
 dst = cvCreateImage( dst_cvsize, src->depth, src->nChannels); //构造目标图象
 
 cvResize(src, dst, CV_INTER_LINEAR); //缩放源图像到目标图像
 
 cvNamedWindow( "src",   CV_WINDOW_AUTOSIZE ); //创建用于显示源图像的窗口
 cvNamedWindow( "dst",   CV_WINDOW_AUTOSIZE ); //创建用于显示目标图像的窗口
 cvShowImage( "src", src );  //显示源图像
 cvShowImage( "dst", dst );  //显示目标图像
 cvWaitKey(0);  

 
 cvReleaseImage(&src); 

 cvReleaseImage(&dst);

 cvDestroyAllWindows();

 

 return 0;
}

}

 

运行结果:

示例程序010--图像缩放