APP下载

基于Canny算子的二维最大熵阈值分割算法

2018-07-05允,

上海电机学院学报 2018年3期
关键词:算子灰度边缘

张 允, 焦 斌

(上海电机学院 电气学院,上海 201306)

图像分割[1],广义来说,是根据图像的灰度、颜色、纹理等某些特征或特征集合,利用相似性准则对图像像素进行分组聚类,把图像平面划分成若干个具有某些一致性的不重叠区域。这使得不同区域间像素的特征存在突变,即具有非一致性,而同一区域中的像素特征是类似的,即具有一致性。目前图像分割的方法[2]主要包括:基于阈值的分割、基于图论的分割、基于区域的分割、基于能量泛函的分割和基于边缘的分割等。

阈值法[3]的基本思想是先运用图像的灰度特征来计算一个或多个灰度阈值,然后将图像中每个像素的灰度值与阈值作比较,最后根据比较结果将像素分到合适的类别中。阈值处理技术,包括全局阈值、自适应阈值和最佳阈值等。阈值分割算法存在计算时间长、占用内存大等问题,Kapur等[4]最早对灰度图像进行阈值分割采用了一维最大熵,但是该算法无法有效克服图像噪声的影响,Brink等[5]运用图像的灰度信息和局部空间信息,提出二维熵阈值分割,得出的图像结果较好,但是耗时较长。许多学者提出了改进算法,王文豪等[6]运用自适应中值滤波和改进的最大类间方差法(Otsu)算法,生成新的高、低阈值。王诗宇等[7]利用统计原理对图像灰度值数据进行分析,提出改进Canny算子。于洋等[8]利用当前帧图像的灰度级和当前帧图像像素的邻域灰度级构成二元组,结合自适应粒子群集算法,估计出图像的最佳阈值。王福忠等[9]提出使用中值滤波得到掩膜图像,再用所得的图像与原始图像做差得到一个区域,得出一个合适的阈值。刘翔[10]利用改进的萤火虫的算法,选取最优值,降低了多阈值Otsu算法的时间。马敬奇等[11]提出一种结合Canny算子和改进型Hough变换的边缘定位方法。张晓丽[12]对差分进化算法作了改进,提出了改进二维最大熵图像分割方法,该方法在执行时间与收敛性方面均得到较理想的分割效果。Wang[13]提出一种改进的基于粒子群优化算法的二维最大熵阈值分割方法,用于解决二维最大熵阈值分割可能导致的过分割问题。Dhieb[14]等在求解二维最大熵问题的过程中,成功地实现了粒子群优化算法,改进了收敛性,更好地保证了最优解的可重复性。本文针对复杂图像分割时,存在计算量较大、用时过长等问题,提出基于Canny算子的二维最大熵阈值分割算法,通过实验与二维最大熵阈值分割算法对比,结果表明,该算法具有一定的优越性。

1 Canny算子边缘检测

采用一阶导数局部极值法对边缘进行检测,因为在边缘处,一阶导数具有极值点。一阶导数的局部极大值与图像边缘相对应,然而噪声信号很容易影响到图像的弱边缘的检测。Canny算子能很好的解决这种弊端[15],它是一种双阈值检测法,对色带的强边缘与弱边缘的检测有良好的效果。

设原始输入图像为f(x,y),首先用高斯函数作平滑运算,即平滑后的g(x,y)的梯度为

(1)

由卷积运算特性有

(2)

式中:G(x,y)为高斯函数。

采用高斯函数的图像平滑处理,会使原图像边缘模糊化及宽度增加,在这引入非极大值点(Non-Maxima Suppression, NMS)对模糊边缘进行锐化。NMS法能够使边缘变细,主要通过比较边缘邻接像素的梯度幅值,将梯度幅值小的点去掉,也就是梯度幅值的非极大值点被去除[16],这样就可得到较细的边缘。

由于噪声与细纹的存在,图像上存在假边缘,可通过双阈值算法去除。双阈值算法选定t1和t2作为双阈值且t2≈2t1,g1(i,j)与g2(i,j)这两个双阈值边缘图像就可获得。高阈值法得到的g2(i,j)边缘图像具有间断的轮廓,但是它的优点就是含有的假边缘较少。然后对中间断的边缘轮廓进行处理,采用双阈值算法对间断的边缘进行连接,当到达轮廓的端点时,该算法就会在g1(i,j)的邻点位置上寻找连接点。通过此过程,算法不断地将g1(i,j)中的边缘进行收集,直到g2(i,j)中间断的边缘连接起来。

Canny算子边缘检测步骤如图1所示。

2 二维最大熵阈值分割

图1 Canny算子边缘检测步骤图

首先引入熵的概念即二维最大阈值法的分割原理。将图像分割后,对所得熵的和进行计算,再对熵的和进行判断,这样的话就能得到理想的最佳阈值。以二维灰度函数来表示所得图像,像素点设为N×N,像素点的灰度值分为L个等级。首先对原始图像的区域灰度求均值。在实际计算时,选定目标像素与相邻像素为模板,以数据(i,j)表示对应坐标的像素点灰度值与其区域灰度均值,设ni,j是点灰度为i,区域灰度为j的像素点个数,pi,j为概率密度,则有

(3)

如图2所示,横坐标i表示点灰度值,纵坐标j表示区域灰度均值,由此建立图像的二维灰度分布图。

图2 图像二维灰度分布图

(s,t)处表示分割的阈值,如图2二维灰度分布图就可以将其分为4个区域,即A,B,C,D这4个区域。其中,A区代表目标区域,B区为背景像素的分布区域,C区代表边界像素点分布区域,D区为噪声信号分布区域,A区与B区是我们所要分割的对象。为了达到目标区域与背景区域理想的分割效果,对其采用二维最大阈值法,得到最佳阈值。分别用A区和B区的概率进行归一化处理,熵值具有可加性,则A区和B区的概率为

(4)

对离散二维熵定义为

i=1,2,…,s;j=1,2,…,t

(5)

则就可得到A区的二维熵

lgPA+HA/PA

(6)

又因为

(7)

所以B区的二维熵为

lgPB+HB/PB

(8)

忽略阈值分割中的噪声和边缘,令C区和D区的pi,j≈0,则C区:i=s+1,s+2,…,L;j=1,2,…,t;D区:i=1,2,…,s;j=t+1,t+2,…,L。可得

(9)

HB=lg(1-PA)+(HL-HA)/(1-PA)

(10)

熵的判别函数定义为

φ(s,t)=H(A)+H(B)=HA/PA+lgPA+

(HL-HA)/(1-PA)+lg(1-PA)=lg[PA(1-

PA)]+HA/PA+(HL-HA)/(1-PA)

(11)

对此,选取的最佳阈值满足

(12)

3 基于Canny算子的二维熵分割算法

在二维最大熵阈值分割算法中,计算HA(s,t)和HB(s,t)是主要部分,对于每一个(s,t),都要重新计算Ps t(s,t)和Hs t(s,t),会使计算复杂,耗时过长,而Ps t(s,t+1)和Hs t(s,t+1)可以利用以下递推公式[17]

(13)

式中:

Hs t(s,t)+Hs(t+1)

(14)

对于固定的s,当t取1-L时,H(s,t)不需要重复计算了,但s从1取到L时,Ps(t+1)和Hs(t+1)存在重复计算。因此可以导出

Ps(t+1)+ps+1,p+1=

Hs(t+1)-ps+1,t+1lgps+1,t+1

(15)

运用Canny算子对图像进行边缘检测,将得到的最优阈值代入到改进的二维最大熵算法中,根据图像的边缘信息,对图像的背景部分进行整体阈值分割,分割效果不是很理想的部分进行局部分割,把整体阈值分割与局部分割结合起来。首先利用二维最大熵阈值分割算法得到图像分割阈值(s,t)。然后运用Canny算子对图像进行边缘检测,对图像进行噪声抑制,再对边缘图像分别取两次不同阈值t1和t2,得到两个新的分割图像,图像A和图像B,图像B的噪声小、阈值较高,但丢失了一些有效的边缘信息,而图像A的噪声较大、阈值较低,图像有效信息较多。因此,在图像B的基础上,利用图像A补充图像B的边缘信息。最后保持s不变,利用求得的阈值t2对图像进行分割,得出最终的图像。

4 实验结果

运用Matlab软件进行仿真实验,结果如图3~6所示。

由此可知,采用Canny算子对图像进行分割,灰度图像效果十分明显,处理速度较快,但也丢失了一些有用的信息。利用二维最大熵阈值对图像分割,处理速度较慢。而运用改进后的二维最大熵阈值分割方法得到的图像效果最好,图像轮廓完好,细节信息也比较明显,且用时较少,图像分割效果较显著。

图4 二维最大熵阈值分割图像用时(用时23.687 s)

图5 Canny算子边缘检测图像用时(用时0.879 s)

图6 改进算法分割图像用时(用时3.686 s)

5 结 语

图像分割[18]是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。为解决传统图像分割中计算复杂、耗时较长、图像细节信息不完整和分割精度不高等问题,提出基于Canny算子的二维最大熵阈值分割算法。通过实验验证,本文算法具有一定的优势,有效地解决了问题。因此,基于Canny算子的二维最大熵阈值分割算法确实可行。

[1] 单春芝.基于形态学策略的高分辨率遥感影像道路提取方法研究[D].山东:山东科技大学,2011.

[2] 孙国强.基于计算机图像处理的人眼球变化识别系统[D].沈阳:沈阳理工大学,2008.

[3] 戴珊,李广军.结合近邻传播聚类的自适应图像分割[J].计算机科学,2016,43(6A):191-193.

[4] KAPUR J N,SAHOO P K., WONG A K C. A new method for gray-level picture thresholding using the entropy of the histogram [J].Computer Vision,Graphics,and Image processing,1985,29(3):273-285.

[5] BRINK A D. Thresholding of digital images using two-dimensional entropies [J]. Pattern Recognition,1992,25(8):803-808.

[6] 王文豪,姜明新,赵文东.基于Canny算子改进的边缘检测算法[J].中国科技论文,2017,12(8):910-915.

[7] 王诗宇,林浒,孙一兰,等.一种改进的Canny算子在机器人视觉系统中的应用[J].计算机系统应用,2017,26(3):144-149.

[8] 于洋,孔琳,虞闯.自适应粒子群集优化二维OSTU的图像阈值分割算法[J].电子测量与仪器学报,2017,31(6):827-832.

[9] 王福忠,尹凯凯.一种基于中值滤波的局部阈值分割算法[J].电子测量技术,2017,40(4):162-166.

[10] 刘翔. 多阈值OTSU快速算法的研究[D].吉林:吉林大学,2017.

[11] 马敬奇,卢亚,李柳琼,等.基于Canny算子和改进型Hough变换的边缘定位方法[J].自动化与信息工程,2017,38(3):32-36.

[12] 张晓丽.基于改进差分进化算法的二维最大熵图像分割[J].自动化技术与应用,2016,35(6):69-72,76.

[13] WANG F C. An Improved 2-D Maximum Entropy Threshold Segmentation Method Based on PSO[C]// 2nd International Congress on Image and Signal Processing. Tianjin, China :IEEE, 2009:1-5.

[14] DHIEB M, MASMOUDI S, MESSAOUD M B, et al. 2-D entropy image segmentation on thresholding based on particle swarm optimization (PSO)[C]// International Conference on Advanced Technologies for Signal and Image Processing. Sousse, Tunisia:IEEE, 2014:143-147.

[15] 赵连军.基于单目视觉的目标识别与定位研究[D].北京:中国科学院大学,2014.

[16] KODAMA A, NISHI TI. Petri net representation and reachability analysis of 0-1 integer linear programming problems[J]. Information Sciences,2017,400-401:157-172.

[17] ZHANG X M ,ZHANG A L,ZHENG Y B,et al. Improved two-dimensional maximum entropy image thresholding and its fast recursive realization[J].Computer Science,2011,44(4):278-286.

[18] 李冬.基于FPGA的数字图像处理的研究[D].安徽:安徽理工大学,2009.

猜你喜欢

算子灰度边缘
与由分数阶Laplace算子生成的热半群相关的微分变换算子的有界性
采用改进导重法的拓扑结构灰度单元过滤技术
拟微分算子在Hp(ω)上的有界性
Heisenberg群上与Schrödinger算子相关的Riesz变换在Hardy空间上的有界性
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
各向异性次Laplace算子和拟p-次Laplace算子的Picone恒等式及其应用
基于最大加权投影求解的彩色图像灰度化对比度保留算法
一张图看懂边缘计算
基于灰度线性建模的亚像素图像抖动量计算
在边缘寻找自我