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)y−f(x1)=x2−x1x−x1(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=x2−x1x2−xf(x1)+x2−x1x−x1f(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)=x2−x1x2−xf(x1,y1)+x2−x1x−x1f(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)=x2−x1x2−xf(x1,y2)+x2−x1x−x1f(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=y2−y1y2−yf(x,y1)+y2−y1y−y1f(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=a∗f(x1,y1)+b∗f(x2,y1)+c∗f(x1,y2)+d∗f(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=x2−x1x2−xy2−y1y2−y
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=x2−x1x−x1y2−y1y2−y
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=x2−x1x2−xy2−y1y−y1
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=x2−x1x−x1y2−y1y−y1
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
x2−x1=1,y2−y1=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
x−x1=u,
y
−
y
1
=
v
y-y_1=v
y−y1=v,则
x
2
−
x
=
1
−
u
x_2-x=1-u
x2−x=1−u,
y
2
−
y
=
1
−
v
y_2-y=1-v
y2−y=1−v
带入式(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)=(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)(7)
4、上采样
插值作为上采样的手段,往往要利用稀疏像元产生密集像元。上采样也可看作是一种小数步长的卷积。