OpenCV中使⽤cvResize函数或resize函数进⾏图象放缩//cvResize函数原型
void cvResize( const CvArr* src, CvArr* dst, int interpolation=CV_INTER_LINEAR );
src:输⼊图像.(IplImage)
dst:输出图像.(IplImage)
interpolation:差值⽅法:
resize函数c++CV_INTER_NN - 最近邻差值
CV_INTER_LINEAR - 双线性差值 (缺省使⽤)
CV_INTER_AREA - 使⽤象素关系重采样。当图像缩⼩时候,该⽅法可以避免波纹出现。当图像放⼤时,类似于  CV_INTER_NN  ⽅法    CV_INTER_CUBIC - ⽴⽅差值
函数cvResize 将图像  src 改变尺⼨得到与  dst 同样⼤⼩。若设定ROI,函数将按常规⽀持 ROI.
使⽤C++编程时使⽤resize函数进⾏图像缩放
//resize函原型
CV_EXPORTS_W void resize( InputArray src, OutputArray dst,
Size dsize, double fx=0, double fy=0,
int interpolation=INTER_LINEAR );
注:dsize与(fx,fy)不能同时为0
⽰例程序:
使⽤ubuntu14.04+OpenCV 3.1.0
/**------------------------------------------------------------------**/
/**描述:包含程序所依赖的头⽂件**/
/**------------------------------------------------------------------**/
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <string>
/**------------------------------------------------------------------**/
/**描述:程序所⽤的命名空间**/
/**------------------------------------------------------------------**/
using namespace cv;
using namespace std;
/**------------------------------------------------------------------**/
/**描述:系统全局常量**/
/**------------------------------------------------------------------**/
//⽬标图⽚的⽂件名,需要放置在⼯程⽬录下
const string TagrImg = "Angelababy.jpeg";
//定义窗⼝标题
const char SrcWinNa[] = "SrcWindow";
const char GryWinNa[] = "GryWindow";
const char ResWinNa[] = "ResWindow";
/**------------------------------------------------------------------**/
/**描述:系统全局变量**/
/**------------------------------------------------------------------**/
//放缩倍数
double scale=0.4;
int main(int argc, char **argv)
{
/**原图像的读取及显⽰-----------------------------------------------**/
//读取图⽚
Mat SrcImg = imread(TagrImg);
//检查是否读取成功
if(!SrcImg.data)
{
cout<<"读取失败,程序流产"<<endl;
cout<<"请检查⼯程⽬录下是否存在"<<TagrImg<<endl;
return -1;
}
/
/创建窗⼝显⽰原图像
cvNamedWindow(SrcWinNa, CV_WINDOW_AUTOSIZE);
imshow(SrcWinNa, SrcImg);
/**图⽚缩放及显⽰--------------------------------------------------**/
//设置缩放后的图⽚的尺⼨
Size ResImgSiz = ls*scale, ws*scale);
Mat ResImg = Mat(ResImgSiz, pe());
resize(SrcImg, ResImg, ResImgSiz, CV_INTER_CUBIC);
//创建窗⼝⽤于显⽰缩放后的图像
cvNamedWindow(ResWinNa, CV_WINDOW_AUTOSIZE);
imshow(ResWinNa, ResImg);
cvWaitKey(0);
return1;
}
将图⽚缩⼩到0.5倍的效果图: