图像处理-最近邻&双线性缩放

图像处理-最近邻&双线性缩放

前言

天才和普通人不一样的地方在于,天才可以根据A推导出C,但是普通人只能通过A推导出B,然后在推导出C。作为普通人只能多花时间,去得到天才很容易得到的推论。但是天道酬勤,心心念念,必有回响。

简介

图像缩放包含两种操作——缩小和放大。有三种经典的缩放算法,分别是最近邻插值(neareset interpolation),双线性插值(bilinear interpolation),双立方插值(bicubic interpolation)。在我的理解中,缩小和放大的操作都是,根据特定的采样算法从原图中获取像素插入到目标图像中。

假设有一张3*3大小256级的灰度图像src
在这里插入图片描述
在这里插入图片描述
图像缩放的过程就是通过一定的采样算法从src中找到?代表的未知的像素点。下面会介绍两种缩放算法-最近邻和双线性插值。

最近邻

目标图像坐标映射到原图中的坐标公式。

srx.x = des.x*src.w/des.w
src.y = des.y*src.h/des.h

在这里插入图片描述
根据坐标映射公式,目标图像坐标(1,2),src.x = 1*3/4=1.33333, src.y = 2*3/4=1.5
因此des坐标(1,2)映射到src上的坐标是(1.33333,1.5)。 最邻近插值就是找到距离坐标(1.3333,1.5)最近的一点,分别对x,y进行四舍五入操作,得到最邻近的坐标为(1,2),所以des在坐标(1,2)的像素值是38。遍历des的每一个坐标点通过最邻近插值的方式找到像素点,填到des中,就会得到最终的缩放图片。

优点
  • 算法简单,容易实现
  • 计算速度快
缺点
  • 放大后的图片有严重的马赛克情况
  • 缩小后的图片会严重失真

核心代码

uint8_t* nearestNeighbor
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值