王 爽 黄友锐 李 冬
摘 要:全面分析了Pal.King模糊边缘检测算法的缺陷,提出了一种新的快速模糊边缘检测算法。该算法简化了Pal.King复杂的变换和逆变换,并采用了新的增强算子,针对Pal.King算法中对隶属度阈值的设置存在的不足,提出了利用粒子群算法确定最佳隶属度阈值的方法。仿真表明,该算法检测的边缘细、连贯,适用面广,很有实用价值。
关键词:边缘检测;模糊增强;隶属度函数;阈值分割;
中图分类号:TP391文献标识码:A文章编号:1672-1098(2008)01-0049-05
收稿日期:2007-11-22
作者简介:王爽(1984-),女,安徽亳州人,在读硕士,研究方向为数字图像处理。
An Improved Fast Image Fuzzy Edge Detection Algorithm
Based onOptimal Threshold Value
WANG Shuang,HUANG You-rui,LI Dong
(School of Electrical and Information Engineering, Anhui University of Science and Technology, Huainan Anhui 232001, China)
Abstract: On the basis of comprehensive analysis of limitations of Pal.King algorithm, a new improved algorithm of fast edge detection is presented. The algorithm proposed in the paper simplifies complex transformation calculation in Pal.King algorithm, and a new enhancement operator is adopted. In order to overcome disadvantages of Pal.King algorithm in subjection degree threshold value setting, a new method of subjection degree threshold optimal value determination based on PSO algorithm was proposed. Emulational experiment shows that the algorithm is an universal and practical image processing algorithm, by which image edge can be gently and continuously detected.
Key words:edge detection; fuzzy enhancement; subjection function; threshold value segmentation
边缘检测是图像分析和计算机视觉中最重要的内容之一。人们在这方面做了大量的研究工作,并提出了很多算法。但是这些边缘检测算法都是基于如下前提假设:即边缘是图像中灰度发生突变的点的集合。实际上灰度突变的特点是边缘和噪声的共同性质,所以从这个前提假设出发的所有边缘检测算法都存在去除噪声和保持边缘细节的折中问题,其实,正是这个问题困惑了所有的边缘检测算法。直到80年代中期,文献[1]从图像所具有的不确定性是由模糊性引起的观点出发,提出了模糊边缘检测算法(简称Pal算法),并在医疗图像处理中获得了良好的应用,使这个问题在一定程度上得到了解决。但是此算法仍然存在不少缺陷,本文在系统分析此算法不足的基础上,提出了一种新的基于阈值的快速检测算法。仿真结果表明,新算法是行之有效的。
1 Pal.King模糊边缘检测算法
图像边缘检测模糊算法的具体做法是:首先将图像从空间域映射到模糊特征域,即一个模糊矩阵。把一幅具有玐﹎ax个灰度级的玀×N元图像表示成一个模糊集,集内的每一个元素均具有相对于某个特定灰度级的隶属函数,从而将待处理的图像映射为一个模糊矩阵X:X=∪Mm=1∪Nn=1u﹎n/X﹎n,其中u﹎n/X﹎n表示图像像素(m,n)的灰度级相对于某个特定灰度级别X﹎n的隶属度,通常取X﹎n为最大灰度级X﹎ax。然后定义隶属函数如下:玼﹎n=G(x﹎n)=(1+X﹎ax-x﹎n狥玠)-F璭。式中:F玠和F玡分别是倒数型和指数型模糊因子。这样就将待处理图像映射成了模糊隶属度矩阵,接着在模糊空间中采用如下非线性函数T璻变换:u′﹎n=T璻(u﹎n)=T1(T﹔-1(u﹎n))。其中
T1(u﹎n)=2(u﹎n)2 0<u﹎n<0.5
1-2(1-u﹎n)2 0.5≤u﹎n≤1
对图像做模糊增强处理,增强了边缘两侧像素灰度的对比度;然后再利用G-1П浠唤增强后的图像由模糊空间变回数据空间。最后,提取边缘,使用“Min”或“Max”算子[2]。定义图像边缘为E┆玠ge=[f*(x,y)]㎝×N,其中f*(x,y)=|f ′(x,y)-
玀in(i,j)∈ξ{f ′(i,j)}|或者f*(x,y)=
|玀ax(i,j)∈ξ{f ′(i,j)}-f ′(x,y)|而ξ=
{(i,j)|d((i,j),(x,y))≤2}。
由于图像边缘的不确定性往往是模糊性,因此该算法明显优于传统边缘检测算法,并在医学图像处理中得到了广泛的应用。但是Pal算法仍然存在以下缺陷:
(1) 将模糊矩阵的元玼﹎n/X﹎n定义为象素(m,n)灰度级X﹎n相对于最大灰度级X┆玬ax的隶属度,这样的硬性处理必然使图像中一部分本应增强的灰度级没有被增强,不应增强的灰度级却得到了很大增强,影响了下一步的边缘检测效果;
(2) 算法在将图像由灰度数据空间转换为模糊空间及其逆变换时,采用复杂的幂函数作为模糊隶属函数,存在运算量大,耗时多的缺点;
(3) 玊璻变换时,将原图中相当多的低灰度值硬性置为0,损失了低灰度值边缘信息,也使边缘检测质量受到了影响;
(4) 玊璻变换中u璫选择为0.5不能满足不同类型图像边缘检测的要求,使用该算法在对不同图像进行边缘检测时效果存在很大差异;
(5) 该算法使用“Min”或“Max”算子,在边缘两侧对比度比较弱的情况下,检测出的边缘强度也相对比较弱,不便于边缘连接,特征提取与图像理解等后期处理。
2 改进的模糊边缘检测算法
针对Pal算法的不足,本文先求出背景和目标的阈值,然后分区域定义模糊矩阵的元,再对图像进行模糊增强,最后提取边缘。
2.1 选择最佳分割阈值
最大类间方差法以图像的直方图为依据,以目标和背景的类间方差最大为阈值选取准则,是一种很好的分割方法,在很多情况下都能取得很好的阈值。
设给定的图像具有獿级(本文取L=255)灰度值,阈值为t,t将图像划分为目标(A)和背景(B)两类,p璱为灰度i出现的概率,目标部分的概率ω瑼(t)=∑ti=0p璱,背景部分的概率ω瑽(t)=∑L-1i=t+1p璱,目标部分的均值u瑼(t)=∑ti=0ip璱/ω瑼,背景部分的均值u瑽(t)=∑L-1i=t+1ip璱/ω瑽。两组间的方差公式为d(t)=ω瑼(t)ω瑽(t)(u瑼(t)-u瑽(t))2。最佳阈值T使得方差取最大值,即T=獳rg玬ax0<t<L猟(t)。
粒子群优化算法是一种进化计算算法[3]。这种算法源于对鸟群捕食的行为研究。粒子群算法中每个粒子就是解空间中的一个解,它根据粒子自己的飞行经验和同伴的飞行经验来调整自己的飞行。每个粒子在飞行过程中所经历的最好位置,就是粒子本身找到的最优解,叫做个体极值(pbest)。整个群体所经历的最好位置,就是整个群体目前找到的最优解,叫做全局极值(gbest)。 实际操作中通过由优化问题所决定的适应度函数值来评价粒子的“好坏”程度, 每个粒子都可以通过上述两个极值不断更新自己, 从而产生新一代群体。 粒子群的优势在于简单、易实现且参数较少, 现已被应用于函数优化、神经网络训练、模糊系统控制以及其他应用领域。
在粒子群算法中,每个粒子可以看作空间中的一个点。如果粒子的群体规模为玀,则第i(i=1,2,…,M)个粒子的位置可表示为X璱,它所经历过的“最好”位置记为pbest[i],速度用V璱表示,群体中“最好”粒子的位置的索引号用g表示,那么粒子玦将根据下面的公式来更新自己的速度和位置。
V璱=ω×V璱+c1×玆and()×(玴best[i]-X璱)+
c2×玶and()×(玴best[g]-X璱)(1)
X璱=X璱+V璱(2)
其中,玞1,c2为常数,称为学习因子;Rand()和rand()是[0,1]上的随机数;ω为惯性权重。c1,c2可视为加速度常量:c1反映了微粒飞行过程中所记忆的最好位置对微粒飞行速度的影响,称为“认知系数”;c2反映了整个微粒群所记忆的最好位置(gbest)对微粒飞行速度的影响,称为“社会学习系数”。大量实验证明,玞1与c2之和最好接近4,通常取c1≈c2=2.05。
由式(1)和式(2)可知,ω越大,微粒的飞行速度越大,微粒将以较大的步长进行全局探测;ω越小,微粒的速度步长越小,微粒将趋近于进行精细的局部搜索。实验发现,当ω∈[0.9,1.2]时,算法具有较理想的搜索性能。所以,在搜索过程中可以对ω进行动态调整:Е=ω┆玬ax-ω┆玬ax-ω┆玬in玦ter┆玬ax×玦terАU庋可以保证在算法开始时,各微粒能以较大的速度步长在全局范围内探测到较好的种子;在搜索后期,较小的ω值保证微粒在极点周围做精细的搜索,从而使算法有较大的几率以一定精度收敛于全局最优值。
群体规模玀越大,算法的寻优能力越强,但计算量越大。本文中选取M=20。另外,粒子在不断根据速度调整自己的位置时,还要受到最大速度V┆玬ax的限制,当V璱超过V┆玬ax时被限定为V┆玬ax。
由于粒子群算法寻找的是全局最小值,而在本文所应用的阈值选择方法为最大化玠(t),所以将适应度函数定义为fit=-d(t)=-ω瑼(t)ω瑽(t)(u瑼(t)-u瑽(t))2。
(1) 初始化所有的粒子(群体规模为玀)。在允许的范围内[0,255]随即设置粒子的初始位置和速度:每个粒子的pbest设为初始位置,pbest中的最好值设为gbest。
(2) 评价每个粒子的适应值。将位置取整,计算每个粒子的目标函数,如果优于pbest,则pbest被当前位置更换;如果所有粒子的pbest中有优于gbest的,则重新设置pbest的索引号。
(3) 根据式(1)和式(2)调整粒子的速度和位置,检查速度和位置是否在允许范围之内,如果不在,将二者调整到允许范围之内。
(4) 检查终止条件,如果达到最大迭代次数或者最优解停滞不再变化,就终止迭代,否则回到(2)。
通过基于粒子群算法的最大类间方差法获得了最佳阈值玊, 并记录下来取得最佳阈值T时的u瑼(T)和u(T)。
2.2 重新定义隶属度函数
u﹎n=x﹎n猉璗x﹎n≤X璗
(X┆玬ax-x﹎n)(X┆玬ax-X璗)x﹎n>X璗
式中:玐璗为阈值,取值为T;x﹎n为原始数据矩阵的元素。
在定义模糊域矩阵的元素时,与Pal算法不同的是,本算法分区域将玼﹎n/X﹎n表示图像像素(m,n)灰度级x﹎n相对于灰度阈值X㏕和最大灰度值X﹎ax的隶属度,这种在图像的低灰度区和高灰度区分别定义模糊矩阵元的方法,对图像的低灰度区域的信息损失小,可使后续的模糊增强达到较好的效果。
2.3 图像进行模糊增强
模糊运算的目的是以特定阈值为界限,对低灰度区域进行衰减弱化运算,对高灰度区域进行增强,以此使得图像各个区域之间的层次比较清楚,而且使得边缘两边的灰度进行对比增强,其提取的边缘可以更细,更准确。
模糊增强(弱化)阈值玼璫又称渡越点,u璫的作用可增强高灰度区域,衰减低灰度区域,增强图像的对比度。u璫的取值可通过u瑼(T)和u瑽(T)的模糊值处理后得到。对于阈值T分成的两类图像u璫可取值为u瑼(T)/X璗或者(X┆玬ax-u瑽(T))/(X┆玬ax-X璗)。
在模糊空间对图像进行增强:在图像的模糊特征平面上对玼﹎n进行非线性变换,其结果是增强大于uヽ的u﹎n值,衰减小于uヽ的u﹎n值,增强算子为u′﹎n=T璻(u﹎n)=T1(T﹔-1(u﹎n))。 其中 T1(u﹎n)= 12{玸in[π(u﹎n-u璫)]+1}。
2.4 逆变换
采用如下公式进行逆变换,将模糊增强后的图像从模糊空间变回数据空间。
x′﹎n=G-1(u′﹎n)=u′﹎n猉璗
x﹎n≤X璗
X┆玬ax-u′﹎n(X┆玬ax-X璗)
x﹎n>X璗
得到了增强后的图像,并采用3×3的中值滤波器对增强结果进行平滑运算。
2.5 提取边缘
提取图像边缘的时候, 单纯的使用“Min”或“Max”算子, 使得检测出的边缘强度较弱, 边缘信息不清晰, 不利于后期处理。 因此将两个算子结合使用,并取得了满意的效果。边缘检测算子为:玣*(x,y)=|玀ax(i,j)∈ξ{f ′(i,j)}-1/2×(玀in(i,j)∈ξ{f ′(i,j)}+f(x,y))|或f*(x,y)=|1/2×(玀ax(i,j)∈ξ{f′(i,j)}+f(x,y))-玀in(i,j)∈ξ{f ′(i,j)}|。其中ξ={(i,j)|d((i,j),(x,y))≤2}。
3 仿真结果及结论
采用Rice、“鸟巢”和Cameraman图像进行仿真实验,并将实验结果同Sobel算子作用结果做比较(见图1~图3)。a Rice原始图像b Sobel算子检测c 本文算法检测
图1 Rice图像检测结果比较
a “鸟巢”原始图像b Sobel算子检测c 本文算法检测
图2 “鸟巢”图像检测结果比较
a Cameraman原始图像b Sobel算子检测c 本文算法检测
图3 Cameraman图像检测结果比较
由仿真结果可以看出,本文使用的算法提取的边缘图,定位准确、清晰、细化,效果明显高于经典的Sobel算子提取结果。
另外, 仿真结果表明, 迭代次数玶的选择并非越大越好。 r取1时, 边缘不够清晰, 对比度不够; r取大于等于4时,容易造成边缘丢失。文中实验都采用r等于3作为增强操作的迭代次数。
4 结束语
本文提出了一种采用阈值改进的快速模糊边缘检测算法。修正了Pal算法中的隶属度函数,并采用了新的增强算子,特别是在阈值选取过程中针对不同的图像采用粒子群算法优化得到不同的阈值,从而确定玼璫的取值,改进了边缘检测效果。仿真结果表明:拟定算法比Pal算法效率高出近10倍,大大减少了运算量。另外,只需简单修改本文算法的第二步和第四步就可以推广到多阈值情况。
参考文献:
[1] PAL S K,KING R A.On edge detection of X-ray images using fuzzy sets [J].IEEE Trans Patt Analand Machine Intell.1983,5(1):69-77.
[2] NAKAGOWA,ROSENFELD.A note on the use of local min and max operations in digital picture processing[J].IEEE Trans Syst Man Cybern,1978,8(8):632-635.
[3] KENNEDY J,EBERHART R.Particle swarm optimization[C]//Proc IEEE Int Conf on Neural Networks.Perth,1995,1 942-1 948.
[4] PAL S K,KING R A.Image enhancement using smoothing with fuzzy sets[J].IEEE Trans on System,Man,and Cybernetics.1981,SMC-11(7):494-501.
[5] PAL N R,PAL S K.A review on image segmentation techniques [J]. Pattern Recognition. 1993, 26(9):1 277-1 294.
[6] 王凌.智能优化算法及其应用[M].北京:清华大学出版社,2001.
[7] 耿彦峰,马钺.快速模糊边缘检测算法[J].计算机工程.2002,28(10):126-128.
[8] 田氵云,王毅,郝重阳,等.基于线性广义模糊算子图像快速增强算法[J].第四军医大学学报,2006,27(1):83-85.
(责任编辑:何学华)