在做数字图像处理时,经常会碰到小数象素坐标的取值问题,这时就需要依据邻近象素的值来对该坐标进行插值。比如:做地图投影转换,对目标图像的一个象素进行坐标变换到源图像上对应的点时,变换出来的对应的坐标是一个小数,再比如做图像的几何校正,也会碰到同样的问题。看够了各种数学原理,直接上具体的实现步骤。no公式no理论,以下是对常用的三种数字图像插值 方法进行介绍。

1、最近邻插值法(Nearest Neighbour Interpolation)

这是最简单的一种插值方法,不需要计算,在待求象素的四邻象素中,将距离待求象素最近邻的像素灰度赋给待求象素。设i+u, j+v(i, j为正整数, u, v为大于零小于1的小数,下同)为待求象素坐标,则待求象素灰度的值 f(i+u, j+v) 如下图所示:

 

二维cressman插值调整影响半径 二维插值算法原理_插值


如果(i+u, j+v)落在A区,即u<0.5, v<0.5,则将左上角象素的灰度值赋给待求象素,同理,落在B区则赋予右上角的象素灰度值,落在C区则赋予左下角象素的灰度值,落在D区则赋予右下角象素的灰度值。

特点:最近邻插值法虽然计算量较小,但可能会造成插值生成的图像灰度上的不连续,在灰度变化的地方可能出现明显的锯齿状。

2、双线性插值法(Bilinear Interpolation)

双线性插值法的基本思想是根据点(u,v)的4个邻点灰度值,经过三次线性插值计算求出

二维cressman插值调整影响半径 二维插值算法原理_灰度值_02

,如下图所示:

二维cressman插值调整影响半径 二维插值算法原理_插值_03

若用[S]表示不超过S的最大整数,则

二维cressman插值调整影响半径 二维插值算法原理_插值_04

S1:由f(u,v)、f(u+1,v)做第一次水平方向的插值计算,求得

二维cressman插值调整影响半径 二维插值算法原理_二维cressman插值调整影响半径_05


二维cressman插值调整影响半径 二维插值算法原理_灰度值_06

S2:由f(u,v+1)、f(u+1,v+1)做第二次水平方向的插值计算,求得

二维cressman插值调整影响半径 二维插值算法原理_插值_07


二维cressman插值调整影响半径 二维插值算法原理_灰度_08

S3:由

二维cressman插值调整影响半径 二维插值算法原理_灰度值_09


二维cressman插值调整影响半径 二维插值算法原理_灰度值_10

做第三次垂直方向的插值计算,求得

二维cressman插值调整影响半径 二维插值算法原理_灰度值_11


二维cressman插值调整影响半径 二维插值算法原理_灰度_12

本质:根据4个近邻像素点的灰度值做2个方向共3次线性插值

特点:双线性内插法的计算比最邻近点法复杂,计算量较大,但没有灰度不连续的缺点,结果基本令人满意。它具有低通滤波性质,使高频分量受损,图像轮廓可能会有一点模糊。

3、三次多项式插值法(Cubic Polynomial Interpolation)

对于二维医学图像插值需要考虑16个邻域点的灰度值的影响,如下图所示:

二维cressman插值调整影响半径 二维插值算法原理_插值_13

算法过程如下:

S1:定义两个中间变量

二维cressman插值调整影响半径 二维插值算法原理_插值_14

二维cressman插值调整影响半径 二维插值算法原理_灰度值_15

S2:在四条水平线上分别运用四次多项式插值计算a,b,c,d四点处的灰度值

二维cressman插值调整影响半径 二维插值算法原理_插值_16

二维cressman插值调整影响半径 二维插值算法原理_灰度_17

二维cressman插值调整影响半径 二维插值算法原理_插值_18

二维cressman插值调整影响半径 二维插值算法原理_二维cressman插值调整影响半径_19

S3:对a,b,c,d四点在垂直方向上再进行三次多项式插值,计算

二维cressman插值调整影响半径 二维插值算法原理_灰度_20

其中,函数c(x)的定义如下:

二维cressman插值调整影响半径 二维插值算法原理_灰度值_21

二维cressman插值调整影响半径 二维插值算法原理_灰度值_22

特点:三次多项式插值法插值精度高,但是计算量较大