数字图像处理的插值方法

来源:互联网 发布:餐饮取名软件 编辑:程序博客网 时间:2024/04/30 23:01

在对图像进行空间变换的过程中,典型的情况是在对图像进行放大,旋转处理的时候,图像会出现失真的现象。这是由于在变换之后的图像中,存在着一些变换之前的图像中没有的像素位置。处理这一问题的方法被称为图像灰度级插值。常用的插值方式有三种:最近邻域插值、双线性插值、双三次插值。理论上来讲,最近邻域插值的效果最差,双三次插值的效果最好,双线性插值的效果介于两者之间。不过对于要求不是非常严格的图像插值而言,使用双线性插值通常就足够了。


图像的最近邻域插值很好理解,就是谁近就取谁的灰度值,分为前向映射和后向映射。


图像的双线性插值比较麻烦,不过如果理解了线性插值,则双线性插值也就不难理解了。

线性插值比较浅显易懂,就是在A,B两点连线之间插入第三个点C,C的值为C=aA+bB

但是如果C不在AB的线上该怎么办?于是就有了双线性插值。图像的双线性插值是基于与其相邻的四个端点的像素值来确定的。

如图,已知Q12,Q22,Q11,Q21,但是要插值的点为P点,P点不在任意两点的连线上,这就要用双线性插值了,首先在x轴方向上,对R1和R2两个点进行插值,这个很简单,然后根据R1和R2对P点进行插值,这就是所谓的双线性插值。

https://upload.wikimedia.org/wikipedia/commons/e/e7/Bilinear_interpolation.png

假如我们想得到未知函数 f 在点P=\left( x, y\right) 的值,假设我们已知函数fQ_{11} = \left( x_1, y_1 \right) ,Q_{12} = \left( x_1, y_2 \right) ,Q_{21} = \left( x_2, y_1 \right) , 及Q_{22} = \left( x_2, y_2 \right) 四个点的值。

首先在 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\mbox{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\mbox{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 \left( x, y \right),

 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 \begin{bmatrix}1-x & x \end{bmatrix} \begin{bmatrix}f(0,0) & f(0,1) \\f(1,0) & f(1,1) \end{bmatrix} \begin{bmatrix}1-y \\y \end{bmatrix}

与这种插值方法名称不同的是,这种插值方法的结果通常不是线性的,它的形式是

 b_1 + b_2 x + b_3 y + b_4 x y. \,

常数的数目都对应于给定的 f 的数据点数目

 b_1 = f(0,0)
 b_2 = f(1,0) - f(0,0)
 b_3 = f(0,1) - f(0,0)
 b_4 = f(1,1) - f(1,0) - f(0,1) + f(0,0)

线性插值的结果与插值的顺序无关。首先进行 y 方向的插值,然后进行 x 方向的插值,所得到的结果是一样的。



0 0