关于图像重采样插值算法

重新取样将在您缩放图片时更改图像数据的数量。当缩减像素取样(减少像素的数量)时,将从图像中删除一些信息。当向上重新取样(增加像素的数量或增加像素取样)时,将添加新的像素。可以指定插值算法来确定如何添加或删除像素。

 

1. 最近相邻插值算法
最近相邻插值算法(Nearest Neighbour Interpolation)一种速度快但精度低的图像像素模拟方法。该方法用于包含未消除锯齿边缘的插图,以保留硬边缘并生成较小的文件。但是,缩放图片时,缺少的像素通过直接使用与之最接近的原有像素的颜色生成,也就是说照搬旁边的像素,这样做的结果是产生了明显可见的锯齿。

最近相邻插值算法是最简单的一种插值算法,这种方法是当图片放大时,缺少的像素通过直接使用与之最接近的原有像素的颜色生成,也就是说照搬旁边的像素。当图片扩大时,要增加X点处的像素,由于X点与A、B这两个有效像素中的B点最接近,因此X点会直接照搬B点的像素,从而使到X点生成的效果与B点一样。虽然这种算法简单,因此处理的速度很快,但结果通常会产生明显可见的锯齿,效果往往不佳。

最近相邻插值算法的优点是计算量很小,算法也简单,因此运算速度较快。但它仅使用离待测采样点最近的像素的灰度值作为该采样点的灰度值,而没考虑其他相邻像素点的影响,因而重新采样后灰度值有明显的不连续性,图像质量损失较大,会产生明显的马赛克和锯齿现象。

 

2. 两次线性插值算法
两次线性插值算法(Bilinear Interpolation)是一种通过平均周围像素颜色值来添加像素的方法。该方法可生成中等品质的图像。

两次线性插值算法输出的图像的每个像素都是原图中四个像素(2×2)运算的结果,由于它是从原图四个像素中运算的,因此这种算法很大程度上消除了锯齿现象,而且效果也比较好。

两次线性插值算法是一种较好的材质影像插补的处理方式,会先找出最接近像素的四个图素,然后在它们之间作差补效果,最后产生的结果才会被贴到像素的位置上,这样不会看到“马赛克”现象。这种处理方式较适用于有一定景深的静态影像,不过无法提供最佳品质。

两次线性插值算法效果要好于最近相邻插值算法,只是计算量稍大一些,算法复杂些,程序运行时间也稍长些,但缩放后图像质量高,基本克服了最近相邻插值算法灰度值不连续的特点,因为它考虑了待测采样点周围四个直接邻点对该采样点的相关性影响。但是,此方法仅考虑待测样点周围四个直接邻点灰度值的影响, 而未考虑到各邻点间灰度值变化率的影响, 因此具有低通滤波器的性质, 从而导致缩放后图像的高频分量受到损失, 图像边缘在一定程度上变得较为模糊。

 

3. 两次立方插值算法
两次立方插值算法(Bicubic Interpolation)是两次线性插值算法的改进算法,它输出图像的每个像素都是原图16个像素(4×4)运算的结果。该算法效果较好,运算速度也不慢。

两次立方插值算法计算量最大,算法也是最为复杂的。在几何运算中,两次线性插值算法的平滑作用可能会使图像的细节产生退化,在进行放大处理时,这种影响更为明显。在其他应用中,两次线性插值算法的斜率不连续性会产生不希望的结果。两次立方插值算法不仅考虑到周围四个直接相邻像素点灰度值的影响,还考虑到它们灰度值变化率的影响。因此克服了前两种方法的不足之处,能够产生比两次线性插值更为平滑的边缘,计算精度很高,处理后的图像像质损失最少,效果是最佳的。

 

总之,在进行图像缩放处理时,应根据实际情况对几种算法做出选择,既要考虑时间方面的可行性,又要对变换后图像质量进行考虑,这样才能达到较为理想的结果。

版权所有 (C) 2011-2018 淘淘之星 上海亿旭网络科技有限公司 保留所有权利