基于LOG和Canny算子的边缘检测算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
定义 设原图像为 f(x, y),高斯滤波函数为 G(x, y),两者 进行卷积运算,然后利用拉普拉斯算子▽2 实现边缘检测,输 出的图像 h(x, y),则 LOG 算子的推导如下:
基金项目:国家科技型中小企业技术创新基金资助项目(09C2621320 3797) 作者简介:贺 强(1984-),男,硕士研究生,主研方向:模式识别, 图像处理;晏 立,教授 收稿日期:2010-06-10 E-mail:heqiangcug@163.com
Gx (i,
j)
=
1( 2
f
"[i,
j
+1] −
f
"[i,
j]+
f
"[i +1,
j
+1] −
f
"[i +1,
j])
(9)
Gy (i,
j)
=
1 2
(
f
"[i,
j]−
f
"[i
+ 1,
j] +
f
"[i,
j
+1] −
f
"[i
+ 1,
j
+ 1])
(10)
一阶偏导数 Gx(i, j)和 Gy(i, j)即为梯度矢量,点的梯度幅
本文从 3 个方面改进 Canny 算子,并结合 LOG 算子进
行图像边缘检测。对于高噪声的图像,首先利用 LOG 算子进 行噪声过滤,通过深入研究发现,图像原值小于 LOG 函数值 的部分由图像上的绝大部分噪声组成,由此可以利用 LOG 算 子过滤掉图像上绝大部分噪声。本文设计了高斯滤波核对过 滤掉噪声的图像边缘进行边缘增强,使图像上一些低强度边 缘更容易被检测到;使用 M×N 的核计算梯度矢量,弥补了传 统 2×2 的核计算梯度矢量对于噪声敏感的问题;将梯度方向 结合到梯度幅值的计算中,实验证明该方法计算出的梯度幅 值在边缘检测中更具依据性。
第 37 卷 第 3 期
贺 强,晏 立:基于 LOG 和 Canny 算子的边缘检测算法
211
h(x, y) = ∇2 (G(x, y) ⊗ f (x, y))
(1)
其中, ⊗ 为卷积符号。▽2 公式为:
∇2 = ∂2 + ∂2 ∂x2 ∂y2
(2)
由卷积的可交换行得:
h(x, y) = ∇2G(x, y) ⊗ f (x, y)
2 LOG 函数图像去噪
拉普拉斯算子是最常用的二阶基于导数的边缘检测算 子,它易受噪点影响,为减少对噪点敏感度,Marr 和 Hildreth 将高斯滤波和拉普拉斯边缘检测结合在一起,形成了 LOG 算 子。LOG 首先进行高斯平滑,然后进行拉普拉斯运算。它对 噪点不太敏感,因为高斯函数减少噪点,并且拉普拉斯模版 使检测到假边缘的概率减到最小。
【Abstract】Aiming at the disability of traditional Canny operator in noise suppression and detecting low-intensity edge, this paper proposes an edge detection method combined LOG operator and Canny operator. LOG operator is used to the picture for noise filtering and Canny operator is improved in the flowing three aspects to execute the edge detection: (1)It designs Gaussian smoothing kernel to intense the edge of picture filtered noise, which makes the low-intensity edge detect easily; (2)Gradient magnitude and direction are calculated by pixels within a M-by-N neighborhood; (3)It integrates gradient direction with the calculation of gradient magnitude, which can be the ground for gradient magnitude in edge detection. Through carrying out a lot experiment for picture increased salt and pepper noise, the method proposed in this paper can not only suppress noise in the largest degree, but also detect more low-intensity edge. 【Key words】Canny operator; LOG operator; Gaussian smoothing kernel; gradient kernel; gradient magnitude DOI: 10.3969/j.issn.1000-3428.2011.03.074
以肯定为噪声部分,因此,用式(5)过滤后的图像包含原图主
要信息并且主要的噪声部分都被过滤掉。过滤后的图像设为
f’(x, y),作为下面 Canny 算子处理的输入图像。
3 改进的 Canny 算子边缘检测
3.1 传统 Canny 算子原理 Canny 算子[5]首先采用高斯滤波器平滑图像,根据高斯
函数的一阶偏导数计算梯度,检测梯度幅值的局部极大值, 然后用低阈值 T1 得到弱边缘 E1,用高阈值 T2 得到边缘 E2, 最后 E1 中仅保留与 E2 有连通关系的连通分量作为输出边缘 E。Canny 算子进行边缘检测的过程如图 1 所示。
贺 强,晏 立
(江苏大学计算机科学与通信工程学院,江苏 镇江 212013)
摘 要:针对传统 Canny 算子抑制噪声和检测低强度边缘能力不足的问题,提出一种将 LOG 算子和 Canny 算子相结合的边缘检测方法。 采用 LOG 算子对图像进行噪声过滤,从以下 3 个方面改进 Canny 算子实现边缘检测:(1)设计高斯滤波核对过滤掉噪声的图像进行边缘增 强,使低强度边缘更容易被检测;(2)在 M×N 邻域中计算梯度幅值和方向;(3)将梯度方向结合梯度幅值计算,使梯度幅值在边缘检测中更 具依据性。对增加椒盐噪声的图像进行实验,结果表明,该方法在最大程度抑制噪声的同时,能检测到更多的低强度边缘。 关键词:Canny 算子;LOG 算子;高斯滤波核;梯度核;梯度幅值
(12)
由图 1 可以看出,传统 Canny 算子判定边缘的唯一依据
是图像的梯度幅值,本文结合梯度矢量和方向,提出下面公
式计算梯度幅值:
M (i, j,θ ) = max(cosθGx (i, j), sinθGy (i, j))
(13)
在实际应用中,仅依据式(11)计算出的梯度幅值信息,
在进行双阈值的判定时,容易混淆低强度边缘和噪声,为此
wk.baidu.com(3)
其中, ∇2G(x, y) 即为 LOG 算子:
LOG(x, y) = ∇2G(x, y) =
1
x2 [
+
y2


1]e
x2 + 2δ
y
2
2
(4)
πδ 4 2δ 2
用 LOG 算子处理图像时,是先用 G(x, y)进行平滑处理,
然后用式(2)对图像进行二阶导数增强。
本文采用 LOG 函数进行噪声过滤,研究发现,LOG 算
1 概述
边缘检测是图像处理领域中最基本的问题,它的解决对 于进行高层次的特征提取、特征描述、目标识别和图像理解 等有着重大的影响,因此,被广泛应用与模式识别、计算机 视觉、图像分割等众多领域。经典的边缘提取算子包括 Sobel、 Roberts、Prewitt 以及 Laplacian、LOG 等。近来,随着科学 技术的发展,一些新的理论工具被运用到边缘检测中,如形 态学、统计学方法、模糊理论、遗传算法、神经网络等。
需要找到描述边缘与噪声点之间差异的特征信息。图像中的 像素点除了具有梯度幅值信息外,还具有梯度方向信息,而
第 37 卷 第 3 期 Vol.37 No.3
·图形图像处理·
计算机工程 Computer Engineering
文章编号:1000—3428(2011)03—0210—03
文献标识码:A
2011 年 2 月 February 2011
中图分类号:TP391.41
基于 LOG 和 Canny 算子的边缘检测算法
G(x, y) = 1 exp( 1 (x2 + y2 ))
(6)
2πδ 2 2δ 2
其中,δ 为高斯曲线标准差,用于控制平滑程度。
对任意输入图像 f(x, y),高斯平滑是一个卷积的过程:
f(x, y) ⊗ G(x, y)。常用的高斯算子可用 3×3 的核对图像平滑:
⎡1 2 1⎤
1 16
⎢⎢2 ⎢⎣1
4 2
2⎥⎥ 1⎥⎦
第 2 节通过 LOG 算子过滤后的图像,已经过滤掉绝大部
分噪点,这里需要对处理后的图像边缘进行增强,本文使用
下面的高斯滤波核增强图像的边缘:
⎡−1 −1 −1⎤
⎢⎢−1 α −1⎥⎥
(7)
⎢⎣−1 −1 −1⎥⎦
其中, α =2i, i=1, 2, 3。
由第 2 节的输入图像 f’(x, y),用上面的高斯滤波核进行
Canny 算子作为一种优化的边缘检测算子,具有比较好 的信噪比和检测精度,得到了广泛的应用。然而实际应用中, 对于高噪声的模糊图像,Canny 算子在抑制噪声的同时往往 错过一些低强度的边缘,而一些高强度噪声被检测为边缘。 针对这些不足,国内外学者进行了很多研究,提出了许多的 改进方法。文献[1]提出一种基于二维经验模态分解(Bidimensional Empirical Mode Decomposition, BEMD)的分析方法,能 对图像进行多尺度分解,通过筛分过程提取出图像的细节信 息,结合 Canny 算子得到的边缘细致连续性好;文献[2]提出 一种基于梯度方向的检测和连接方法取代传统的双阈值法, 充分利用边缘点和噪声点在梯度方向特性上的差异,取得优 于传统 Canny 算子的性能;文献[3]提出基于梯度幅度直方图 和类内方差最小化动态的自动确定高低阈值的方法,提高 Canny 算子的自动化性能;文献[4]利用模糊推理方法来改进 边缘检测,并结合 Canny 算子进行边缘检测,取得很好的检 测性能。
子在进行边缘检测时,能很大程度的抑制噪声。通过将图像
原值与 LOG 函数值进行比较,发现图像原值小于 LOG 函数
的部分由图像上绝大部分噪声组成,本文正是利用此原理进
行噪声过滤。
本文用下列公式对原图进行噪声过滤:
f (x, y) ≥ LOG(x, y)
(5)
其中,f(x, y)为图像的原值,原值如果小于 LOG 函数值,可
原图
边缘检测
高斯平滑
Gx 1/2 1/2 -1/2 -1/2
Gy -1/2 1/2 -1/2 1/2
选择阈值
非极大值 抑制
梯度幅值
图 1 Canny 算子处理流程
根据 Canny 算子处理流程,本文从以下方面进行改进。
3.2 高斯滤波核设计
Canny 算子首先用二维高斯函数的一阶导数,对图像进
行平滑,二维高斯函数为:
图像边缘增强后的图为:
f "(x, y) = f '(x, y) ⊗ G(x, y)
(8)
3.3 梯度幅值计算的改进
传统 Canny 算法利用 2×2 邻域一阶偏导的有限差分来计
算平滑后图像 f”(x, y)各点处的梯度幅值和梯度方向,点(i, j)
处水平和垂直 2 个方向的偏导数 Gx(i, j)和 Gy(i, j)分别为:
值 M(i, j)和梯度方向 θ(i, j)用梯度矢量根据直角坐标到极坐
标的坐标转化公式来计算,则此时点(i, j)处的梯度幅值和梯
度方向分别为:
M (i, j) = Gx (i, j)2 + Gy (i, j)2
(11)
θ (i, j) = arctan(Gy (i, j) / Gx (i, j))
Algorithm of Edge Detection Based on LOG and Canny Operator
HE Qiang, YAN Li
(School of Computer Science and Communication Engineering, Jiangsu University, Zhenjiang 212013, China)
相关文档
最新文档