王 芳,钱 炜,李文超
(上海理工大学 机械学院,上海 200093)
如果某个像素点具有该像素点及其直接领域的灰度值呈现阶跃或屋顶变化这种属性,则此像素点被称为边缘点,而这些边缘点的集合构成了图像的边缘[1]。图像的边缘是图像最基本的特征,一幅简单的素描可以仅由几个线条就勾勒出物体的轮廓,由此可见图像信息最集中的地方就是图像的边缘。图像的边缘提取除去了非相关信息,同时保留了图像的重要结构特性,这样可以很大程度地减少需要处理的数据量。因此,图像的边缘提取是图像分割、图像识别、图像分析、机器人视觉等初级处理过程中非常重要的一个步骤[2]。
传统的边缘检测算法,如Roberts算子、Sobel算子和Prewitt算子,几乎都是基于图像的梯度变化而构造出边缘检测算子的[3]。这些传统的边缘检测算子计算简单,但是对噪声敏感,定位精度低,所以边缘检测算法仍是图像处理问题中的一个“瓶颈”。鉴于这种现状,本文提出了一种基于数学形态学的图像边缘提取算法。
数学形态学是基于形态结构元素对几何形状和结构属性进行分析和描述的数学方法,也是一种建立在几何代数和集合论基础上,通过非线性叠加来描述图像的非线性的处理系统[4]。数学形态学的基本思路是,通过使用一定形态的结构元素去度量在目标图像区域中的可放性和填充方法的有效性,并提取更为本质的图像形态结构相关特性信息,进而达到对目标图像分析和识别的目的[5]。
数学形态学可以剔除目标图像中不相关的形态结构属性,而保留基本的本质的形态结构属性,达到简化目标图像数据的目的,从而使得它具有并行速度快、易于硬件实现的特点[6]。目前,数学形态学已经广泛应用于模式识别、机器视觉、显微图像分析、医学图像处理、计算方法与数据处理等领域,在解决滤波降噪、图像增强、边缘检测、图像分割、特征提取、纹理分析、图像恢复与重建、图像压缩等图像处理问题中有着明显的优势[7]。
数学形态学最基本的形态转换包括膨胀和腐蚀[8],它们能实现许多的功能,如滤波降噪、对目标图像中独立的元素进行分割以及弥合目标图像中相邻的元素。数学形态学也能实现寻找目标图像中的明显区块的极大值区域或极小值区域,以及求出目标图像的梯度[9]。
膨胀(Dilation)的定义是:将具有一定形态的结构元素B平移距离a后得到新的形态相同的结构元素Ba,如果Ba击中了X,则记下这个a点,所有满足此条件的a点所组成的集合称为X被B膨胀的结果。用公式表示为:
腐蚀(Erosion)的定义是:将具有一定形态的结构元素B平移距离a后得到新的形态相同的结构元素Ba包含于X,则记下这个a点,所有满足此条件的a点所组成的集合称为X被B腐蚀的结果[10]。用公式表达为:
膨胀操作是计算局部的最大值,而腐蚀操作则是计算该区域像素的最小值,两运算是一对互为对偶的操作,即X被B腐蚀后的补集等于X的补集被B膨胀。膨胀是一种使边缘向外部拓展的过程,可以用来填补目标图像中小的凹洞,并将背景边缘转化成目标边缘,从而使目标增大而背景缩小。腐蚀是一种去除不相关的边缘点而使边缘向内收缩的过程,能够消除目标图像中细小的凸起,使得目标缩小而背景增大。通常情况下,最基本的腐蚀和膨胀两种操作在针对布尔图像和图像掩码的处理时已能满足要求。然而,在处理灰度或彩色图像时,往往需要一些额外的操作。于是,基于膨胀和腐蚀这两种基本形态转换能构造出多种数学形态学运算簇,而开运算和闭运算是这个运算簇中最基本的两个操作[11]。
开运算(Open)定义为先将图像腐蚀然后再膨胀,即OPEN(X)=D(E(X))。开运算能够去除孤立的小点、毛刺和小桥(即连通两块区域的小点),实现在纤细处分割大块区域和平滑大块区域边缘的作用,而总的位置和形状不变。闭运算(Close)定义为先将图像膨胀然后再腐蚀,即 CLOSE(X)=E(D(X))[12]。闭运算能够填平物体内细小的孔洞,实现缝合细小的裂缝达到连接相互邻近的物体和平滑边缘的目的,而总的位置和形状不变。开运算和闭运算也是一对互为对偶的操作。
任何数学形态学算法都由两个基本问题组成:数学形态学运算和结构元素的选取[13]。数学形态学的定义使得数学形态学的运算规则已经确定不变,所以形态结构元素的选取决定了数学形态学算法的目的和效果。因此,结构元素的确定和优化便成为了研究数学形态学的热点和难点。
形态结构元素的选取问题可以分为两个方面:结构元素的尺寸和形状。选择的结构元素的尺寸过小时,对于较大区域的凸起开运算不能有效地消除,而对于边缘断裂较大的情况闭运算不能有效地弥合;选择的结构元素的尺寸过大时,开运算会过度消除图像原本为边缘点的像素而造成假断裂,闭运算会过度弥合图像原本断裂的像素点而造成干扰信息。所以,采用单一尺寸的结构元素容易导致在对目标图像进行边缘提取时定位不够准确,去噪效果不理想。另外,由于图像的边缘存在着某种约束关系,而图像的噪声是随机生成的,在利用结构元素对目标图像进行度量时,在图像的边缘点附近总能够找到一个几何形态类似的边缘点[14],所以,采用单一形态的结构元素在对目标图像进行边缘提取时不能够有效地保留图像边缘的细节信息。
针对采用单一尺寸或单一形态的结构元素进行数学形态学边缘提取时的不足之处,本文提出了一种基于多尺度多结构数学形态学的图像边缘提取方法,即选取3种不同尺寸且关于中心对称的多结构元素对目标图像进行边缘提取处理。首先用两种较大尺寸的结构元素B1和B2对目标图像进行开运算和闭运算处理,其次用另一种较小尺寸的结构元素B3对目标图像进行膨胀和腐蚀处理。用公式表示为:
根据上述算法,在CPU为Intel i5 2.4G、操作系统为Win7旗舰版的PC上,用配置了OpenCV 2.4.4的Visual Studio 2010分别对Lena(512×512像素)灰度图和加入均方差为30的高斯噪声图像进行边缘提取实验。并且,为说明本文中基于多尺度多结构数学形态学的边缘提取算法的效果,将其与Canny边缘提取算法进行仿真对比。
本文的边缘提取算法实验步骤如下:
(1)输入Lena灰度图,并加入均方差为30的高斯噪声。
(2)对加入高斯噪声后的图像进行开运算和闭运算操作,达到滤波降噪的目的。其中,开运算和闭运算的结构元素分别采用3×3和5×5的菱形结构元素。
(3)利用公式(3)对经过滤波降噪处理后的图像进行边缘提取。其中,B1和B2分别为3×3和5×5的菱形结构元素,B3是1×1的正方形结构元素。
实验结果如图1、图2所示。
通过对比实验结果可以看出:图1中Canny算法提取的边缘较为连续,本文算法边缘更为清晰突出,细节明显且丰富;图2中Canny算法受到噪声严重干扰而几乎无法检测出图像边缘,本文算法对高斯噪声有明显的抑制作用。
本文针对传统的边缘提取算法抗噪能力差和定位精度低的特点,采用了数学形态学的方法对目标图像进行边缘提取,并且分析了不同尺寸和不同形状的结构元素对边缘提取效果的影响,改进了传统单一尺寸或单一形状结构元素的数学形态学处理算法,提出了多尺度多结构数学形态学的边缘提取方法。通过对比实验验证,本文算法提取的边缘更明显、更平滑、细节更丰富,并且具有很好的抗噪性。但是,本文算法复杂度较高,相较Canny算法处理时间长,边缘较宽需要进行细化处理。
图1 对未加噪声的Lena图像边缘提取结果
图2 对加入高斯噪声的Lena图像边缘提取结果
[1]罗山.基于改进数学形态学的含噪图像边缘检测[J].攀枝花学院学报,2013,30(4):121-124.
[2]李峰.基于数学形态学的图像边缘检测及其在虹膜定位中的应用研究[D].长沙:中南大学,2009:5-10.
[3]肖大雪.浅析数学形态学在图像处理中的应用[J].科技广场,2013(5):10-19.
[4]朱培逸,刘红晴.基于数学形态学图像分割算法在水果分级中的应用[J].科学技术与工程,2013,34(13):10375-10379.
[5]张翔宇,杨玉孝.C_V模型和数学形态学的红外图像处理方法[J].激光与红外,2014,44(1):30-34.
[6]俞哲.钢珠瑕疵检测算法的研究及FPGA实现[D].上海:复旦大学,2010:1-12.
[7]王慧锋,战桂礼,罗晓明.基于数学形态学的边缘检测算法研究与应用[J].计算机工程与应用,2009,45(9):223-226.
[8]程成.基于电磁扫描的高密度电路板故障器件检测技术[D].西安:西安电子科技大学,2011:5-15.
[9]Gary Bradski,Adrian Kaebler.学习 OpenCV[M].于仕琪,刘瑞祯,译.北京:清华大学出版社,2009:134-142.
[10]冯颖凌,王宏玉.数学形态学基础及研究方向的探讨[J].内江科技,2008(12):37,66.
[11]龚俊亮.红外弱小多目标实时检测跟踪技术研究[D].长春:中国科学院研究生院,2013:5-18.
[12]何家英,王家忠,孙晨霞,等.基于数学形态学和Canny算子的边缘提取方法[J].计算机应用,2008,28(2):477-478.
[13]张黄群,于盛林,白银刚.形态学图像去噪中结构元素选取原则[J].数据采集与处理,2008,23(增刊):81-83.
[14]王光玲.基于运动目标检测与跟踪视频测速算法的研究[D].太原:太原理工大学,2009:1-25.