最详细的语义分割---双线性插值到底在干什么?

众所周知,经常要用到双线性插值,它能够将图片放大和缩小。至于它是如何做到的,网上只说了一个大概,没有具体讲清楚。下面我将从它的目的和思路来一一讲解它到底做了什么

1目的

首先要明确双线插值的目的,它主要是求在图像缩放的时候目标图像对应原图像的像素值

2思路

要想确定目标图像的像素值,双线插值方法的思路是通过源图像周围四个点的像素值来确定目标图像的一个点的像素值。具体是怎么做的呢?

我们使用双线性插值来缩放图片,假设源图像大小为mxn,目标图像为axb。那么两幅图像的边长比分别为:m/a和n/b。注意,通常这个比例不是整数,编程存储的时候要用浮点型。目标图像的第(i,j)个像素点(i行j列)可以通过边长比对应回源图像。其对应坐标为(im/a,jn/b)。显然,这个对应坐标一般来说不是整数,而非整数的坐标是无法在图像这种离散数据上使用的。双线性插值通过寻找距离这个对应坐标最近的四个像素点,来计算该点的值(灰度值或者RGB值)。如果你的对应坐标是(2.5,4.5),由于小数是无法在图片中表示坐标的,通过插值来确定该小数点的像素值,那么最近的四个像素是(2,4)、(2,5)、(3,4),(3,5)。
有了和你临近的四个点的坐标,那么我就可以在原图上找到它们的像素值,我们通过
f(i,j)=w1p1+w2p2+w3p3+w4p4;
来确定目标图像上(i,j)点的像素值,其中这个wi(i=1,2,3,4)就是通过双线性插值计算出来的,pi就是对应相邻四个像素点的像素值

3wi的计算

有了这个思路,我们现在要求的就是通过双线性插值来求未知数wi,这个也是网上直接搜出来最多的答案,搜索双线性插值直接告诉你怎么计算,不告诉你为什么要这么计算。知道了为什么要进行插值,就很容易理解了
数学定义
上面说到,我们已经知道了在源图上,我们从目标图映射回源图的坐标信息(图中P)以及它周围的四个点(Qij),我们现在就是要求F§,即P点的像素值。注意区分这里的像素值和坐标值是不一样的
假设在单位正方形中(边长为1),利用同一条直线上的斜率相等可以得到:
双线性插值数学推导
其中f(Qij)就是我们之前说的Pi,与之相乘的就是wi,是我们所求的系数,这里要注意的是,由于是单位正方形,可以得到x2-x1等于1,进一步的w1=(x2-x)(y2-y)

这样,在已知四个点的坐标和像素值的情况下,我们就可以得到目标图上的像素点的像素值。总结起来就一句话:通过双线性插值以及图片大小的缩放关系,来求得图片缩放后的像素值。
在这里插入图片描述

  • 14
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值