- 最近邻元法。最简单的一种插值方法,不需要计算。在待求像素的四邻像素中,将距离待求像素最近的邻像素灰度赋给待求像素。具体计算方法如下图所示。其中设 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,y1)=f(x1,y1)⋅x2−xx2−x1+f(x2,y1)⋅x−x1x2−x1f\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,y2)=f(x1,y2)⋅x2−xx2−x1+f(x2,y2)⋅x−x1x2−x1
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,y1)⋅y2−yy2−y1+f(x,y2)⋅y−y1y2−y1
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
㓚果 x2=1,x1=0,y2=1,y1=1x_{2}=1, x_{1}=0, y_{2}=1, y_{1}=1x2=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∣≤1a∣x∣3−5a∣x∣2+8a∣x∣−4a for 1<∣x∣<20 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 函数值,然后相乘得到最终的权值,再加权相加。