一种改进的Canny边缘检测算法(2)
时间:2025-07-10
时间:2025-07-10
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.因此,根据两者在梯度方向特性上的差异,就能够有效地区分边缘点与噪声点.