基于canny算子的改进边缘检测算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于canny 算子的改进边缘检测算法
摘要:本文提出了一种基于Canny 算子的改进边缘检测算法。该算法既具备传统Canny 算子信噪比高、定位精确的优点,又具备较强的去噪能力和较好的边缘检测效果。实验表明,本文算法增强了Canny 算子在噪声干扰情况下的去噪效果,提高了边缘定位的精确度,能够得到更加完整的边缘轮廓。
关键词:Canny 算子,双边滤波,边缘检测
1 引言
边缘检测技术是数字图像处理中的一项重要技术,边缘检测的主要目的就是实现对目标图像的精确定位。边缘是图像的基本特征,是图像分割的重要依据,也是纹理特征的重要信息源和形状特征分析的基础,边缘检测的效果将直接影响到图像理解和识别的性能[1]。经典的边缘检测算子,如Robert 、Prewitt 、Log 等,简单、易于实现,但对噪声敏感、抗干扰性能差,边缘不够精细[2]。相比这些算子,Canny 算子具有更好的信噪比和检测精度,在图像边缘检测领域中具有更加广泛的应用范围。
但是,实际图像中,存在着许多噪声,这时,若仍采用传统 Canny 算子进行边缘检测,会将一些噪声点误作边缘点检测,导致提取的边缘轮廓模糊、不精确,因此,我们需要对传统Canny 算子加以改进。
本文提出了一种基于Canny 算子而改进的边缘检测算法,该算法既可以较好地滤除噪声,又可以提高目标边缘的定位精度、抑制虚假边缘和去除冗余弱边缘,呈现出了一个更为清晰的天之信图像边缘检测结果,比传统Canny 算法具有更好的性能。
2 传统canny 边缘检测算法
Canny 提出了边缘检测性能优劣的3个判断准则[3]:
高信噪比准则:即输出信号的信噪比最大,以降低边缘点判断为非边缘点和非边缘点判为边缘点的概率。信噪比越大,误检率越低。
高定位精度准则:好的定位性能,即检测出的边缘点要尽可能在实际边缘的中心
单边缘相应准则:即单一边缘只有惟一响应,并且对虚假边缘响应应得到最大抑制。
2.1 传统canny 算法边缘检测步骤
1)高斯滤波
用一维高斯函数对原始图像f(x, y)进行低通滤波、噪声滤除,该高斯函数为:
22221
(,)exp 22x y G x y πδδ⎡⎤+=-⎢⎥⎣⎦
δ为高斯滤波函数的标准差,控制着平滑程度:σ较小时,滤波器定位精度高,但信噪比低;σ较大时,滤波器情况正好相反。我们要根据实际情况确定δ的大小。
2)计算梯度幅值和方向
传统的Canny 算法采用2×2邻域一阶偏导的有限差分来计算平滑后的图像的梯度幅值和方向:
22
(,)(,)(,)x y M x y G x y G x y =+
y x (,)arctan G x y G θ=(x,y )
(x,y )
(,)(,1)(,1)x G x y G x y G x y =+--,(,)(1,)(1,)y G x y G x y G x y =+--。
x (,)G x y 、(,)y G x y 分别为点(,)x y 处G (x,y )在x 方向和y 方向的一阶偏导。
3)非极大值抑制
将边缘的梯度方向按照水平、竖直、45°和 135°四个方向,用不同的邻近像素进行比较,确定局部极大值。若某个像素的灰度值与梯度方向上前后两个像素的灰度值相比不是最大,该点即为非边缘点,删除;否则,即为待选边缘点,保留。这个过程称为“非极大值抑制”。
4)双阈值法检测和连接边缘
用高、低阈值对经非极大值抑制的结果检测,得到高阈值边缘图像
h T 和低阈值边缘图像l T ,。然后,以图像h T 为基础,用图像l T 来补充连接图像边缘。
2.2 传统Canny 算法的缺陷
Canny 算子因其优越的边缘检测性能得到了广泛应用,但实际中图像易受噪声污染,如光照、油渍等,这时,如果仍用传统Canny 算法,一方面不能有效滤除噪声,另一方面会出现伪边缘或边缘丢失。
传统Canny 算子用高斯函数对图像平滑滤波,有较强的抑制噪声能力;但会造成边缘丢失,对高频细节的保护效果不佳。这是因为,Canny 算子在对图像高斯滤波时,边缘作为高频部分易被平滑掉,一些边缘就变成了缓变边缘,进行非极大值抑制的时候,缓变边缘就容易丢失,造成边缘检测结果存在较明显的模糊和边缘丢失问题,效果欠佳。
3 改进的canny 边缘检测算子
双边滤波,Bilateral filter ,既可以较好地滤除图像噪声,又可以保持较好的图像边缘信息,解决了高斯滤波的图像模糊和边缘丢失问题。本文充分结合双边滤波和Canny 算子的优越性,提出一种新的Canny 边缘检测算法,该算法用滤波性能较好的双边滤波代替传统Canny 边缘检测中的高斯滤波,对含噪图像具有更好的边缘检测效果。
双边滤波是一种非线性的2D 信号滤波方法[4],是图像的空间临近度和像素相似度的一种折
衷处理[5],是通过像素的加权平均而定义的,利用强度的变化来保存图像边缘信息。设BF 为双边
滤波的符号,由下式定义[6]:
1
[](||||)()d r P p q q q S P BF I G p q G I I I W δδε=--∑
(||||)()
d r p p q q S W G p q G I I δδε=--∑
参数d δ和r δ用于衡量图像I 的滤除量,d G δ是一个空间函数,用于减少远距离像素影响,r G δ是一个范围函数,用于减少灰度值不同于
p I 的像素q 的影响。通常,双边滤波器的空间邻近函数d G δ和灰度相似函数r G δ都取为参数为欧氏空间距离的高斯函数,定义为:
21((),())[]2r r I p I q G e δδδ=