插值方法

  1. 最近邻元法。最简单的一种插值方法,不需要计算。在待求像素的四邻像素中,将距离待求像素最近的邻像素灰度赋给待求像素。具体计算方法如下图所示。其中设 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 区则赋予右下角像素的灰度值。最近邻元法计算量较小,但可能会造成插值生成的图像灰度上的不连续,在灰度变化的地方可能出现明显的锯齿状

  1. 双线性内插法。已知(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)x2xx2x1+f(x2,y1)xx1x2x1f\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,y2)=f(x1,y2)x2xx2x1+f(x2,y2)xx1x2x1f\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, y)$ :

f(x,y)=f(x,y1)y2yy2y1+f(x,y2)yy1y2y1f(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}}

㓚果 $x_{2}=1, x_{1}=0, y_{2}=1, y_{1}=1$, 那么:

f(x,y)=(1y)(1x)f(0,0)+(1y)xf(1,0)+y(1x)f(0,1)+yxf(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)

RoI Align 就行用的双线性插值对连续点利用周围的四个点进行双线性插值

  1. 三次内插值

$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}$

其中 a 取-0.5。待求像素 (x, y) 的灰度值由其周围 16 个灰度值加权内插得到, 通过分别计算 x 轴和 y 轴的 BiCubic 函数值,然后相乘得到最终的权值,再加权相加。

Last updated