双线性插值
首先要知道什么是线性插值:给出两点A(x1,f(x1)),B(x2,f(x2)),在AB之间插入一点C,知道C的横坐标为x,求f(x)。
根据两点之间的直线公式可得:
f
(
x
)
−
f
(
x
1
)
f
(
x
2
)
−
f
(
x
1
)
=
x
−
x
1
x
2
−
x
1
(
1
)
\frac{f(x)-f(x_{1})}{f(x_{2})-f(x_{1})}=\frac{x-x_{1}}{x_{2}-x_{1}} (1)
f(x2)−f(x1)f(x)−f(x1)=x2−x1x−x1(1)
移项可得:
f
(
x
)
=
x
2
−
x
x
2
−
x
1
f
(
x
1
)
+
x
−
x
1
x
2
−
x
1
f
(
x
2
)
(
2
)
f\left(x\right) = \frac{x_{2}-x}{x_{2}-x_{1}} f\left(x_{1}\right)+\frac{x-x_{1}}{x_{2}-x_{1}} f\left(x_{2}\right) \quad(2)
f(x)=x2−x1x2−xf(x1)+x2−x1x−x1f(x2)(2)
双线性插值,又称双线性内插。在数学上,双线性插值是由两个变量的插值函数的线性插值扩展,其核心思想是在两个方向分别进行一次线性插值。

如在Q11=(x1,y1),Q21=(x2,y1),Q22=(x2,y2),Q12=(x1,y2)组成的矩形内部插入点P=(x,y),已知4个点的像素值,求P点的像素值。
1.先求R1,R2的像素值。
2.根据R1,R2的像素值求得P的像素值。
因为Q11,Q21,R1的纵坐标相同,求取R1的像素值可以看做求f(R1),已知两点(x1,f(Q11)),(x2,f(Q21)),其中f(.)表示某点的像素值函数。同理可求得R2的像素值。
代入公式2可得
f
(
R
1
)
≈
x
2
−
x
x
2
−
x
1
f
(
Q
11
)
+
x
−
x
1
x
2
−
x
1
f
(
Q
21
)
Where
R
1
=
(
x
,
y
1
)
f\left(R_{1}\right) \approx \frac{x_{2}-x}{x_{2}-x_{1}} f\left(Q_{11}\right)+\frac{x-x_{1}}{x_{2}-x_{1}} f\left(Q_{21}\right) \quad \text { Where } \quad R_{1}=\left(x, y_{1}\right)
f(R1)≈x2−x1x2−xf(Q11)+x2−x1x−x1f(Q21) Where R1=(x,y1)
f ( R 2 ) ≈ x 2 − x x 2 − x 1 f ( Q 12 ) + x − x 1 x 2 − x 1 f ( Q 22 ) Where R 2 = ( x , y 2 ) f\left(R_{2}\right) \approx \frac{x_{2}-x}{x_{2}-x_{1}} f\left(Q_{12}\right)+\frac{x-x_{1}}{x_{2}-x_{1}} f\left(Q_{22}\right) \quad \text { Where } \quad R_{2}=\left(x, y_{2}\right) f(R2)≈x2−x1x2−xf(Q12)+x2−x1x−x1f(Q22) Where R2=(x,y2)
因为R1,R2横坐标相同,求取P的像素值可以看做求f§,已知两点(y1,f(R1)),(y2,f(R2))
代入公式2可得
f
(
P
)
≈
y
2
−
y
y
2
−
y
1
f
(
R
1
)
+
y
−
y
1
y
2
−
y
1
f
(
R
2
)
f(P) \approx \frac{y_{2}-y}{y_{2}-y_{1}} f\left(R_{1}\right)+\frac{y-y_{1}}{y_{2}-y_{1}} f\left(R_{2}\right)
f(P)≈y2−y1y2−yf(R1)+y2−y1y−y1f(R2)
因此就求得P点的像素值:
f
(
x
,
y
)
≈
f
(
Q
11
)
(
x
2
−
x
1
)
(
y
2
−
y
1
)
(
x
2
−
x
)
(
y
2
−
y
)
+
f
(
Q
21
)
(
x
2
−
x
1
)
(
y
2
−
y
1
)
(
x
−
x
1
)
(
y
2
−
y
)
+
f
(
Q
12
)
(
x
2
−
x
1
)
(
y
2
−
y
1
)
(
x
2
−
x
)
(
y
−
y
1
)
+
f
(
Q
22
)
(
x
2
−
x
1
)
(
y
2
−
y
1
)
(
x
−
x
1
)
(
y
−
y
1
)
.
\begin{array}{l} f(x, y) \approx \frac{f\left(Q_{11}\right)}{\left(x_{2}-x_{1}\right)\left(y_{2}-y_{1}\right)}\left(x_{2}-x\right)\left(y_{2}-y\right)+\frac{f\left(Q_{21}\right)}{\left(x_{2}-x_{1}\right)\left(y_{2}-y_{1}\right)}\left(x-x_{1}\right)\left(y_{2}-y\right) \\ +\frac{f\left(Q_{12}\right)}{\left(x_{2}-x_{1}\right)\left(y_{2}-y_{1}\right)}\left(x_{2}-x\right)\left(y-y_{1}\right)+\frac{f\left(Q_{22}\right)}{\left(x_{2}-x_{1}\right)\left(y_{2}-y_{1}\right)}\left(x-x_{1}\right)\left(y-y_{1}\right) . \end{array}
f(x,y)≈(x2−x1)(y2−y1)f(Q11)(x2−x)(y2−y)+(x2−x1)(y2−y1)f(Q21)(x−x1)(y2−y)+(x2−x1)(y2−y1)f(Q12)(x2−x)(y−y1)+(x2−x1)(y2−y1)f(Q22)(x−x1)(y−y1).
通常对于相邻点来说x2 - x1 = 1, y2 - y1 = 1。
因此上式可以化简为:
f
(
x
,
y
)
≈
f
(
Q
11
)
(
x
2
−
x
)
(
y
2
−
y
)
+
f
(
Q
21
)
(
x
−
x
1
)
(
y
2
−
y
)
+
f
(
Q
12
)
(
x
2
−
x
)
(
y
−
y
1
)
+
f
(
Q
22
)
(
x
−
x
1
)
(
y
−
y
1
)
\begin{array}{l} f(x, y) \approx {f\left(Q_{11}\right)}\left(x_{2}-x\right)\left(y_{2}-y\right)+{f\left(Q_{21}\right)}\left(x-x_{1}\right)\left(y_{2}-y\right) \\ +{f\left(Q_{12}\right)}\left(x_{2}-x\right)\left(y-y_{1}\right)+{f\left(Q_{22}\right)}\left(x-x_{1}\right)\left(y-y_{1}\right) \end{array}
f(x,y)≈f(Q11)(x2−x)(y2−y)+f(Q21)(x−x1)(y2−y)+f(Q12)(x2−x)(y−y1)+f(Q22)(x−x1)(y−y1)
9189

被折叠的 条评论
为什么被折叠?



