OpenCV-修改图片的大小-resize()函数

       在处理图片时,常常需要时得修改图片的比例或者匹配另外一张图片的大小,那就可以使用resize(),重新修改源图片的大小或使得和另外一张图片尺寸相同。

首先看看resize()的参数

void resize( InputArray src, OutputArray dst,Size dsize, double fx = 0, double fy = 0,int interpolation = INTER_LINEAR );

src :source image.//原图。

dst: destination image//目标图片

dsize:dstination size//目标图片的大小

fx:(原文用的是''decimate'':抽取)修正x方向上的比例。

fy:修正y方向上的比例。

interpolation:插值方法,如果原图变大,就可以使用。是一个枚举变量,为1、2、3...,代表了不同的插值方法。

--------------------------------------------------接下来展示两种修改图片的场景------------------------------------------------------------------------------

//修改图片的比例

#include
#include

using namespace cv;
using namespace std;

int main()
{
    Mat srcImage = imread("1.jpg");//打开原图
    Mat dstImage;          //目标图
    imshow("未矫正过的图像", srcImage);//显示未矫正的原图
    resize(srcImage, dstImage, Size(), 0.5, 0.5);//由于指定缩放的比例,Size()直接给,后面就分别是x、y方向的缩放比例
    imshow("矫正后的图像",dstImage);
    waitKey(0);
    return 0;
}

---------------------------------------------------------匹配另外一张图片-----------------------------------------------------------------------------------

#include
#include

using namespace cv;
using namespace std;

int main()
{
    Mat srcImage1 = imread("1.jpg"), dstImage1;//打开原图,创建修改后的目标图存放的矩阵
    Mat srcImage2 = imread("2.jpg");          //需要匹配的另外一张图
    imshow("未矫正过的图像", srcImage1);//显示未修改的图片
    resize(srcImage1, dstImage1, srcImage2.size(), 0, 0);

    //Size(),就是第二张图片的大小了,因为已经匹配了另外一张图片的大小,所以x和y方向的缩放比例就是0了。
    imshow("矫正后的图像",dstImage1);
    waitKey(0);
    return 0;
}    

------------------------------------------------------------------------

我用的OpenCV3+visual studio2017社区版。

你可能感兴趣的:(OpenCV-修改图片的大小-resize()函数)