参考博文:
双线性插值_太阳花的小绿豆的博客-CSDN博客_双线性插值
线性插值
是指插值函数为一次多项式的插值方式。线性插值的几何意义即为利用过A点和B点的直线来近似表示原函数。线性插值可以用来近似代替原函数,也可以用来计算得到查表过程中表中没有的数值。
要求一个直角坐标系中p1和p2两点直线上任意一点p的值,也即已知A(x1,f(x1)),B(x2,f(x2)),设P(x, f(x)),其中x∈[x1,x2]
根据斜率的相等性(斜率存在时)我们可以得到:(斜率不存在考虑将y作为变量)
将上式变形得到:
双线性插值
又称为双线性内插。在数学上,双线性插值是有两个变量的插值函数的线性插值扩展,其核心思想是在两个方向分别进行一次线性插值。
双线性插值就是分别在两个方向上分别进行一次简单的线性插值,如图,每一个点都右z=f(x, y)来决定,可以理解为这个z值是图中每个点对应的高,下图为其俯视图,现在我们有Q11、Q12、Q21、Q22,现要求求一点P的值。
我们可以先分别求Q11、Q21连线上的R1,Q12、Q22上的R2,对于R1我们代入公式有:
同理有
再对于R1和R2上的P,我们以y作为变量有:
将f(R1)和f(R2)代入其中我们得到:
展开得到:
这就是双线性插值公式
对于这个公式个人认为可以这样来记忆:P点与,四个相邻点Q11,Q12,Q21,Q22,过P的水平线与垂线将四个相邻点围成的矩形切分为四块,公式绿色框中中每一项的值恰好等于每一个点的值与其斜对角的矩形面积乘积
图像处理中双线性插值的使用
如图,图像处理中,假设Q11,Q12,Q21,Q22为相邻像素,相邻像素差为1,即x2-x1 =1,y2-y1 = 1,则上述公式变为:
举例:
假设P 点的坐标是( 2.6 , 2.4 ),那么距离最近的四个像素点是( 2 , 2 ) , ( 2 , 3 ) , ( 3 , 2 ) , ( 3, 3 ) 那么u = 0.6 , v = 0.4,也即u = 0.6 ,v = 0.4假设:
f(2,2) =20, f(2,3) =15, f(3,2) =30, f(3,3) = 40
代入计算f(p) = 20 * 0.24 + 15 * 0.16 + 30 * 0.36+ 40 * 0.24 = 27.6