直观理解线性插值(linear interpolation)和双线性插值(Bilinear interpolation)

这里面主要介绍了线性插值和双线性插值的思想和过程,根据文中介绍的思路,方便大家理解。

线性插值(linear interpolation)

如下图有A,B两点,A(x0,y0),B(x1,y1)。在A和B之间线性插入一点C,这个是一维的,只要画个图,就可以直观的看出来。这个比较简单,按照求斜率来算,可以求出。Yc=Ya+(Xc-Xa)*(Yb-Ya)/(Xb-Xa)。

直观理解线性插值(linear interpolation)和双线性插值(Bilinear interpolation)

双线性插值(Bilinear interpolation)

双线性插值跟线性插值比,复杂一点,因为它是二维的,需要做两次插值。但是如果理解了线性插值再画个坐标,看起来就没有那么复杂了。如图有A,B,C,D四点坐标分别为

A:(x0,y0,z2 );B:(x1,y0,z0);C:(x0,y1,z3);D:(x1,y1,z1)

我们选择先从x方向做插值,如下图在AB之间插一点E,把y当作定值,这时候就是做转变成做一个线性插值了,Ze=Za+(Xe-Xa)*(Za-Zb)/(Xa-Xb)。

在CD之间插一点F,把y当作定值,这时候就是做转变成做一个线性插值了,Zf=Zc+(Xf-Xc)*(Zc-Zd)/(Xc-Xd)。

然后在EF之间在y方向做一次插值,即可以找到双线性插值G点的结果,Zg=Ze+(Yg-Ye)*(Ze-Zf)/(Ye-Yf)。

直观理解线性插值(linear interpolation)和双线性插值(Bilinear interpolation)