图像处理入门:内插

内插是在诸如放大、缩小、旋转和几何校正等任务中广泛应用的基本工具。内插是用一只数据来估计未知位置的数值的处理。如下图所示。


最近邻插值:将原图像中最近邻的灰度值赋值给了每个新位置。是一种最基本、最简单的图像缩放算法,效果也是最不好的,放大后的图像有很严重的马赛克,缩小后的图像有很严重的失真;效果不好的根源就是其简单的最临近插值方法引入了严重的图像失真,比如,当由目标图的坐标反推得到的源图的的坐标是一个浮点数的时候,采用了四舍五入的方法,直接采用了和这个浮点数最接近的象素的值。如面的例子所示:

234   38    22
67     44    12

89     65    63

        | |

        | |

    \        /

        \/

234    38     22     22  
67      44     12     12  
89      65     63     63  
89      65     63     63 

双线性插值:又称为双线性内插。在数学上,双线性插值是有两个变量的插值函数的线性插值扩展,其核心思想是在两个方向分别进行一次线性插值。

假如我们想得到未知函数f在点P=(x,y)的值,即:根据红色的已知数据点得到绿色未知点的待插值;我们已知函数f在Q11 = (x1,y1)、Q12= (x1.y2),Q21 = (x2,y1)以及Q22 = (x2,y2)四个点的值。

双线性插值图像

首先在x方向进行线性插值,得到

f(R_1)\approx\frac{x_2-x}{x_2-x_1}f(Q_{11})+\frac{x-x_1}{x_2-x_1}f(Q_{21})\quad where\quad R_1=(x,y_1)

f(R_2)\approx\frac{x_2-x}{x_2-x_1}f(Q_{12})+\frac{x-x_1}{x_2-x_1}f(Q_{22})\quad where\quad R_2=(x,y_2)

然后在y方向进行线性插值,得到

f(P)\approx\frac{y_2-y}{y_2-y_1}f(R_1)+\frac{y-y_1}{y_2-y_1}f(R_2)

综合上面三个式子就得到所要的结果f(x,y),

f(x,y)\approx\frac{f(Q_{11})}{(x_2-x_1)(y_2-y_1)}(x_2-x)(y_2-y)+\frac{f(Q_{21})}{(x_2-x_1)(y_2-y_1)}(x-x_1)(y_2-y)+\frac{f(Q_{12})}{(x_2-x_1)(y_2-y_1)}(x_2-x)(y-y_1)+\frac{f(Q_{22})}{(x_2-x_1)(y_2-y_1)}(x-x_1)(y-y_1)

化简

如果选择一个坐标系统使得f的四个已知点坐标分别为(0,0)、(0,1)、(1, 0) 和 (1, 1),那么插值公式就可以化简为

f(x,y)\approx f(0,0)(1-x)(1-y)+f(1,0)x(1-y)+f(0,1)(1-x)y+f(1,1)xy)

或者用矩阵运算表示为

f(x,y)\approx\left[1-x\quad x\right]\begin{bmatrix}f(0,0)&f(0,1)\\f(1,0)&f(1,1)\end{bmatrix}\begin{bmatrix}1-y\\y\end{bmatrix}

双三次内插:

猜你喜欢

转载自blog.csdn.net/m_z_g_y/article/details/80378348