OpenCV的resize函数实现图像的缩放

在OpenCV中用resize函数实现图像的缩放,下面介绍这个函数
resize函数原型如下
C++: void resize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation=INTER_LINEAR )
参数意义如下
src:源图像
dst:目标图像,即输出图像
dsize:输出图像的尺寸,当它为0的时候,由参数fx和fy决定其值,计算公式为:dsize = Size(round(fx*src.cols), round(fy*src.rows))
fx:水平方向上的缩放比例因子,当它为0的时候,其值由dsize决定,计算公式为:fx=(double)dsize.width/src.cols
fy:竖直方向上的缩放比例因子,当它为0的时候,其值由dsize决定,计算公式为:fy=(double)dsize.height/src.rows
interpolation:插值方式,有五种可选的插值方法,默认为“INTER_LINEAR”,五种插值方式如下:
    INTER_NEAREST - 最近邻插值
    INTER_LINEAR -  双线性插值(默认值)
    INTER_AREA - 像素面积相关重采样。当缩小图像时,该方法可以避免波纹的出现。当放大图像时,类似于方法INTER_NEAREST
    INTER_CUBIC - 双三次样条插值(4×4像素邻域内的双三次插值)
    INTER_LANCZOS4 - (8×8像素邻域的Lanczos插值)
示例代码如下,因代码非常简单,这里就不写代码流程了。
代码中需要的图片下载地址http://pan.baidu.com/s/1mhO2fgc 密码:628d

    //opencv版本:OpenCV3.0
    //VS版本:VS2013

    #include <opencv2/imgproc/imgproc.hpp>   
    #include <opencv2/core/core.hpp>         
    #include <opencv2/highgui/highgui.hpp>
    #include <opencv2/imgproc/types_c.h>   
    using namespace cv;

    int main()
    {
            //读入图像  
            Mat srcImage = imread("27.jpg");
            Mat temImage, dstImage1, dstImage2;
            temImage = srcImage;

            //显示原图  
            imshow("原图", srcImage);

            //尺寸调整  
            resize(temImage, dstImage1, Size(temImage.cols / 2, temImage.rows / 2), 0, 0, INTER_LINEAR);
            resize(temImage, dstImage2, Size(temImage.cols * 2, temImage.rows * 2), 0, 0, INTER_LINEAR);

            imshow("缩小后的图像", dstImage1);
            imshow("放大后的图像", dstImage2);

            waitKey();
            return 0;

    }

运行结果如下图所示

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值