APP下载

基于区域划分的快速图像插值算法

2013-03-11张雄辉郑力新周凯汀

网络安全与数据管理 2013年14期
关键词:锯齿像素点插值

张雄辉,郑力新,周凯汀

(华侨大学 信息科学与工程学院,福建 厦门361021)

目前计算机技术已经发展到了一定的水平,伴随其产生的数字图像处理技术的应用也越来越广泛,如航空和航天技术、生物医学工程、通信工程、工业和工程、军事公安以及文化艺术等方面。在工业和工程中的数字、智能化生产中,对数字图像的质量要求越来越高,有些直接用摄像头、照相机采集到的图像数据并不能直接使用,其中最常见的一种处理步骤就是要对已采集到的数字图像进行放大、提高其分辨率的处理。图像插值技术就是运用软件技术来提高图像分辨率的有效方法,其相对于一些硬件技术具有更节约、更有发展前景等优势。

自20世纪60年代提出数字图像插值技术之后,已出现了很多种插值技术,如最近邻插值算法、双线性插值算法和双立方插值算法等[2-4]。其中,最近邻插值算法是最简单的一种插值算法,它也称作零阶插值,它所求的插值点灰度值就等于其映射到的位置最近像素点的灰度值,但是其插值后图像常常带有锯齿形的边。双线性插值算法也称作一阶插值算法,其插值点的像素值是计算它附近的2×2区域的4个邻近像素值的加权平均而得来的。相对于最近邻插值,双线性插值可以很好地抑制锯齿的出现,它可以得到一个具有连续性和连通性的光滑映射,但是图像也会因此变得模糊。双立方插值可以改进图像模糊这一点,但是其运算量大,得不到实时应用。根据以上各算法的优缺点,本文提出了一种较快速的简单插值算法,试验证明,该算法既可以抑制边缘锯齿,又可以提高图像的质量。

1 插值算法

本文先通过较快速、简便的算法找出图像的大概边缘程度,再根据此边缘程度信息来划分区域后作插值算法。在插值过程中采用两步来插值,即先对行列之和为偶数的点进行插值,再对行列之和为奇数的点进行插值。对于两步中的不同类插值点分别采用不同的方法来进行插值。

1.1 区域划分

由于一般图像除了少数地方存在菱角外,其他大部分都是缓慢变化的区域,因此可以对待插值的图像先进行区域的划分,在此基础上插值后的图像就能抑制锯齿边缘的现象。本文采用Sobel算子和类Sobel算子来检测图像的边界程度,对于竖直和水平方向的边界程度可以直接用Sobel算子来检测,如式(1)所示;对于45°和135°方向的边界程度就用类似于Sobel算子检测[1],如式(2)所示。

根据检测到的边界程度将图像进行区域划分[5],相同的区域其灰度差异很小,在插值的时候根据这一特点进行插值就可以得到比较好的效果。通过算子检测后的边缘程度来划分图像区域情况有图1所示的几种情况:A与B、C在竖直方向为边界;B与C在水平方向为边界;D与E在有一斜边界。划分后再进行插值后的图像如图2所示。

图1 待插值图像

图2 插值后的图像

首先对行列和为偶数的点进行插值,如图2中的I1、I2、I3、I4和I5这一类的点,其周围四角为原图像的像素点。然后对行列之和为奇数的点进行插值,如图2中J1、J2、J3类的点,其在水平或者竖直方向相邻的像素点属于原图像。

1.2 行列和为偶数的像素点

对于I1这一类的插值点,其周围4个原图像的像素点都属于同一区域A,设这4个原像素点的灰度值分别为f(A1)、f(A2)、f(A3)和f(A4),则可以定义插值点I1的灰度值为:

式(3)就是根据同一区域像素点灰度值相差不大的特性来取周围点灰度值的平均值为插值点的灰度值,其方法等同于双线性插值方法。

对于I2和I3这类的插值点,其周围4个原图像像素点属于不同的区域,其中I2是属于两个竖直区域之间的插值点,I3是属于两个水平的区域之间的插值点。为了使图像边缘平滑,可以采用方向加权平均法的线性插值方法。设周围4个原图像的像素点灰度值分别为f(B1)、f(B2)、f(C1)和f(C2),则插值点的灰度值为:

对于I4和I5这样的插值点,此类插值点位于斜对角的区域边缘上。其周围的4个原图像的像素点中有3个属于同一区域,另外1个点属于另一区域。如图2中的插值点I4和I5在45°对角线上,其在45°方向灰度值的变化远没有在135°方向的变化大,则可以直接忽略在135°方向变化影响。所以对于此类插值点的灰度值可以定义为:

式(5)可以直接认为是一阶线性插值,其着重考虑对插值点相关性大的点的作用,而忽略那些不重要的点的灰度值。对于135°方向上的插值点也可以等同于45°方向插值点的算法。

1.3 行列之和为奇数的像素点

对于行列之和为奇数的像素点插值,如图2中的J1、J2、J3类的点,其在水平或者竖直方向相邻的点中有两个点是原图像的像素点,而对应的竖直或水平方向相邻的两个点为以上插值完成后的I类插值点。对于J1和J3类插值点,其相邻的两个原图像像素点都属于同一区域,则可以直接用一阶线性插值定义:

如J2一类的插值点,其相邻的两个原图像的像素点属于不同一区域C和B,则可以把已经插值好的点I2和I3也作为影响系数。由于其相邻的4个点可能都在不同区域,且灰度值相差很大,本文直接用4个点中最大灰度值减去最小灰度值,再除以另外两点灰度值之和,得到的值作为一个阈值i。如果i>1,则说明插值点的灰度值受最大灰度值点的影响较小;如果i<1,则说明其受最小灰度值点的影响较小,比较后作线性插值。计算式为:

2 实验结果及对比

在实验中,用支持本文的项目“数控切割、冲孔系统的设计”中要用到的印花灰度图像为测试图像,使用的原图像大小为137×154,放大2×2倍。用Visual Studio 2010环境编写算法,分别用最近邻法和双线性法与本文算法的结果作对比,效果如图3所示。

从图3可以看出,最近邻插值法放大处理后的图像在边缘出现了明显的锯齿;双线性插值法处理图像虽然没有锯齿,但是变得模糊不清了;而用本文方法处理后的图像很好地抑制了边缘锯齿现象,同时,也没有过于模糊的现象,在算法复杂度上也没有双立方插值那样麻烦,是一种较方便快速的插值方法。

图3 实验结果

本文根据传统算法的各自优缺点提出一种适合的、综合的快速插值方法,该算法在计算量上近似于双线性插值,用分区插值来抑制边界锯齿现象的产生,根据各区域像素相关性插值来抑制模糊的效果的产生,实现简单,较适合实际的应用。

[1]BOVIK A.Handbook of image and video processing(2en ed)[M].Beijing∶Publishing House of Electronics Industry,2006.

[2]AKYAMA M T.Clustering approach algorithm for image interpolation[R].Proceedings of the 27th Annual ACM Symposium on Applied Computing,2012.

[3]符祥,郭宝龙.图像插值技术综述[J].计算机工程与设计,2009,30(1):128-144.

[4]党向盈.基于传统插值的最佳插值算法分析[J].黑龙江科技信息,2008,11(31)∶4.

[5]STORN R,PRICE K.Minamizing the real functions of the ICEC’96 contest by differential evolution[C].Proceedings of IEEE International Conference on Evolutionary Computation,Nagoya,1996∶842-844.

猜你喜欢

锯齿像素点插值
猛犸杀手——锯齿虎
基于局部相似性的特征匹配筛选算法
基于Sinc插值与相关谱的纵横波速度比扫描方法
基于5×5邻域像素点相关性的划痕修复算法
基于canvas的前端数据加密
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割
锯齿线在整形美容领域的应用
一种改进FFT多谱线插值谐波分析方法
基于四项最低旁瓣Nuttall窗的插值FFT谐波分析
伤口多了就是锯