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

  • 格式:pdf
  • 大小:1.27 MB
  • 文档页数:3

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

贺 强,晏 立

(江苏大学计算机科学与通信工程学院,江苏 镇江 212013)

摘 要:针对传统Canny算子抑制噪声和检测低强度边缘能力不足的问题,提出一种将LOG算子和Canny算子相结合的边缘检测方法。

采用LOG算子对图像进行噪声过滤,从以下3个方面改进Canny算子实现边缘检测:(1)设计高斯滤波核对过滤掉噪声的图像进行边缘增强,使低强度边缘更容易被检测;(2)在M×N邻域中计算梯度幅值和方向;(3)将梯度方向结合梯度幅值计算,使梯度幅值在边缘检测中更

具依据性。对增加椒盐噪声的图像进行实验,结果表明,该方法在最大程度抑制噪声的同时,能检测到更多的低强度边缘。

关键词:Canny算子;LOG算子;高斯滤波核;梯度核;梯度幅值

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)

【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 计 算 机 工 程 Computer Engineering 第37卷 第3期 Vol.37 No.3 2011年2月February 2011

·图形图像处理· 文章编号:1000—3428(2011)03—0210—03文献标识码:A 中图分类号:TP391.41

1 概述

边缘检测是图像处理领域中最基本的问题,它的解决对

于进行高层次的特征提取、特征描述、目标识别和图像理解

等有着重大的影响,因此,被广泛应用与模式识别、计算机

视觉、图像分割等众多领域。经典的边缘提取算子包括Sobel、

Roberts、Prewitt以及Laplacian、LOG等。近来,随着科学技术的发展,一些新的理论工具被运用到边缘检测中,如形

态学、统计学方法、模糊理论、遗传算法、神经网络等。

Canny算子作为一种优化的边缘检测算子,具有比较好的信噪比和检测精度,得到了广泛的应用。然而实际应用中,

对于高噪声的模糊图像,Canny算子在抑制噪声的同时往往

错过一些低强度的边缘,而一些高强度噪声被检测为边缘。

针对这些不足,国内外学者进行了很多研究,提出了许多的

改进方法。文献[1]提出一种基于二维经验模态分解(Bidimen-

sional Empirical Mode Decomposition, BEMD)的分析方法,能对图像进行多尺度分解,通过筛分过程提取出图像的细节信

息,结合Canny算子得到的边缘细致连续性好;文献[2]提出

一种基于梯度方向的检测和连接方法取代传统的双阈值法,

充分利用边缘点和噪声点在梯度方向特性上的差异,取得优

于传统Canny算子的性能;文献[3]提出基于梯度幅度直方图

和类内方差最小化动态的自动确定高低阈值的方法,提高

Canny算子的自动化性能;文献[4]利用模糊推理方法来改进边缘检测,并结合Canny算子进行边缘检测,取得很好的检

测性能。

本文从3个方面改进Canny算子,并结合LOG算子进行图像边缘检测。对于高噪声的图像,首先利用LOG算子进

行噪声过滤,通过深入研究发现,图像原值小于LOG函数值

的部分由图像上的绝大部分噪声组成,由此可以利用LOG算

子过滤掉图像上绝大部分噪声。本文设计了高斯滤波核对过

滤掉噪声的图像边缘进行边缘增强,使图像上一些低强度边

缘更容易被检测到;使用M×N的核计算梯度矢量,弥补了传

统2×2的核计算梯度矢量对于噪声敏感的问题;将梯度方向

结合到梯度幅值的计算中,实验证明该方法计算出的梯度幅

值在边缘检测中更具依据性。

2 LOG函数图像去噪 拉普拉斯算子是最常用的二阶基于导数的边缘检测算

子,它易受噪点影响,为减少对噪点敏感度,Marr和Hildreth

将高斯滤波和拉普拉斯边缘检测结合在一起,形成了LOG算

子。LOG首先进行高斯平滑,然后进行拉普拉斯运算。它对

噪点不太敏感,因为高斯函数减少噪点,并且拉普拉斯模版

使检测到假边缘的概率减到最小。

定义 设原图像为f(x, y),高斯滤波函数为G(x, y),两者

进行卷积运算,然后利用拉普拉斯算子▽2实现边缘检测,输

出的图像h(x, y),则LOG算子的推导如下:

基金项目:国家科技型中小企业技术创新基金资助项目(09C2621320

3797) 作者简介:贺 强(1984-),男,硕士研究生,主研方向:模式识别,图像处理;晏 立,教授

收稿日期:2010-06-10 E-mail:heqiangcug@163.com 第37卷 第3期 贺 强,晏 立:基于LOG和Canny算子的边缘检测算法 211 2(,)((,)(,))hxyGxyfxy=∇⊗ (1) 其中,⊗为卷积符号。▽2公式为:

22222xy∂∂∇=+∂∂ (2)

由卷积的可交换行得:

2(,)(,)(,)hxyGxyfxy=∇⊗ (3) 其中,2(,)Gxy∇即为LOG算子:

2222222421(,)(,)[1]eπ2xyxyLOGxyGxyδδδ+−+=∇=− (4)

用LOG算子处理图像时,是先用G(x, y)进行平滑处理,

然后用式(2)对图像进行二阶导数增强。

本文采用LOG函数进行噪声过滤,研究发现,LOG算

子在进行边缘检测时,能很大程度的抑制噪声。通过将图像

原值与LOG函数值进行比较,发现图像原值小于LOG函数

的部分由图像上绝大部分噪声组成,本文正是利用此原理进

行噪声过滤。

本文用下列公式对原图进行噪声过滤:

(,)(,)fxyLOGxy≥ (5) 其中,f(x, y)为图像的原值,原值如果小于LOG函数值,可

以肯定为噪声部分,因此,用式(5)过滤后的图像包含原图主

要信息并且主要的噪声部分都被过滤掉。过滤后的图像设为

f’(x, y),作为下面Canny算子处理的输入图像。

3 改进的Canny算子边缘检测

3.1 传统Canny算子原理

Canny算子[5]首先采用高斯滤波器平滑图像,根据高斯

函数的一阶偏导数计算梯度,检测梯度幅值的局部极大值,

然后用低阈值T1得到弱边缘E1,用高阈值T2得到边缘E2,

最后E1中仅保留与E2有连通关系的连通分量作为输出边缘

E。Canny算子进行边缘检测的过程如图1所示。

原图

高斯平滑

梯度幅值非极大值抑制

1/21/2-1/2-1/2GxGy选择阈值边缘检测

-1/21/2-1/21/2

图1 Canny算子处理流程

根据Canny算子处理流程,本文从以下方面进行改进。

3.2 高斯滤波核设计 Canny算子首先用二维高斯函数的一阶导数,对图像进行平滑,二维高斯函数为:

222211(,)exp(())2π2Gxyxyδδ=+ (6)

其中,δ为高斯曲线标准差,用于控制平滑程度。

对任意输入图像f(x, y),高斯平滑是一个卷积的过程:

f(x, y)⊗G(x, y)。常用的高斯算子可用3×3的核对图像平滑:

121124216121⎡⎤⎢⎥⎢⎥⎢⎥⎣⎦ 第2节通过LOG算子过滤后的图像,已经过滤掉绝大部

分噪点,这里需要对处理后的图像边缘进行增强,本文使用

下面的高斯滤波核增强图像的边缘: 11111111α−−−⎡⎤⎢⎥−−⎢⎥⎢⎥−−−⎣⎦ (7)

其中,α=2i, i=1, 2, 3。 由第2节的输入图像f’(x, y),用上面的高斯滤波核进行

图像边缘增强后的图为:

"(,)'(,)(,)fxyfxyGxy=⊗ (8)

3.3 梯度幅值计算的改进 传统Canny算法利用2×2邻域一阶偏导的有限差分来计

算平滑后图像f”(x, y)各点处的梯度幅值和梯度方向,点(i, j)

处水平和垂直2个方向的偏导数Gx(i, j)和Gy(i, j)分别为: 1(,)("[,1]"[,]"[1,1]"[1,])2xijfijfijfijfij=+−+++−+G

(9) 1(,)("[,]"[1,]"[,1]"[1,1])2yijfijfijfijfij=−+++−++G

(10) 一阶偏导数Gx(i, j)和Gy(i, j)即为梯度矢量,点的梯度幅值M(i, j)和梯度方向θ(i, j)用梯度矢量根据直角坐标到极坐

标的坐标转化公式来计算,则此时点(i, j)处的梯度幅值和梯

度方向分别为:

22(,)(,)(,)xyMijijij=+GG (11)

(,)arctan((,)/(,))yxijijijθ=GG (12)

由图1可以看出,传统Canny算子判定边缘的唯一依据