数字图像处理中的一些插值算法

在图像缩放,旋转等一些图像处理中,对图像进行插值是不可缺少的一个步骤,下面对一些常用的插值算法进行介绍:

1.最近邻插值

这种插值方法是最简单的一种插值算法,图像输出的像素值的大小直接设为与其最邻近的点的大小即可,这个算法最简单,不需要多说,可以表示为

f(x,y) = g(  round(x)  ,   round(y)  )

数字图像处理中的一些插值算法_第1张图片

                            原图                                                                                                                 放大后的图


从图中可以看出,通过最近邻插值进行放大后,图像边缘出能够明显的看到大块的像素点,与我们希望得到的结果有很大的差异。

2.双线性插值

双线性插值又称为一阶插值,它是线性插值扩展到二维的一种应用,将周围四个点的像素值进行处理而作为该点的值。假设我们要得到点f(x,y)的像素值(x,y非整数,周围点的坐标为(0,0)(1,0)(0,1)(1,1)),那么双线性插值的公式如下:

f(x,0) =  f(0,0)+ x[  f(1,0)-  f(0,0)  ]

f(x,1) =  f(0,1)+ x[  f(1,1)-  f(0,1)  ]

f(x,y) =  f(x,0)+ y[  f(x,1)-  f(x,0)  ]

数字图像处理中的一些插值算法_第2张图片

如图所示,同样对原图放大了四倍,但双线性插值的效果明显高于最近邻插值,但仍然有不足之处,经过放大的图像的细节变得模糊了起来,这是因为双线性插值对图像具有平滑的作用。



3.三次插值

三次插值用了如下的三次多项式来逼近理论上的最佳插值函数sin(x)/x,

s(x) =  1 - 2|x|^2+|x|^3                         0<=|x|,<1

            4 - 8|x|+5|x|^2-|x|^3                  1<=|x|,<2

            0                                                 |x|>=2


带求像素(x,y)的灰度值由周围16个点的像素值计算得到,计算公式如下:


三次插值放大后的图像如下:

数字图像处理中的一些插值算法_第3张图片



你可能感兴趣的:(数字图像处理中的一些插值算法)