摘要
Canny算法是边缘检测中常用的算法之一,Canny算法经过有效改进,可快速、高效地完成对图像边缘位置的准确识别,因此在计算机视觉、图像分析等领域发挥着较为重要的作用。基于边缘检测的概念及过程,着重介绍了Canny算法的各种改进方法,根据不同的改进方式对Canny算法进行分类与总结,并对改进前后的边缘提取结果进行了对比分析;阐述了改进Canny算法的应用与发展前景,总结了目前所面临的问题以及进一步的研究内容。
关键词: Canny; 边缘检测; 图像分割; 计算机视觉
0 引言
边缘检测是图像处理、计算机视觉等领域中的基础性研究问题之一,主要通过提取图像中梯度变化较大的像素点来确定图像边缘,并将亮度变化由亮变暗、由暗变亮的点集标识出来,最终形成轮廓。作为数字图像处理技术中最基本的研究内容,图像边缘检测技术可以更加直观地展示物体边缘或结构,在图像分割、工业、医学以及智能交通等方面有着广泛应用。
随着计算机视觉的不断发展与进步,边缘检测算法不断被优化与更新。目前,边缘检测算法主要分为一阶微分算法(包括Sobel算法、Roberts算法、Prewitt算法)和二阶微分算法(包括Laplacian算法、LOG算法、Canny算法等)。不同边缘检测算法的出现,使图像边缘检测技术得到了更好的发展。其中Sobel、Roberts等算法虽形式灵活、检测精度高,处理被椒盐噪声污染过的图像时,对灰度变化明显且受噪声影响较小的图像处理效果较好,但在处理边缘复杂、噪声较大的图像时,有时会将噪声和边缘上的信息一起过滤掉,从而遗失重要的边缘信息,使得图像处理效果并不理想,在实际应用中仍存在一定局限性。
基于上述问题,Canny于1986年提出了Canny算法,Canny算法是多级边缘检测算法,可以根据实际需求改变双阈值从而应用于不同场景,同时不易受到噪声的干扰,也能够检测弱边缘。相较于其他边缘检测算法,传统Canny算法因其显著的优势被普遍应用,并且随着图像边缘检测技术的发展,诸多学者在传统Canny算法的基础上,针对使用过程中因滤波、检测、定位等因素导致边缘检测精度降低的情况,开展了Canny算法的改进研究。Canny算法经有效改进,可快速、高效地完成对图像边缘位置的准确识别,有利于开展图像边缘检测工作,使该技术在工业制造、工件分拣、医学图像融合、通信及地质图像领域中得到广泛应用。
1 Canny边缘检测算法
1.1 传统Canny边缘检测算法
传统Canny算法的边缘检测步骤如图1所示。首先选择高斯滤波器对待处理图像进行平滑滤波,利用一阶偏导有限差分求得每个像素点的梯度幅值与方向,然后采用非极大值抑制技术对平滑后的图像进行处理,最后采用双阈值方法检测和连接边缘,获得最终的边缘图像。
图1
图1 传统Canny算法的检测步骤
(1)高斯滤波去噪
使用高斯滤波器滤除图像噪声,选取的高斯函数表达式为:
G(x,y)= 12πσ2e-x2+y22σ2
(1)
平滑后的图像表达式M(x,y)为:
M(x,y)=G(x,y)×f(x,y)
(2)
其中(x,y)是坐标,σ