线性插值

先讲一下线性插值:已知数据 (x0, y0) 与 (x1, y1),要计算 [x0, x1] 区间内某一位置 x 在直线上的y值(反过来也是一样,略):

 

y−y/0x−x0=y1−y0/x1−x0

y−y0/x−x0=y1−y0/x1−x0

 

 

y=(x1−x/x1−x0 )*y0+(x−x0/x1−x0)*y1

 

上面比较好理解吧,仔细看就是用x和x0,x1的距离作为一个权重,用于y0和y1的加权。双线性插值本质上就是在两个方向上做线性插值。

双线性插值

在数学上,双线性插值是有两个变量的插值函数的线性插值扩展,其核心思想是在两个方向分别进行一次线性插值[1]。见下图:

学习理解线性插值 双线性插值_双线性插值

假如我们想得到未知函数 f 在点 P = (x, y) 的值,假设我们已知函数 f 在 Q11 = (x1, y1)、Q12 = (x1, y2), Q21 = (x2, y1) 以及 Q22 = (x2, y2) 四个点的值。最常见的情况,f就是一个像素点的像素值。首先在 x 方向进行线性插值,得到

学习理解线性插值 双线性插值_双线性插值_02

 

学习理解线性插值 双线性插值_线性插值_03

然后在 y 方向进行线性插值,得到

学习理解线性插值 双线性插值_线性插值_04

综合起来就是双线性插值最后的结果:

学习理解线性插值 双线性插值_线性插值_05

 

学习理解线性插值 双线性插值_双线性插值_06

由于图像双线性插值只会用相邻的4个点,因此上述公式的分母都是1。

 

一维度的时候f(x)  就是求一条线上面那个点x的value 

二维的时候 就是求一个面上的xy点的value 先x方向

三维的时候就是 求空间内xyz点的value  先z方向  然后得到一个二维的面 按照2维的步骤

然后插值是近似值 作为颜色应该是看不出来有啥不对的