opencv学习(二十七)之图像缩放函数resize

本文详细介绍了OpenCV中的图像缩放函数resize(),包括函数参数、插值算法及其应用场景。讲解了如何使用resize()进行图像尺寸变换,并推荐在不同情况下选择合适的插值方法,如缩小图像时使用INTER_AREA,放大图像时使用INTER_CUBIC以获得较好效果。

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

上一篇介绍了分别利用高斯金字塔和拉普拉斯金字塔结合opencv提供的pyrDown和pyrUp函数实现了图像的缩放,opencv还提供了另外一种图像缩放函数resize()实现对输入图像缩放到指定大小,其函数原型如下:

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

参数解释:
. InputArray src: 输入图像,可以是Mat类型
. OutputArray dst: 输出图像,其尺寸由第三个参数dsize(如果dsize不为0),当dsize为0,输出图像的尺寸由src.size()、fx和fy计算得到,但是输出图像类型与输入图像一致
. Size dsize: 输出图像的尺寸,如果dsize设置为0,则dsize的值将由下式计算得到

dsize=Size(round(fx*src.cols), round(fy*src.rows))

需要注意的是dsize和fx、fy不能同时为0

. double fx = 0: 水平方向上的缩放系数,当fx为0时,将由如下公式计算得到

(double)dsize.width/src.cols

. double fy = 0: 垂直方向上的缩放系数,如果fy为0,将由如下公式计算得到

(double)dsize.height/src.rows

. int interpolation=INTER_LINEAR: 图像缩放的插值算法类型,默认是INTER_LINEAR(线性插值),在opencv3.2中通过查看InterpolationFlags查看详细信息,可选的插值方式如下:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值