双线性插值原理学习(2021.1.18)

1、双线性插值介绍

        双线性插值(也称双线性内插),核心是在两个方向分别进行一次线性插值,在图像处理、信号分析等领域广泛应用。

2、双线性插值原理

在这里插入图片描述
        一元函数 y = f ( x ) y=f(x) y=f(x)可以在二维空间(如平面直角坐标系)绘制成曲线,设一元函数 f ( x ) f(x) f(x),已知两点 P 1 ( x 1 , f ( x 1 ) ) P_1(x_1,f(x_1)) P1(x1,f(x1)) P 2 ( x 2 , f ( x 2 ) ) P_2(x_2,f(x_2)) P2(x2,f(x2)),则根据一维线性插值求两点所连直线上的一点 ( x , y ) (x,y) (x,y)公式如下:
                 y − f ( x 1 ) f ( x 2 ) − f ( x 1 ) = x − x 1 x 2 − x 1 (1) \frac{y-f(x_1)}{f(x_2)-f(x_1)} =\frac{x-x_1}{x_2-x_1} \tag{1} f(x2)f(x1)yf(x1)=x2x1xx1(1)                 即
y = x 2 − x x 2 − x 1 f ( x 1 ) + x − x 1 x 2 − x 1 f ( x 2 ) (2) y=\frac{x_2-x}{x_2-x_1}f(x_1)+\frac{x-x_1}{x_2-x_1}f(x_2) \tag{2} y=x2x1x2xf(x1)+x2x1xx1f(x2)(2)
在这里插入图片描述

        二元函数 z = f ( x , y ) z=f(x,y) z=f(x,y)可以在三维空间(如空间直角坐标系)绘制曲面,设二元函数 z = f ( x , y ) z=f(x,y) z=f(x,y),已知四个点 Q 1 ( x 1 , y 1 , f ( x 1 , y 1 ) ) Q_1(x_1,y_1,f(x_1,y_1)) Q1(x1,y1,f(x1,y1)) Q 2 ( x 1 , y 2 , f ( x 1 , y 2 ) ) Q_2(x_1,y_2,f(x_1,y_2)) Q2(x1,y2,f(x1,y2)) Q 3 ( x 2 , y 1 , f ( x 2 , y 1 ) ) Q_3(x_2,y_1,f(x_2,y_1)) Q3(x2,y1,f(x2,y1)) Q 4 ( x 2 , y 2 , f ( x 2 , y 2 ) ) Q_4(x_2,y_2,f(x_2,y_2)) Q4(x2,y2,f(x2,y2))利用双线性插值的本质:在两个方向上分别进行一次线性插值求解最后的插值点 ( x , y , z ) (x,y,z) (x,y,z)
        首先在X方向上进行插值(需要固定y1、y2平面):
                在 y = y 1 y=y_1 y=y1平面, f ( x , y 1 ) = x 2 − x x 2 − x 1 f ( x 1 , y 1 ) + x − x 1 x 2 − x 1 f ( x 2 , y 1 ) (3) f(x,y_1)=\frac{x_2-x}{x_2-x_1}f(x_1,y_1)+\frac{x-x_1}{x_2-x_1}f(x_2,y_1) \tag{3} f(x,y1)=x2x1x2xf(x1,y1)+x2x1xx1f(x2,y1)(3)
                在 y = y 2 y=y_2 y=y2平面, f ( x , y 2 ) = x 2 − x x 2 − x 1 f ( x 1 , y 2 ) + x − x 1 x 2 − x 1 f ( x 2 , y 2 ) (4) f(x,y_2)=\frac{x_2-x}{x_2-x_1}f(x_1,y_2)+\frac{x-x_1}{x_2-x_1}f(x_2,y_2) \tag{4} f(x,y2)=x2x1x2xf(x1,y2)+x2x1xx1f(x2,y2)(4)
        然后在Y方向上进行插值(需要固定x平面):
z = y 2 − y y 2 − y 1 f ( x , y 1 ) + y − y 1 y 2 − y 1 f ( x , y 2 ) (5) z =\frac{y_2-y}{y_2-y_1}f(x,y_1)+\frac{y-y_1}{y_2-y_1} f(x,y_2) \tag{5} z=y2y1y2yf(x,y1)+y2y1yy1f(x,y2)(5)
        综上可得:
z = a ∗ f ( x 1 , y 1 ) + b ∗ f ( x 2 , y 1 ) + c ∗ f ( x 1 , y 2 ) + d ∗ f ( x 2 , y 2 ) (6) z=a*f(x_1,y_1)+b*f(x_2,y_1)+c*f(x_1,y_2)+d*f(x_2,y_2) \tag{6} z=af(x1,y1)+bf(x2,y1)+cf(x1,y2)+df(x2,y2)(6)
        其中 a = x 2 − x x 2 − x 1 y 2 − y y 2 − y 1 a=\frac{x_2-x}{x_2-x_1}\frac{y_2-y}{y_2-y_1} a=x2x1x2xy2y1y2y      b = x − x 1 x 2 − x 1 y 2 − y y 2 − y 1 b=\frac{x-x_1}{x_2-x_1}\frac{y_2-y}{y_2-y_1} b=x2x1xx1y2y1y2y     c = x 2 − x x 2 − x 1 y − y 1 y 2 − y 1 c=\frac{x_2-x}{x_2-x_1}\frac{y-y_1}{y_2-y_1} c=x2x1x2xy2y1yy1      d = x − x 1 x 2 − x 1 y − y 1 y 2 − y 1 d=\frac{x-x_1}{x_2-x_1}\frac{y-y_1}{y_2-y_1} d=x2x1xx1y2y1yy1

3、图像应用

        一张二维图像本质可以看成二维函数 z = f ( x , y ) z=f(x,y) z=f(x,y),如 ( x , y ) (x,y) (x,y)即某个像素点的坐标,z即像素点处的函数值。对于二维图像来说,经常用相邻四个像素点, x 2 − x 1 = 1 , y 2 − y 1 = 1 x_2-x_1=1,y_2-y_1=1 x2x1=1,y2y1=1,所以式(6)中分母都为1
        设图像上四个相邻点为 ( x 1 , y 1 ) (x_1,y_1) (x1,y1) ( x 1 , y 2 ) (x_1,y_2) (x1,y2) ( x 2 , y 1 ) (x_2,y_1) (x2,y1) ( x 2 , y 2 ) (x_2,y_2) (x2,y2),可令 x 1 = i , y 1 = j x_1=i, y_1=j x1=i,y1=j,则 x 2 = i + 1 , y 2 = j + 1 x_2=i+1, y_2 = j+1 x2=i+1,y2=j+1,同时令 x − x 1 = u x-x_1=u xx1=u, y − y 1 = v y-y_1=v yy1=v,则 x 2 − x = 1 − u x_2-x=1-u x2x=1u, y 2 − y = 1 − v y_2-y=1-v y2y=1v
带入式(6)后如下:
f ( i + u , j + v ) = ( 1 − u ) ( 1 − v ) f ( i , j ) + u ( 1 − v ) f ( i + 1 , j ) + ( 1 − u ) v f ( i , j + 1 ) + u v f ( i + 1 , j + 1 ) (7) f(i+u,j+v)=(1-u)(1-v)f(i,j)+u(1-v)f(i+1,j)+(1-u)vf(i,j+1)+uvf(i+1,j+1) \tag{7} f(i+u,j+v)=(1u)(1v)f(i,j)+u(1v)f(i+1,j)+(1u)vf(i,j+1)+uvf(i+1,j+1)(7)

4、上采样

        插值作为上采样的手段,往往要利用稀疏像元产生密集像元。上采样也可看作是一种小数步长的卷积
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/jing_zhong/article/details/111979003