- 最近邻元法。最简单的一种插值方法,不需要计算。在待求像素的四邻像素中,将距离待求像素最近的邻像素灰度赋给待求像素。具体计算方法如下图所示。其中设 i+u, j+v(i, j 为正整数, u, v 为大于 0 小于 1 的小数) 为待求
像素坐标,则待求像素灰度的值为 f(i+u,j+v)。如果 (i+u,j+v) 落在 A区,即 u<0.5, v<0.5,则将左上角像素的灰度值赋给待求像素,同理可得,落在 B 区则赋予右上角的像素灰度值,落在 C 区则赋予左下角像素的灰度值,落在 D 区则赋予右下角像素的灰度值。最近邻元法计算量较小,但可能会造成插值生成的图像灰度上的不连续,在灰度变化的地方可能出现明显的锯齿状
-
双线性内插法。已知(x1, y1, f (x1, y1)),(x1, y2, f (x1, y2)),(x2, y1, f (x2, y1)),(x2, y2, f (x2, y2))
用双线性插值估计 f(x, y):
先对 x 进行插值去求 f(x,y1) 和 f(x,y2):f ( x , y 1 ) = f ( x 1 , y 1 ) ⋅ x 2 − x x 2 − x 1 + f ( x 2 , y 1 ) ⋅ x − x 1 x 2 − x 1 f\left(x, y_{1}\right)=f\left(x_{1}, y_{1}\right) \cdot \frac{x_{2}-x}{x_{2}-x_{1}}+f\left(x_{2}, y_{1}\right) \cdot \frac{x-x_{1}}{x_{2}-x_{1}} f(x,y1)=f(x1,y1)⋅x2−x1x2−x+f(x2,y1)⋅x2−x1x−x1
f
(
x
,
y
2
)
=
f
(
x
1
,
y
2
)
⋅
x
2
−
x
x
2
−
x
1
+
f
(
x
2
,
y
2
)
⋅
x
−
x
1
x
2
−
x
1
f\left(x, y_{2}\right)=f\left(x_{1}, y_{2}\right) \cdot \frac{x_{2}-x}{x_{2}-x_{1}}+f\left(x_{2}, y_{2}\right) \cdot \frac{x-x_{1}}{x_{2}-x_{1}}
f(x,y2)=f(x1,y2)⋅x2−x1x2−x+f(x2,y2)⋅x2−x1x−x1
然后再去求
f
(
x
,
y
)
f(x, y)
f(x,y) :
f
(
x
,
y
)
=
f
(
x
,
y
1
)
⋅
y
2
−
y
y
2
−
y
1
+
f
(
x
,
y
2
)
⋅
y
−
y
1
y
2
−
y
1
f(x, y)=f\left(x, y_{1}\right) \cdot \frac{y_{2}-y}{y_{2}-y_{1}}+f\left(x, y_{2}\right) \cdot \frac{y-y_{1}}{y_{2}-y_{1}}
f(x,y)=f(x,y1)⋅y2−y1y2−y+f(x,y2)⋅y2−y1y−y1
㓚果
x
2
=
1
,
x
1
=
0
,
y
2
=
1
,
y
1
=
1
x_{2}=1, x_{1}=0, y_{2}=1, y_{1}=1
x2=1,x1=0,y2=1,y1=1, 那么:
f
(
x
,
y
)
=
(
1
−
y
)
⋅
(
1
−
x
)
⋅
f
(
0
,
0
)
+
(
1
−
y
)
⋅
x
⋅
f
(
1
,
0
)
+
y
⋅
(
1
−
x
)
⋅
f
(
0
,
1
)
+
y
⋅
x
⋅
f
(
1
,
1
)
f(x, y)=(1-y) \cdot(1-x) \cdot f(0,0)+(1-y) \cdot x \cdot f(1,0)+y \cdot(1-x) \cdot f(0,1)+y \cdot x \cdot f(1,1)
f(x,y)=(1−y)⋅(1−x)⋅f(0,0)+(1−y)⋅x⋅f(1,0)+y⋅(1−x)⋅f(0,1)+y⋅x⋅f(1,1)
RoI Align 就行用的双线性插值对连续点利用周围的四个点进行双线性插值
- 三次内插值
W ( x ) = { ( a + 2 ) ∣ x ∣ 3 − ( a + 3 ) ∣ x ∣ 2 + 1 for ∣ x ∣ ≤ 1 a ∣ x ∣ 3 − 5 a ∣ x ∣ 2 + 8 a ∣ x ∣ − 4 a for 1 < ∣ x ∣ < 2 0 otherwise W(x)= \begin{cases}(a+2)|x|^{3}-(a+3)|x|^{2}+1 & \text { for }|x| \leq 1 \\ a|x|^{3}-5 a|x|^{2}+8 a|x|-4 a & \text { for } 1<|x|<2 \\ 0 & \text { otherwise }\end{cases} W(x)=⎩⎪⎨⎪⎧(a+2)∣x∣3−(a+3)∣x∣2+1a∣x∣3−5a∣x∣2+8a∣x∣−4a0 for ∣x∣≤1 for 1<∣x∣<2 otherwise
其中 a 取-0.5。待求像素 (x, y) 的灰度值由其周围 16 个灰度值加权内插得到, 通过分别计算 x 轴和 y 轴的 BiCubic 函数值,然后相乘得到最终的权值,再加权相加。