双线性插值(超级易懂的)

双线性插值

简介

在两个方向分别进行一次线性插值(首先在一个方向上使用线性插值,然后再在另一个方向上使用线性插值执行双线性插值。尽管每个步骤在采样值和位置上都是线性的,但是插值总体上不是线性的,而是在采样位置上是二次的。)

作用

一般用于重新采样图像和纹理。
计算四个周围纹理像素的属性(颜色,透明度等)的加权平均值,并将其应用于屏幕像素。
(简单来说,我要求一个已知坐标的像素值,先去找他四个周围已知像素的坐标,通过两次单线性插值,找到他的像素值是多少)

单线性插值

双线性插值(超级易懂的)
双线性插值(超级易懂的)
仔细看就是用x和x0,x1的距离作为一个权重,用于y0和y1的加权。双线性插值本质上就是在两个方向上做线性插值。

双线性插值的公式

双线性插值(超级易懂的)
如图所示,我们需要求P点的像素值。我们已知了Q11、Q21、Q12、Q22、P的坐标。也知道Q11、Q21、Q12、Q22的像素值。所以先用关于X的单线性插值去分别计算R1、R2的像素值
双线性插值(超级易懂的)在右边的等式中的字母f(Q11)、f(Q12)、f(Q21)、f(Q22)、x1、x2、x都是已知的,求出的f(x,y1)与f(x,y2)即为R1、R2的像素值。
再使用关于y方向的单线性插值计算P点的像素值
得出:
双线性插值(超级易懂的)在右边的等式中的字母y1、y2、y都是已知的,f(x,y1)与f(x,y2)即为上一个式子中求出的R1、R2像素值。

双线性插值的例子

举个栗子:
双线性插值(超级易懂的)
如右侧示例所示,可以通过在第20行和第21行的第14列和第15列的值之间进行线性内插,来计算计算为在第20.2行第14.5列处的像素处的强度值.(这里也正好说明了一般使用最相邻的像素点)
双线性插值(超级易懂的)

双线性插值的直观展示

双线性插值(超级易懂的)
我们可以看出这里的是在一个平面的双线性插值(Bilinear)

意义

此算法减少了由于将图像调整大小为非整数缩放因子而导致的某些视觉失真