APP下载

基于Canny算子图像边缘检测的改进方法

2014-04-29陈世文丘威房宜汕

计算机时代 2014年8期
关键词:边缘检测

陈世文 丘威 房宜汕

摘 要: 针对传统Canny算子在边缘检测中的不足,提出一种基于Canny算子图像边缘检测的改进方法。传统Canny算子的高低阈值一般是人为地设定固定值,这容易造成虚假边缘。对此,利用最小交叉熵计算Canny算子的高低阈值,得到理想的边缘后,利用数学形态学对结果进行后处理。实验结果表明,改进后的算法具有自适应性,抑制噪声能力较强,有效地提高了边缘检测的鲁棒性。

关键词: 边缘检测; Canny算子; 数学形态学; 最小交叉熵

中图分类号:TP391 文献标志码:A 文章编号:1006-8228(2014)08-33-04

Improvement of edge detection algorithm based on Canny operators

Chen Shiwen, Qiu Wei, Fang Yishan

(department of computer, Jiaying University, Meizhou, Guangdong 514000, China)

Abstract: The traditional Canny edge detection algorithm has the defects of losing details of the edge. In this paper an improved Canny-based edge detection algorithm is proposed.High and low threshold are given as an fixed value in traditional Canny operator, which may cause false edge information when the image's all gray level is concentrated on one region. A desired threshold value is given based on minimum cross entropy, and the obtained edge will be handled by mathematical morphology. The experiment results indicate that the algorithm improves the effect of edge detection in the case of noise disturbance, and has a good robustness and also a strong self-adaptability.

Key words: edge detection; Canny operator; mathematic morphology; minimum cross entropy

0 引言

邊缘信息是图像中的一种基本特征,可以为图像分析和图像识别提供重要的信息,对图像边缘信息的研究是很有实际意义的。有着明显变化的像素灰度值两边表现为阶跃性边缘;灰度值处在从增加到减少的变化转折点表现为屋顶状边缘。传统的边缘检测算法有:Robert算子、Prewitt算子、Sobel算子、LOG算子、Laplacian算子、Kirsch算子等。这些算子的基本特点是计算简单、实现容易,但是由于边缘本身的复杂性,这些算子在抗噪性能方面效果不够理想。很多学者提出了改进的边缘检测方法[1-7]。

相对而言,Canny算子在边缘检测中具有较高的精度,因而得到了广泛的应用。但是Canny算子有自身的不足:高低阈值需要人为确定,高斯滤波参数选择困难,容易造成检测中出现大量虚假边缘。针对Canny算子的不足,本文提出一种融入最小交叉熵的边缘检测算法,利用最小交叉熵动态地计算图像的高低阈值,解决图像的灰度级集中在某一区域时的情况;提取图像边缘后再对结果用数学形态学方法进行后处理。通过实验对比了本文算法与传统Canny算法和文献[7]的算法的检测结果,结果表明,改进后的算法具有较强的自适应性和噪声抑制能力,能检测到更佳的图像边缘。

1 传统Canny算法

Canny算子在边缘检测中基于以下最优准则:(a)信噪比准则,即将非边缘点误判为边缘点或者将边缘点误判为非边缘点的概率要低;(b)定位精度准则,即检测出的边缘位置尽可能地接近真正边缘中心点;(c)单边响应准则,即单一边缘响应惟一,虚假边缘响应受到最大的抑制。

利用二维高斯函数构造滤波器,如⑴式:

计算二维滤波器模板的一阶偏导,得到两个一维滤波器,用标准卷积得到高斯平滑。其中σ是高斯函数的标准差,控制着平滑图像的程度。

图像平滑后其梯度幅值和方向一般通过2×2邻域内的一阶导数的有限差分来计算。在x方向和y方向的偏导数分别为Px(x,y)和Py(x,y),则图像的梯度幅值和梯度方向分别为:

对像素点的梯度幅值进行非极大值抑制,即判断像素点的梯度值在其八邻域内是否为最大值,如果是则是边缘,如果否则为零。

经过非极大值抑制后,Canny算子采用双阈值(高低阈值)方法检测图像边缘。

2 传统Canny算法的不足

如图1所示,给图1(a)加了0.01标准差的高斯噪声,由实验图可见传统的Canny算子检测效果不够好,对噪声的抑制能力较差。高斯滤波参数σ的选取很重要,若σ选取较大时,高斯平滑模板变大,频带窄,抗噪能力较强,但是容易造成图像的缓变边缘丢失及过度光滑;若σ选取较小时,频带较宽,边缘细节精度高,但是图像平滑作用较小,抗噪声能力较弱。

如图2所示,图2(a)为原始图,图2(b)为传统Canny检测结果,图3为硬币直方图。传统检测效果较差,原因是Canny算法采用确定的高低阈值,当图像的灰度级集中在某一区域时,直方图没有明显双峰,固定的高低阈值无法满足检测要求。高低阈值的选取很重要,高阈值关系到边缘检测的起始点,当高阈值Th较小时,检测到的边缘信息较多,但是虚假也随之增多;当高阈值Th较大时,抑制噪声能力增强,但是容易丢失实际边缘信息。低阈值Tl关系到边缘检测的中止点,Tl选择越小保留的边缘信息越多,随着Tl的增大,目标边缘信息不断减少,容易导致边缘的断裂。

3 最小交叉熵阈值法

假若一幅图像的尺寸为M×N,其灰度级为L,图像上某一像素点的灰度值表示为f(x,y)(1≤x≤M,1≤y≤N),计算每个像素点在其K×K邻域的平均灰度值,得到一幅平滑的图像g(x, y),其灰度级也为L。通常L取为255,K取为3,即8邻域模板。f(x,y)与g(x,y)组成二元组记为(i,j),设图像中灰度级为i邻域平均灰度级为j的像素点个数为r(i,j),定义二元组(i,j)在图像和其邻域平滑图像中出现的概率为:

定义二维直方图如图4所示,横坐标为图像像元的灰度值i,纵坐标为像元邻域平均灰灰值j,设阈值(S,T)(0≤S,T≤L-1)把二维直方图分割成A、B、C、D4个区域,区域A和B分别代表目标和背景,区域C和D分别代表边缘或噪声,由于边缘和噪声较少,一般认为远离对角线区域的C和D的分量近似为零。

图4 二维直方图区域划分

如图4,任意阈值向量(S,T)对图像进行分割,可以得到目标和背景2类区域,分别标记为Ca和Cb,则2类区域的先验概率分别表示为:

假设阈值为(S,T)时,目标和背景的类内均值分别表示为up(S,T)和uQ(S,T),其分别代表分割后目标和背景的灰度,则:

其中:

(10)

定义二维交叉熵函数为[5]:

最小交叉熵对应的最佳阈值向量就是:

(12)

最小交叉熵阈值法是图像分割中计算阈值的方法,考虑了图像中周围像素的相关性,可以动态地计算图像的分割阈值,用于计算Canny算子的高低阈值,满足复杂图像边缘检测的阈值要求。

4 滤波参数选取

对图像进行平滑滤波有利于抑制噪声,提高信噪比。高斯滤波器中高斯参数σ决定着滤波器抑制噪声的能力。高斯参数σ偏大,抑制噪声能力强,但是可能会把目标边缘细节信息滤除掉,若高斯参数σ偏小,又容易出现虚假边缘。这里,采用如下式子计算σ[6]:

(13)

(14)

Emin=min(E) (15)

σ=E/Emin (16)

其中,N为窗口大小,M、E分别为图像的均值和方差,Emin为一幅图像中的最小方差。当σ值较大时,改为:σ=kE/Emin,其中k=1/M,即为窗口内均值的倒数。采用方差计算σ,原因是方差能较好表征窗口内的像素变化特点,通常方差小的为非边缘点或者是被噪声污染的小区域。

5 数学形态学

假设A为图像集合,B为结构元素,数学形态学运算是用B对A进行操作。其中结构元素本身也是一个图像集合。对每个结构元素,指定一个原点,它是结构元素参与形态学运算的参考点。数学形态学有两种基本的变换,即腐蚀和膨胀,形态学其他运算可以由这两种运算复合而成。下面以二值形态学理论介绍腐蚀与膨胀。

膨胀的算符为,A用B来膨胀写作AB,其定义为:

(17)

式(17)表明用B膨胀A的过程,先对B做关于原点的映射,再将其映像平移X,这里A与B映像的交集不为空集。

腐蚀的算符为Θ,A用B来腐蚀写作AΘB,其定义为:

(18)

式(18)表明A用B腐蚀的结果是所有X的集合,其中B平移X后仍在A中。也就是说,用B来腐蚀A得到的集合是B完全包括在A中时B的原点位置的集合。

用改进的Canny算子提取图像边缘信息后,对结果进行数学形态学后处理,使边缘信息更加丰富。

6 实验结果及分析

在Matlab 7.1环境下,对三幅图像进行仿真实验,利用最小交叉熵算法计算高阈值Th,为了节省计算,Tl为高阈值的一半。实验一为直方图双峰比较明显的原始图,如图5所示;实验二为加了0.01标准差的高斯噪声的图像,如图6所示;实验三为直方图双峰不明显的图像,如图7所示(直方图如图3)。

实验一结果显示,当图像直方图双峰比较明显时,传统Canny算法检测的边缘信息丰富,但也有相当一部分虚假边缘,文献[7]方法大体检测出了边缘信息,但是在单车的后轮边缘信息丢失较严重,本文方法较好地检测出了目标边缘。实验二结果显示,当图像被噪声污染时,传统Canny算法检测效果不理想,抑制噪声能力较差;文献[7]抑制噪声效果不错,但仍有很多噪声点,检测非边缘信息;本文方法抑制噪声能力较好,仍然能够检测出目标的轮廓。实验三结果显示,当图像灰度级集中时,即直方图双峰不明显时,传统Canny算法出现大量虚假边缘,效果不理想,文献[9]对单峰的直方图的边缘检测效果亦不理想,本文方法虽然也丢失了一些边缘信息,但是大体上检测出了目标边缘,结果仍算满意。因此,本文方法相对具有一定优越性。

7 结束语

本文针对传统Canny算法在边缘检测中的不足,提出了一种基于Canny算子图像边缘检测的改进方法。本算法通过最小交叉熵来计算Canny的高低阈值,利用灰度值来计算高斯参数σ。检测出边缘轮廓后对结果进行数学形态学后处理。实验证明,本算法抑制噪声能力较强,对于灰度级集中在某一区域的图像亦能检测出大体轮廓,算法优于传统Canny算法,具有一定鲁棒性。

参考文献:

[1] Zhang Bin, He Saixian.Improved edge detection method based on

Canny algorithm[J]. Infrared Technology,2006.28(3):165-169

[2] Lei Zhai, Shouping Dong, Honglian Ma.Recent methods and

applications on image edge detection[C]. International Workshop on Education Technology and Training & International Workshop on Geo science and Remote Sensing,2008:332-335

[3] Chen Jie, Wang Zhen-hua, D0U Li-hua. Scale adaptive Canny

edge detection method[J]. Opto-Electronic Engineering,2008.35(2):79-84

[4] 黄剑玲,郑雪梅.一种改进的基于canny算子的圖像边缘提取算法[J].

计算机工程与应用,2008.44(25):170-172

[5] Li C H, Lee C K. Minimum cross entropy threshold[J].Pattern

Recognition,1993.26(4):617-625

[6] 薛丽霞,李涛,王佐成.一种自适应的Canny边缘检测算法[J].计算机

应用研究,2010.27(9):3588-3590

[7] 陈世文,刘越畅.一种基于最小交叉熵的canny边缘检测算法[J].电

视技术,2013.37(1):165-168

猜你喜欢

边缘检测
基于数学形态学的一种改进CO2焊熔池图像边缘检测算法
离散过程神经网络和CGA相融合的边缘检测
基于图像的物体尺寸测量算法研究
唐卡图像边缘提取
水下大坝裂缝图像分割方法研究 
基于多算法融合的多车牌定位方法研究
基于高精度星敏感器的星图降噪研究
基于灰度的图像边缘检测与匹配算法的研究
基于TMS320的跑道异物监测系统
基于边缘检测和色彩空间的混合车牌定位算法