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

  • 投稿继续
  • 更新时间2015-09-11
  • 阅读量664次
  • 评分4
  • 10
  • 0

石桂名1,2,魏庆涛1,孟繁盛1

(1.大连科技学院,辽宁大连116052;2.大连海事大学,辽宁大连116026)

摘要:图像边缘检测是一种非常经典的基于计算机视觉技术的图像处理技术,主要是根据图像的某种特定信息,把目标的边缘与周围的区分开来。回顾了几种传统的边缘检测方法,并分析它们的优缺点,详细阐述了Canny算子的检测原理和实验方法。实验结果表明Canny算子是最优的边缘检测算子,能够较稳定地对目标图像进行边缘信息提取,得到较好的检测效果。

教育期刊网 http://www.jyqkw.com
关键词 :图像处理;边缘检测;Canny算子;参数选择

中图分类号:TN911.73-34 文献标识码:A 文章编号:1004-373X(2015)12-0092-02

收稿日期:2015-01-16

基金项目:大连科技学院科学研究一般项目(KJY201406)

边缘检测算法是图像处理中的一个重要部分,本文比较了几种常用的传统边缘检测算法,分析Canny算法的含义、原理和步骤,并将Canny算法应用于车牌和动物的检测。实验仿真结果验证了Canny 算法的良好性能:提取缘信息的同时,能很好地抑制噪声的干扰,提高了图像边缘检测效果,但对于某些细节过于复杂的图像可能丢失一些信息。

1 边缘检测算法简介

Roberts算子是一种利用局部差分来寻找边缘的边缘检测算子,它处理的边缘效果不是很好,不够平滑。Sobel算子是滤波算子,用于提取边缘时,可以利用快速卷积函数,方法简单,使用率较高,但是不能严格地模拟人的视觉生理特征,提取的图像轮廓并不能令人满意[1]。Prewitt算子是一种基于一阶微分算子的边缘检测,利用像素点周围邻点的灰度差,在边缘处达到极值检测边缘,除掉一些假边缘,起到了平滑噪声的功能。Lapla-cian算子是一个二阶微分算子,定义为梯度(-f )的散度(- - f )。LoG 算子也就是高斯拉普拉斯函数,常常用于数字图像的边缘提取和二值化,它结合了Gauss平滑滤波器和Laplacian锐化滤波器,效果更好。Canny算子是一个多级边缘检测算法,边缘检测效果最好[2-3]。

2 Canny 边缘检测算子

2.1 Canny算法的含义

1986年,John F.Canny找到一个可以实现多级边缘检测的算法,命名为Canny边缘检测算子,其含义如下[4]:

(1)最佳检测:能够检测到足够多的图像中实际的边缘,减少真实边缘的漏检率和误检率。

(2)最佳定位准则:检测到的边缘点的位置距离实际边缘点的位置最近。

(3)检测点与边缘点一一对应:算子检测的边缘点与实际边缘点是一一对应。为了满足这种条件,最优检测指数函数,它与高斯函数的一阶导数极为相似。

2.2 Canny算法的步骤

2.2.1 用高斯滤波器平滑图像

图像在进行边缘检测时,首先要处理原始数据,以便于更好地实现边缘检测图像分割效果。所以开始时就需要原始数据与高斯mask做卷积,处理后的图像比原来模糊了一些,有利于图像边缘检测的进行。

由于高斯函数经傅里叶变换后还是高斯函数,能构成一个在频域具有平滑性能的低通滤波器:

2.2.2 用一阶偏导的有限差分计算梯度的幅值和方向

2.2.3 非极大值抑制

为了确定边缘,不仅要得到全局的梯度,还要保留局部梯度最大的点,而抑制非极大值[4]。如何解决这个问题非常重要,这里是利用梯度的方向。如图1所示。

四个扇区的标为0~3,对应3×3 邻域的4 种可能组合。在每一点上,邻域的中心像素M 与沿着梯度线的两个像素相比较。若M 的梯度值小于或等于沿梯度线的两个相邻像素梯度值,则令M=0。即:

2.2.4 双阈值法

双阈值法[5]对非极大值抑制图像作用两个阈值τ1和τ2 ,并且2 τ1≈ τ2 ,可以得到两个阈值边缘图像N1[i,j]和N2[i,j]。使用高阈值能得到N2[i,j],其含有假边缘相对较少。双阈值法在N2[i,j]中把边缘连接成轮廓,当到达轮廓的端点时,该算法用领域法,把在N1[i,j]的8邻点位置边缘点连接到轮廓上,最终将N2[i,j]全部连接起来,其领域结构见表1。

3 实验过程及结果

3.1 参数选择

Canny 算法包含许多可以调整的参数,它们将影响到算法的计算时间与实效。

(1)高斯滤波器的大小:首先使用平滑滤波器直接影响Canny 算法的结果[6]。要检测图像中较小的、变化明显的细线时,应采用较小的滤波器,这样产生的模糊效果才少。反之,检测图像中较大的、平滑的边缘,即将较大的一块图像区域涂成一个固定点的灰度值,就需要大的滤波器。

(2)阈值:本文采用了两个阈值,比采用一个阈值更加灵活,但是,它也有缺点,阈值存在的共性问题。如果阈值设得过高,可能会漏掉重要信息;阈值过低,就会把更多细节信息括进来。因此,想要寻找可以适用于所有图像的通用阈值,暂时还是个难点,还没有一个经过验证的方法。

3.2 实验结果

Canny边缘检测算法仿真图如图2,图3所示。

经过以上两组图片对比,发现Canny算子适合于用于提取信息相对简单的图像,效果明显;但对于一些细节复杂的图像来说,分割效果不明显,会出现边缘丢失和边缘误判的情况,需要在后续的算法中不断改进。

4 结语

Canny 算子边缘检测相对其他的算子得到的处理图像效果更明显,边缘更细致,其他的算子的边缘检测得到的图像边缘并不十分明显。Canny 边缘检测算子根据对信噪比与定位乘积进行测度,得到最佳的逼近算子,所以得到的图像边缘会更清晰。它也有些缺点,无法有效地处理噪声的影响问题,会产生许多不存在的边缘,不便于观察。因此,在不同的情况下应选择相应的算法来达到检测目的。

作者简介:石桂名(1983—),女,河北任丘人,硕士,讲师。研究方向为信号处理。

魏庆涛(1978—),男,辽宁抚顺人,硕士,副教授。研究方向为智能控制。

教育期刊网 http://www.jyqkw.com
参考文献

[1] 段瑞玲,李庆祥,李玉和.图像边缘检测方法研究综述[J].光学技术,2005(3):415-419.

[2] 徐献灵,林奕水.图像边缘检测算法比较与分析[J].自动化与信息工程,2007(3):44-46.

[3] 王静,李竹林,贺东霞,等.基于边缘检测的各种算子及其特点[J].延安大学学报:自然科学版,2014(1):5-8.

[4] 王佐成,刘晓冬,薛丽霞.Canny算子边缘检测的一种改进方法[J].计算机工程与应用,2010(34):202-204.

[5] 曾发明,杨波,吴德文,等.基于Canny边缘检测算子的矿区道路提取[J].国土资源遥感,2013(4):72-78.

[6] 韦炜.常用图像边缘检测方法及Matlab研究[J].现代电子技术,2011,34(4):91-94.