一种改进的 Canny 边缘检测算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一种改进的 Canny 边缘检测算法
吉玲;杨亚;付珊珊;沙伟
【摘要】针对噪声对图像边缘检测的影响,为抑制虚假边缘,提出了一种改进的Canny边缘检测算法。

该算法首先采用分数阶差分方法来计算梯度,同时利用相邻像素的梯度及其梯度差两种信息来改进非极大值抑制过程,最后通过迭代计算的方法,自适应确定梯度图像的分割阈值。

试验结果表明,改进算法的抗噪声性能与传统的 Canny 边缘检测算法相比有明显优势,提高了图像边缘检测的准确度。

%An improved Canny edge detection algorithm is presented to inhibit the false edge on the basis of the effect of the noise on edge detection.The measure of fractional difference is adopted to calculate the grads.At the same time,the gradient and the difference of adjacent pixels are set to improve the process of nonmaximum suppression.Finally,the thresholds of the image are determined adaptively by iterative computations.The results demonstrate that the improved Canny algorithm is better than the original one in noise suppression and improves the accuracy of the edge detection.
【期刊名称】《微处理机》
【年(卷),期】2015(000)001
【总页数】4页(P40-43)
【关键词】边缘检测;Canny 算子;分数阶差分;非极大值抑制;自适应阈值
【作者】吉玲;杨亚;付珊珊;沙伟
【作者单位】河海大学物联网工程学院,常州213022;河海大学物联网工程学院,常州213022;河海大学物联网工程学院,常州213022;河海大学物联网工程学院,常州 213022
【正文语种】中文
【中图分类】TP391
边缘检测是图像特征提取的重要内容,图像边缘包含了物体的最基本特征,噪声则是影响图像边缘检测精度的重要因素。

因此,从受噪声影响的图像中有效提取出更为准确的边缘信息具有非常重要的意义。

Canny于1986年基于信噪比准则、定位精度准则和单边响应准则提出了Canny
边缘检测算法[1-2]。

其性能主要由三个参数决定:平滑图像所使用的高斯滤
波卷积核σ以及高、低阈值Th和Tl[3],但传统的Canny边缘检测过程中它们的取值都需要人工设定,存在较大不便[4]。

近年来,许多学者对Canny算法
进行了改进,主要集中在对非极大值抑制的改进和对高低阈值的选择上。

文献[5]利用邻域4个像素的梯度信息,采用插值方法来实现非极大值抑制;文献[6]利用最大类间方差法(0tsu算法)计算Canny算子的高门限值;文献[7]采用改
进的Otsu算法将对应像素分为三类,自动获取Canny算子的高低阈值。

据此,改进算法从梯度计算,非极大值抑制,阈值计算三方面同时进行改进。

经过对比,改进算法能够反映图像的主要轮廓特征,避免了过少的边缘信息所导致的信息缺失以及过多的边缘信息所导致的信息冗余情况的出现,在试验比较中取得了较好效果。

传统的Canny边缘检测算法在实际中得到了广泛运用,对灰度图像进行Canny边缘检测的基本流程框图如图1所示。

具体步骤为:
(1)用高斯滤波器对图像进行滤波平滑[8]
(2)对滤波后的图像,计算梯度的大小和方向
为了计算图像某像素的梯度信息,通常采用2×2邻域内的一阶偏导对图像进行x
方向和y方向的差分运算[9]:
这样就得到了该像素的梯度方向和幅值:
由于只利用了相邻像素的灰度信息,因此,这种方法对于噪声干扰比较敏感。

(3)对梯度图像进行非极大值抑制
为了更好地确定边缘,必须保留局部梯度最大的点,抑制非极大值。

如图2所示,中心像素点G(i,j)的梯度方向θ(i,j)可被映射为0,1,2,3这4个方向之一,如果其梯度方向属于第1方向且满足如下条件:
则判定该像素点为极大值,否则为非极大值。

(4)用双阈值算法检测和连接边缘
使用双阈值Th和Tl(Tl=0.4*Th)对梯度图像进行边缘检测和连接,若梯度幅值大于Th则判定为边缘,若梯度幅值小于Tl则判定为非边缘,梯度幅值介于Th和Tl之间的,再判断该像素的八邻域内是否存在高于Th的像素点,若存在,则判定该点为边缘点,否则判定为非边缘点[10]。

3.1 梯度幅值计算的改进
传统的Canny算子在计算梯度幅值时使用的是2×2邻域内的一阶有限差分方法,这种方法对噪声比较敏感,很容易检测出虚假边缘,丢失一些真实的边缘信息。

针对这种缺陷,采用文献[11]提出的分数阶差分方法来计算梯度幅值。

在图像梯度幅值的计算中,记v为分数阶差分阶数,M为滤波器长度,令:
则图像水平方向的差分为:
垂直方向的差分为:
梯度方向与幅值仍采用式(3)、(4)表示。

将公式(8)、(9)与公式(1)、(2)进行对比可知,分数阶差分方法利用了
该像素周围M个点的像素信息,其单一方向上的梯度值为其前后M点一阶差分的加权和[12],而常规梯度算法是分数阶差分的特殊形式。

这样可以有效降低噪
声干扰的影响,有利于提高边缘定位的准确度,提高信噪比。

3.2 非极大值抑制的改进
传统的非极大值抑制过程如式(5)所示,并没有考虑当前点自身的梯度大小以及梯度方向上相邻点梯度强度的差值情况。

当差值较小时,图像的梯度变化不明显。

此时,如果按照传统的Canny边缘检测算法检测图像边缘很容易导致虚假边缘的
出现。

为此,改进算法利用相邻像素的梯度及其梯度差两种信息来更好地判定局部最大值,据此设定梯度幅度阈值TA,TG。

TA决定中心像素点自身梯度的大小,TG决定中心像素点与梯度方向上相邻点的差值大小。

其中,TA取梯度幅值图像中所有像素点的灰度平均值,当中心像素点的梯度值不比梯度平均值大时,予以去除。

TG取梯度方向上相邻两点与中心像素点差值的平方差开方。

如图2所示,如果已判定
中心像素点梯度方向属于第1区,且满足如下条件:
或G(i,j)-G(i+1,j-1)>TG
则判定G(i,j)为局部最大值。

3.3 自适应的阈值计算方法
图像的梯度直方图描述的是图像边缘强度信息,直方图的尖峰对应于原图像的非边缘部分。

记Gmax为梯度直方图中拥有最多像素数的梯度值,称其为像素最值梯度;σmax为图像全部像素梯度相对于像素最值梯度Gmax的方差,称其为像素
最值梯度方差;当高阈值大于像素最值梯度Gmax一倍最值梯度方差σmax时,
就可以认为在非边缘区域之外[13]。

据此,根据梯度直方图的特性,提出了一种自适应确定图像阈值的方法,具体算法
步骤如下:
(1)设定图像的初始高阈值为Th1:
(2)用Th1分割图像,将图像分为目标区域R1和背景区域R2,其中R1由灰度值大于Th1的像素组成,R2由灰度值小于或等于Th1的像素组成。

(3)对区域R1和R2中的所有像素计算平均灰度值μ1和μ2。

(4)计算新的阈值:Th2=(μ1+μ2)/2。

(5)设定参数T0,如果|Th2-Th1|<T0,则令Th2为所求高阈值,否则,将Th2的值赋给Th1,重复步骤(2)~(5),确定高阈值为Th。

(6)计算低阈值Tl,Tl=Th*ThresholdRatio,本文中,ThresholdRatio取0.4。

4.1 加噪灰度图像实验
为了验证改进算法的有效性,试验选择Matlab实现算法,对加噪的Lena图像和自然图像进行仿真,图像大小均为256×256。

其中Lena图像加入了均值为0,
方差为0.03的高斯白噪声,自然图像中的高斯噪声由产生随机噪声的函数rand
再乘以30生成。

分数阶差分中的参数v=4.5,M=7。

试验采用传统的Canny算法与改进算法对图像进行边缘检测,结果如图3,图4所示。

由试验结果可以看出:图3(c)中,当Th=0.3时,图像边缘细节太丰富,反而
容易忽略图像真正的边缘信息;当Th=0.4时,图像轮廓清晰,但与改进方法结
果相比,左边长杆线条不连续,帽檐部分的断点比较多。

图4(c)中,当Th=0.6时,圆的边缘比较完整,但毛刺较多,且左下角边缘连接不完整;当Th=0.7时,图像存在明显断裂,相比较而言,改进方法得出的边缘主体轮廓连贯性更好,有效地抑制了虚假边缘。

4.2 人工灰度图像实验
一般情况下通过肉眼来观察边缘检测结果,但这无法真正衡量一幅图像边缘检测结果的优劣。

为此,以不加噪声的人工灰度图像为例进行分析,试验结果如图4所
示。

图像处理中通常用峰值信噪比来衡量边缘检测结果的好坏,据此定义类峰值信噪比函数(APSNR)来检测改进算法的优劣,公式如下:
式中:f(i,j)为经过某一算法提取的边缘图像;f0(i,j)为原始边缘图像;图像的大小为m×n,MSE为两幅图像均方误差。

将处理得到的边缘图像取反后再取两圆圈线之间的中间线,得到与原人工灰度图像相近的边缘图像,运用类峰值信噪比公式将处理后得到的边缘图像与原始的人工灰度图像进行对比,得到的数据如表1所示。

经过对比分析发现,采用改进算法所达到的类峰值信噪比值与传统Canny边缘检测算法相比,在数值上略高,这说明改进算法与边缘检测性能强大的Canny算子一样,具有很高的边缘定位精度。

加之改进算法在加噪灰度图像中取得了较好的边缘检测结果,更好地说明了改进算法对边缘检测有较高的精度和准确度。

改进的Canny边缘检测算法保留了传统Canny边缘检测算法的优点。

该算法首先采用分数阶差分方法来计算梯度幅值,以此来提高边缘定位的精度;同时利用相邻像素的梯度及其梯度差两种信息来改进非极大值抑制过程,增强了局部极大值判定的准确程度;最后根据各图像自身特点自适应地确定阈值,与传统的Canny边缘检测算法相比减少了人工取值的复杂度。

【相关文献】
[1] CANNY J F.Finding edges and lines in images[R].Technical report AI-TR-720,MIT,artificial intelligence labora-tory,Cambridge,MA,1983.
[2] CANNY JF.A computational approach to edge detection[J].IEEE Transactions on Pattern Analysis and Machine In-telligence,1986,8(6):658-663.
[3]范生宏,黄桂平,陈继华,等.Canny算子对人工标志中心的亚像素精度定位[J].测绘科学技术学报,2006,23(1):76-78.
[4]雒涛,郑喜凤,丁铁夫,等.改进的自适应阈值Canny边缘检测[J].光电工程,2009,36
(11):106-111,117.
[5]李旭,王正勇,吴晓红,等.一种改进非极大值抑制的Canny边缘检测算法[J].成都信息
工程学院学报,2011,26(5):564-569.
[6]李华强,喻擎苍,方玫,等.Canny算子中Otsu阈值分割法的运用[J].计算机工程与设计,2008,29(9):2297-2299.
[7]唐路路,张启灿,胡松,等.一种自适应阈值的Canny边缘检测算法[J].光电工程,2011,38(5):127-132.
[8]邵晓芳,孙即祥,王亮亮,等.改进的Canny算法[J].电光与控制,2006,13(6):53
-55.
[9]周志宇,刘迎春,张建新,等.基于自适应Canny算子的柑橘边缘检测[J].农业工程学报,2008,24(3):21-24.
[10]燕杨,王云吉.Canny边缘检测算子研究及其在医学图像中的应用[J].吉林工程技术师范
学院学报,2012(3):75-77.
[11]李远禄,于盛林.分数阶差分滤波器及边缘检测[J].光电工程,2006,33(12):70-74.
[12]韦慧,孙洪广,陈文,等.基于分数阶差分滤波器的边缘检测算法[J].数据采集与处理,2010,25(5):655-660.
[13]王植,贺赛先.一种基于Canny理论的自适应边缘检测方法[J].中国图象图形学报A辑,2004,9(8):957-962.。

相关文档
最新文档