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

更新时间:2023-05-21 23:46:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第28卷第12期2007年12月

东北大学学报(自然科学版)

JournalofNortheasternUniversity(NaturalScience)

V01.28,No.12Dee.2007

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

吕哲1,王福利1一。常玉清1,2

(1.东北大学流程工业综合自动化教育部重点实验室。辽宁沈阳110004t

2.东北大学信息科学与工程学院。辽宁沈阳uo004)

要:图像中部分低强度边缘在梯度幅值特性上与噪声点十分相似,因此,传统Canny边缘检测算法

在采用基于梯度幅值的双阈值法检测和连接边缘时,尽管抑制了噪声,但同时也损坏了部分低强度边缘.针对这一问题,提出了一种改进的Canny边缘检测算法,采用新的基于梯度方向的检测和连接方法取代了传统的双阈值法,充分利用了边缘点和噪声点在梯度方向特性上的差异。在抑制噪声的同时,有效保护了低强度边缘细节,具有优于传统Canny算法的性能.仿真研究也证明了该算法的有效性.关键词:Canny边缘检测;梯度幅值;梯度方向;噪声抑制;细节保护中图分类号:TP242

文献标识码:A

文章编号:1005.3026(2007)12.1681.04

AnImprovedCannyAlgorithmforEdgeDetection

gOZhel。WANGFu—lil--,CHANG

Shenyang

Yu.qin91 2

ofAutomationofProcessIndustry,MinistryofEducation,NortheasternUniversity。(1.KeyLaboratoryIntegrated

110004,China;2.SchoolofInformationScience&Engineering,NortheasternUniversity。Shenyang

110004,China.Cc盯圈x舯dent:LOZhe,E-mail:lvzhe.neu@gnmil.oofn)

Abstract:Becauseofthehighsimilaritybetween

thegradientmagnitudesoflow-contrast

on

edge

andnoise,theconventionalCannyalgorithmfordetection,whichisbased

tO

thedouble-threshold

detectandconnectedges,damagespartly

Canny

thelow-contrast

edgethoughitsuppressesnoise.An

impmved

theedge

algorithm

isthereforeproposedinsteadofthedouble-thresholdone,which

detectsand

between

andthenoise。80硒tOprotectefficientlythedetailsofalllow-contrastedgeswiththe

theedgesinaccordancetOthedifferenceofthegradientdirection

ore.

connects

noisesuppressedsimultaneously。ThenewapproachisthussuperiortOtheconventionalSimulationtestshaveverifiedtheeffectivenessoftheimprovedCannyalgorithmfor

detection.

Keywords:C启mnyedgedetection;gradientmagnitude;gradient

edge

direction;noise

suppression;

detailprotection

边缘是图像最基本的特征之一,边缘检测的效果将直接影响到图像的分析、识别及理解.因此,边缘检测已经成为图像处理领域中一个十分重要的环节,有着广泛的应用…1.传统的边缘检测算法包括Roberts算子、Prewitt算子、Sobel算

微分运算对噪声往往比较敏感,抗干扰性能差,边

缘不够精细,因此,在实际应用中受到了限制.

为了进一步提高边缘检测算法的性能,Canny于1986年提出了边缘检测算子应满足的

最优准则【6-8J:信噪比准则、定位精度准则及单

边缘响应准则,并由此推导出了Canny最佳边缘检测算法.Canny算法首先应用高斯滤波器平滑

子等一阶微分算子以及Laplacian算子、LOG算

子等二阶微分算子[2-5】.通常,这类算子以一阶

导数极大值点或二阶导数过零点作为候选边缘点,通过选取合适的阈值,从中提取图像边缘,具

有简单、易于实现、运算速度快等特点.但是,由于

收稿日期:2006-12—24

图像,再采用窗口计算灰度梯度的幅值和方向,之

后对梯度图像进行非极大值抑制,最后采用双阈值方法从候选边缘点中检测和连接边缘.然而,实

基金项目:国家自然科学基金资助项目(60374003);国家重点基础研究发展计划子课题项目(2002CB312201).

作者简介:吕哲(1981一),男,河南洛阳人,东北大学博士研究生;王福利(1957一),男。辽宁沈阳人.东北大学教授,博士生导师.

1682

东北大学学报(自然科学版)第28卷

际图像在采集过程容易受到光源照度、信号传输等因素的影响,不可避免地会引入噪声.同时,一

些重要的边缘细节也会由于干扰或对比度不足而

变得模糊、微弱.因此,在实际图像中部分边缘细节可能具有与噪声类似,甚至更低的梯度幅值.此时,传统Canny算法基于梯度幅值的双阈值方法往往难以在抑制噪声的同时保护低强度边缘,在一定程度上影响了其边缘检测的效果.

为此,本文提出了一种改进的Canny边缘检

测算法,充分利用图像中边缘点和噪声点在梯度

方向特性上的差异,以实现边缘的检测和连接,在

抑制噪声的同时较好地保护了低强度的边缘细节,获得了令人满意的效果.

1传统Canny边缘检测算法[6]

1.1

图像平滑

Canny用范函求导方法推导出高斯函数的一

阶导数即为最优边缘检测算子的最佳近似.由于

卷积运算可交换,可结合,故Canny算法首先采

用二维高斯函数对图像进行平滑:

G(剐)=赤eXp(一等).(1)

其中,口为高斯滤波器参数,它控制着平滑的程度.盯较小的滤波器定位精度高,但信噪比低;口

较大的滤波器情况正好相反.因此,要根据需要选取高斯滤波器参数.

1.2梯度幅值和方向的计算

传统Canny算法利用一阶微分算子来计算平滑后图像J各点处的梯度幅值和梯度方向,获得相应的梯度幅值图像G和梯度方向图像口.其

中,点(i,J)处两个方向的偏导数G_(i,歹)和

G,(i,_f)分别为

G0(i,J)=(f(i,歹+1)一J(f,歹)+

J(i+1,.f+1)一j(i+1,_f))/2,

(2)

G0(i,J)=(,(i,_f)一J(i+1.歹)+

j(i,歹+1)一J(i+1,J+1))/2.

(3)

则此时点(i,.『)处的梯度幅值和梯度方向分别为

G(i,歹)= ̄/G:(i。J)+G:(i,J)。

眦∽=arc锄(渊).(5)

(4)

1.3非极大值抑制

为了精确定位边缘,必须细化梯度幅值图像

G中的屋脊带,只保留幅值的局部极大值,即非

极大值抑制(NMS).Canny算法在梯度幅值图像G中以点(i,.『)为中心3X3的邻域内沿梯度方向口(i,歹)进行插值,若点(i,_『)处的梯度幅值G(f,J)大于口(i,.i)方向上与其相邻的两个插值,则将点(i,歹)标记为候选边缘点,反之则标记为非边缘点.这样,就得到了候选边缘图像N.

1.4检测和连接边缘

传统Canny算法采用双阈值法从候选边缘点中检测和连接出最终的边缘.双阈值法首先选取高阈值Th和低阈值Tl,然后开始扫描图像.对

候选边缘图像N中标记为候选边缘点的任一像

素点(i,歹)进行检测,若点(f,.f)梯度幅值G(i,J)高于高阈值Th,则认为该点一定是边缘点,若点(f,_f)梯度幅值G(i,歹)低于低阈值Ti,则认为该点一定不是边缘点.而对于梯度幅值处于两个阈值之间的像素点,则将其看作疑似边缘点,再进一步依据边缘的连通性对其进行判断,若该像素点的邻接像素中有边缘点,则认为该点也为边缘

点,否则,认为该点为非边缘点.

2改进的Canny边缘检测算法

实际图像在采集过程容易受到光源照度、信号传输等因素的影响,不可避免地会引入噪声,同

时一些重要的边缘细节也会由于干扰或对比度不

足而变得模糊、微弱.因此,在实际图像中部分边缘细节可能具有与噪声类似,甚至更低的梯度幅值.若仅以梯度幅值大小为标准来检测和连接边缘,则要么由于阈值设定过高而损失重要的边缘信息,要么由于阈值设定较低而不能有效抑制噪

声,很难获得令人满意的效果.此时,双阈值方法

在很大程度上成为传统Canny算法的性能瓶颈.为此,本文提出了一种改进的Canny边缘检测算

法.新算法采用基于梯度方向的边缘点检测和连

接方法,既有效抑制了噪声,又尽可能地保护了边

缘细节,较好地解决了上述问题,进一步提高了

Canny边缘检测算法的性能.

2.1基于梯度方向的边缘点检测和连接方法

如前所述,仅使用梯度幅值信息容易混淆低

强度边缘和噪声,为此需要寻找新的能够描述边

缘点与噪声点之间差异的特征信息.图像中的像

素点除了具有梯度幅值信息外,还具有梯度方向

信息,而且边缘点的梯度方向一般指向边缘的法

线方向,孤立的噪声点则通常没有特定的梯度方向【91.因此,根据两者在梯度方向特性上的差异,就能够有效地区分边缘点与噪声点.

第12期

2.1.1算法原理

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

转第4步;

1683

如图1所示,在以点0为中心的8邻域内。定⑦继续扫描候选边缘图像N,寻找新的候选边缘点,若该点未被标记为边缘点,转第2步,否

则继续扫描其他点.直到没有新的未标记为边缘点的候选边缘点,算法结束.

义各点与中心点的连线为Seg。={(0,t)It=1,…,8},称为点t到中心点的连接.显然,当中心点t与邻域内任意一点处于同一边缘上时,其连接Seg,亦处于该边缘上.定义A049。为中心点0与

其邻域内任意点t的平均梯度方向与此两者的连

其中,邻域内Seg。={(0,t)l=l,…,8}的法

线方向规定为一丌/4,0,耳/4,n/2四个方向之一,同时,对于计算得到的Ang。在取绝对值之前需将其归一化到(一x/2。兀/2)之间.2.2改进的Canny边缘检测算法

将传统Canny边缘检测算法中的双阈值方法用本文提出的新的基于梯度方向的边缘点检测

接Seg,的法线方向的夹角的绝对值.由于边缘上

的点的梯度方向应指向该点处边缘的法线方向,

则当中心点0与邻域内任意点t处于同一边缘上时,Ang。应小于一个较小值T.而对于噪声点,由于其与相邻点梯度方向不同,使得Ang。值通常较大.因此,依据梯度方向信息能够有效地区分图像中的边缘点和噪声点,从而在抑制噪声的同时

准确地实现边缘点的检测和连接.

和连接方法代替就构成了改进的Canny边缘检

测算法.由于新算法利用了边缘点和噪声点在梯

度方向特性上的差异,避免了传统方法在抑制噪声的同时损坏低强度边缘的缺陷,因此,获得了更

为出色的性能.

@…-3翁…o

\l/

此外,在实际应用过程中,受到光的衍射等因素的影响,部分图像中可能含有一些梯度方向特

性与边缘十分类似的暗纹,可能使碍检测出的图像中存在部分无意义边缘.由于这类暗纹的梯度

/;、\/;\0④@

图1Fig.1

8邻域结构

architecture

s),stem

幅度通常很低,此时,可以在程序中引入一个较小的梯度幅度阈值,将梯度幅度低于该阈值的点直

接标记为非边缘点,避免对其进行基于梯度方向

的检测和连接,从而防止这类无意义边缘的出现.

2.1.2算法实现

根据上述原理,基于梯度方向的检测和连接边缘方法可表述为

①扫描非极大值抑制后获得的候选边缘图像N;

②对于扫描到的候选边缘点N(i,J),判断

3实验结果分析及讨论

针对具有256级灰度的Cameramall图像,本

其8邻域内是否有其他候选边缘点,若没有,转第

7步,否则:

文分别应用传统Canny边缘检测算法和本文所提出的改进的Canny边缘检测算法对其进行处

理.为了便于了解图像中低强度边缘的分布情况,本文还给出了对C8Ineraman图像进行直方图均衡化处理后得到的图像,如图2b所示.改进的Canny算法中涉及到参数T,由实验可知,过小的T可能会导致目标边缘不连续,对于不同图像当T取5。~30‘之间的值时,有较为理想的检测效果,本文取T=20。.

③根据梯度方向图口计算点N(i,J)及其8邻域内扫描到的第一个候选边缘点tl所对应的Ang¨若Ang。。<T,转第5步,否则:

④继续扫描点N(i,歹)8邻域内其他未被标记为边缘点t。的候选边缘点,并计算相应的Angf^’若找到满足Ang,.<T的候选点则转第5

步,否则转第7步;

⑤将邻域中心点N(i,歹)及满足Ang,.<T的候选边缘点tp均标记为边缘点,并以点知为种子点进行边缘连接;

如图2c,2d所示,与传统Canny边缘检测算法相比,本文提出的改进算法在保持了传统算法

优点的基础上,检测到了更多的低强度边缘,从而

更全面地反映了图像的细节信息.

此外,本文还进一步对两种算法的抗噪声干

⑥若t。的8邻域内存在候选边缘点,且该点未被标记为边缘点,则将该点标记为边缘点,并

以该点为新的种子点继续连接,直到在所有种子点的8邻域不存在新的未被标记的候选边缘点,

扰性能进行了比较研究.在具有256级灰度的

Cell图像中引入了1%的椒盐噪声。用改进前后

的两种Canny算法对其进行处理.由图3c,3d可

见,改进的Canny边缘检测算法在保持边缘清晰

1684

东北大学学报(自然科学版)第28卷

连贯的同时,具有更强的噪声抑制能力.

圈2

Fig.2

C狮r椭n图像边缘检测结果比较

Compari,∞nofedgedetectioninCsmeramarlimage

(a)一原始图像;(b)一直方图均衡化图像;(c)—传统Canny算法检测结果;(d)一改进Canny算法检测结果.

Fig.3

呻iscm

图3

Cell图像边缘检测结果比较

ofedgedetectionin

Cellimage

(a)一原始图像;(b)一引入1%椒盐噪声图像;(c)一传统Canny算法检测结果;(d)一改进Canny算法检测结果.

Analysis,1998,8(4):537—559。

4结论

…RajahMI,WoolfsonMS.MorganSP.Applicationof

本文提出了一种改进的Canny边缘检测算法,采用新的基于梯度方向的检测和连接方法取代了传统的双阙值方法,充分利用了边缘点和噪声点在梯度方向特性上的不同,解决了传统Canny边缘检测算法存在的问题,既有效抑制了图像中的噪声,又很好地保护了边缘细节,具有优于传统Canny算法的性能.对于受到光源照度、信号传输等因素的影响而引人噪声的实际图像有较强的针对性和实用性.参考文献:

【l】

LiangLR.LotmeyCG.Competitivefuzzyedgedetection

region-ha鳅l∞grnentation

tO

andneuralnetworkedgedetectlm

skin

lesions[J].ComputerizedMedical

Imaging

and

锄砷/cs,2004,28(I):61—68.

PeilegrinoFA,VanzdlaIEEE

Tra,Ⅱo竹5曲姗,Manand

J.Aeomputationalapproneh

Transaa/ons

OTI

W.Edgedetectionrevisited[J].

C3/m'netics。2004,34

(3):1500—1518。

Canny肛:EE

toedgedetection[J].

Pattern

Analysis

andMachine

Intelligence,1986,8(6):679—698.

Beo

P,2a旧ngL.Cannyedgedetectionenhancenmntbyscale

on

multiplication[J],IEEETram

Pattern

Analysisand

MachineIntelligence。2005.27(9):1485—1490.

王植,贺赛先.一种基于Canny理论的自适应边缘检测方法[J].中国图像图形学报,2004,9(8):957—961.

(WangZhi。HeSai—xian.Anadaptiveedge-detectionmethod

besed

on

[J].Applied黝Computing,2003。3(2):123—137.

[2]

Haralick

R.Ⅸgital

step

edgesfrom

zelo

crossing

of

secx划

Canny

algorithm[J].Journalof

Image

and

directional

derivatives[J]./FEETmns

011

PatternAria@sis

Graph治。2004,9(8):957—961.)

Destrempes

andMachineIntelligence,1984,6(1):58—68.[3】

F。MignotteM.Asmtisticalmodelfor

o,l

contours

in

Z.伽D.Tabbone

S.Edgedetectiontechniques--anoverv/ew

咖es[J].IEEETram

PatternAnalysisandMachine

[J].Internat缸nalJournalofPatternRecognitionandImage

Intelligence,2004,26(5):626—638.

本文来源:https://www.bwwdw.com/article/30j4.html

Top