opencv 之图片缩放

本文介绍了OpenCV中用于图像缩放的三个函数:pyrUP(向上采样,放大图像)、pyrDown(向下采样,缩小图像)和resize。详细解析了它们的语法格式、参数含义以及在执行过程中的工作原理,特别强调了插值方式对缩放效果的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  简单期间 不介绍 缩放原理 

opencv3.0主要使用pyrUP,pyrDown,resize实现对图像缩放。其中pyrUP,pyrDown是图像金字塔相关的两个函数,对图像进行向上采样和向下采样的操作,本质是图像缩放功能。

   pyrUp,向上采样  即放大  语法格式:

    void  cv::pyrUP(

                                InputArray src,//原始图像

                                 OutputArray dst,//目标图像。它与原始图像具有相同的类型,指定的大小

                                 const Size & dstsize = Size(),//目标图像大小

                                  int borderType = BORDER_DEFAULT ) //边界类型,这里 仅支持默认值

     默认情况下 目标图像大小为  Size(src.cols * 2,src.rows * 2)。在任何情况下需满足下条件:

            |dst.width - src.cols * 2|<=mod(dst.width , 2)

              |dst.height - src.rows * 2|<=mod(dst.height , 2)



pyrDown,向下采样  即缩小  语法格式:

    void  cv::pyrDown(

                                InputArray src,//原始图像

                                 OutputArray dst,//目标图像。它与原始图像具有相同的类型,指定的大小

                                 const Size & dstsize = Size(),//目标图像大小

                                  int borderType = BORDER_DEFAULT ) //边界类型,这里 仅支持默认值

     默认情况下 目标图像大小为  Size((src.cols  + 1) / 2,(src.rows +1) /  2)。在任何情况下需满足下条件:

            |dst.width * 2 - src.cols |<= 2

              |dst.height * 2 - src.rows|<= 2

该函数在执行时   首先进行高斯变换  在次基础上 通过抛弃偶数行和列来实现缩小。



resize函数专门用来缩放 语法格式:

void cv:: resize(

                               InputArray src,//原始图像

                                 OutputArray dst,//目标图像。它与原始图像具有相同的类型,大小为dsize(当该值非零时),或通过src.size(),fx,fy 计算得到

                                  Size dsize ,//目标图像大小,当为0时  需计算获得具体值  dsize = Size(round(fx * src.cols),round(fy * src.rows))  该值非零  或者 fx和fy 均非零

                                 double fx = 0,//水平方向尺寸大小。当为0时,其值通过计算获得 (double)dsize.width / src.cols

                                 douse fy = 0,//垂直.................................................................................(double)dsize.height / src.rows

                                  int interpolation = INTER_LINEAR ) //插值方式   默认双线性插值

建议用默认插值方式    速度相对快而且效果并不逊色

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值