基于MATLAB的数字图像边缘检测算子的实验对比研究

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Key wor ds: image processing; edge detection; operators; MATLAB
MATLAB 是 当 今 最 流 行 的 一 种 高 级 科 学 与 工 程 计 算 软 件, 是进行数据分析和算法开发的集成开发环境, 它提供了 强 大 的 科 学 运 算 、灵 活 的 程 序 设 计 流 程 、高 质 量 的 图 形 可 视 化界面设计、便捷的与其它程序和语言接口的功能。在 Matlab 图像处理工 具 箱 中 , 提 供 了 edge 函 数 利 用 多 种 算 子 来 检 测 灰 度 图 像 的 边 缘 。本 文 通 过 对 各 种 边 缘 检 测 方 法 的 对 比研究, 选取几种具有代表性的边缘检测算法进行详细地分 析比较, 给出了这些算法的适用领域和适用范围, 为人们使 用这些算法提供实验依据。
算子是标量算子, 是各向同性的, 能对任何走向的界线和线条
进行锐化。这是拉普拉斯算子区别于其他算法的最大优点。
一个二维图像 f (x, y)的拉普拉斯算子定义为:
▽2f= )2f + )2f
(6)
)2x2 )y2
在图像处理过程中, 函数的拉普拉斯算子也是借助模板
来实现的。其模板的基本特征是中心的系数为正, 其余相邻
图 1 图像边缘及其导数曲线规律 从图 1 可以看出, 灰度剖面图的一阶导数在图像的突变
处产生一个阶跃。因此, 可以用一阶导数的幅度值检测边缘
的存在, 根据二阶导数的幅度变化情况可以确定边缘的位
置。对于数字图像来说, 通常利用差分来近似微分进行计算。
(一 )梯 度 算 子
对于数字图像, 梯度是一阶导数的二维等效形式, 因此
系数为负, 所有系数之和为零。常用拉普拉斯算子的模板如
0#
$
-1
0& ’
-#
$

-1
-1
& ’
$

$

下:
-$
$


-1
’ ’

-$
$


-1
’ ’
$

$

1$$
%
-1
0 ’’ (
-$$
%

-1
-1
’’ (
但是, 由于拉普拉斯算子检测方法对噪声比较敏感, 而
且不能提供边缘方向信息, 容易产生双边缘, 所以一般很少
像在(i, j)点处的法向矢量(正交于边缘方向)。
当一个像素满足以下三个条件时, 则被认为是图像的边
缘点:
(1) 该点的边缘强度大于沿该点梯度方向的两个相邻像
素点的边缘强度;
(2)与该点梯度方向上相邻两点的方向差小于 45°;
(3) 以该点为中心的 3×3 领域中的边缘强度极大值小于
某个阈值。
条 件(1)(2)的 作 用 是 将 在 梯 度 方 向 上 的 两 个 相 邻 像 素 从
边缘的中心位置。
3.唯 一 性 。 对 于 单 个 边 缘 点 仅 有 一 个 响 应 。
根 据 以 上 3 个 准 则 , Canny 推 导 出 最 优 边 缘 检 测 算 子 的
一个近似实现是: 边界点位于图像被高斯函数平滑后的梯度
幅度的极大值点。
通过 Canny 算子的计算, 可以计算出数字图像边缘的边
Exper imental Compar isons of MATLAB- based Oper ator s for Edge Detection in Digital Image
Nong Haixiao
(Dept. of Mathematics & Computer Science, Nanning Teachers College, Chongzuo, Guangxi 532200, China)
测的 MATLAB 程序代码为:
>>Clear;close all;
>>I = imread('gate.jpg');
>>BW1 = edge(I,'roberts');
第2期
基于 MATLAB 的数字图像边缘检测算子的实验对比研究/农海啸
2008 年 6 月
>>BW2 = edge(I,'Prewitt'); >>BW3 = edge(I,'sobel'); >>BW4 = edge(I,'log'); >>BW5 = edge(I,'canny'); >>subplot(3,2,1),imshow(I),title(' 原图 '); >>subplot(3,2,2),imshow(BW1),title(' roberts' ); >>subplot(3,2,3),imshow(BW2),title(' Prewitt' ); >>subplot(3,2,4),imshow(BW3),title(' sobel' ); >>subplot(3,2,5),imshow(BW4),title(' log' ); >>subplot(3,2,6),imshow(BW5),title(' canny' ); 给原始图像加入高斯噪声和椒盐噪声的程序代码为: >>Clear;close all; >>I = imread('gate.jpg'); >>J1 = imnoise(I, 'gaussian'); >>J2 = imnoise(I,'salt & pepper'); 各种算子对 gate 原始图像检测的效果如(1- a) ̄(1- f)图所示:
利用高斯函数的可分性, 将▽G 的两个滤波器卷积模板分
解为两个一维的行列滤波器:
)G )x
=kxexp(
- x2 2σ2
)exp(-
y2 2σ2

(9)
)G )y
=kxexp(
- y2 2σ2
)exp(-
x2 2σ2

(10)
将(9)和 (10)分别与图像 f (x, y)卷积, 得到:
Ex=
)G )x
摘 要 : 数字图像处理中几种常见的边缘检测算子, 通过 MATLAB 进行实现; 各个算子的边缘检测效果及抗噪能力分析, 得 出 了 各 自 的 优
缺点和适用范围。
关键词: 图像处理; 边缘检测; 算子; MATLAB
中图分类号: TP391
文献标识码: A
文章编号: 1008- 696X(2008)02- 0129- 03
第 25 卷第 2 期 2008 年 6 月
南宁师范高等专科学校学报 JO URNAL O F NANNING TEACHERS CO LLEGE
VOL.25 NO.2 Jun.2008
基于 MATLAB 的数字图像边缘检测 算子的实验对比研究
农海啸
(南宁师范高等专科学校 数学与计算机科学系, 广西 崇左 532200)
· 130 ·
得到广泛应用的一种比较新的边缘检测算子。
Canny 认 为 一 个 优 良 的 边 缘 检 测 算 子 应 具 有 以 下 3 个
特性:
1.好的 检 测 性 能 。 即 不 漏 检 真 实 边 缘 , 也 不 把 非 边 缘 点
作为边缘点检出, 使输出的信噪比最大。
2.好 的 定 位 性 能 。即 检 测 出 的 边 缘 点 要 尽 可 能 靠 近 实 际
$


1& ’
$
’$

中定义其微分运算。模板如下:
0$
$


’’和
-$
$


1’ ’
$
’$

1 1 1 - 1 0 1 $$
’’ $$
’’
%
(%
(
3.Sobel 算子
Sobel 算 子 与 Prewitt 算 子 的 区 别 仅 在 于 选 用 的 模 板 不
-#
$



-1
& ’
-#
$


1& ’
缘强度和边缘的梯度方向, 为后续边缘点判断提供依据, 其
计算表达式为: Gn=n▽G
(8)
式 中 : n= ▽G*f(x, y) ; *▽G*f(x, y)*
# $
)G
$ $
)x
▽ G=
$
$ $
)G
$
$ %
)y
& ’ ’ ’
’’; n 表 示 边 缘 的
’ ’ ’ (
方向, ▽G 表示梯度矢量, ▽G*f(x, y) 表示边缘强度。
二 、边 缘 检 测 实 验 效 果
为 了 分 析 上 述 几 种 算 子 的 效 果 , 我 们 用 MATLAB 的
edge 函 数 对 gate 原 始 图 像 以 及 分 别 加 入 了 高 斯 噪 声 和 椒 盐
噪 声 后 的 gate 图 像 进 行 检 测 。 对 gate 原 始 图 像 进 行 边 缘 检
通过求取梯度可以判断边缘点。对于一个连续函数 f(x, y)在

" # (x, y)处的梯度定义如下: ▽f =
!f !x
!f !y
= "Gx Gy $T
(1)Fra Baidu bibliotek
梯度是一个向量, 其幅值和相位分别为:
%2 2
▽f= ▽f = Gx +Gy
(2)
a(x, y)=arctan(Gx / Gy)
(3)
对于数字图像, 通 常 以 两 相 邻 点 之 间 灰 度 差 来 近 似 Gx
(- x2+y2 )是卷积核。其常用的 5×5 模板为: 2σ2
-#
$

-4
-4
-4
-2
& ’
$

-$
$




-4
’ ’
$

-$
$


24

-4
’ ’
$

-$
$




-4
’ ’
$

-$$
%

-4
-4
-4
-2
’’ (
(三)Canny 算子
Canny 边 缘 检 测 算 子 是 近 年 来 在 许 多 数 字 图 像 领 域 中
! " ! " - 1 0 0 1
该算子的模板为:

0 1 -1 0
分别利用上述模板对图像进行卷积, 然后将两次卷积结
果进行求和, 就可以得到 Roberts 算子对图像进行边缘检测
的结果。
2.Prewitt 算子
Prewitt 算子是加权平均算子, 是在一个奇数大小的模板
-#
$



-1
& ’
-#
一 、常 用 边 缘 检 测 算 子 的 理 论 分 析 图像的边缘是图像的基本特征之一, 人们对目标的识别 主 要 是 依 靠 边 缘 。图 像 的 边 缘 就 是 指 图 像 灰 度 发 生 空 间 突 变 的 像 素 的 集 合 。灰 度 的 突 变 一 般 常 用 导 数 来 描 述 和 检 测 。常 见的灰度突变主要有 3 种: 阶跃状、斜坡状和屋顶状。
候选边缘点中剔除, 条件(3)的作用是消除虚假的边缘点。
Canny 边缘检测算子步骤如下:
step1:用 高 斯 滤 波 器 对 图 像 进 行 滤 波 消 噪 ;
step2:用一阶偏导的有限差分来计算梯度的幅值和方向;
step3:对 梯 度 幅 值 进 行 非 极 大 值 抑 制 ;
step4:用 双 阈 值 算 法 检 测 和 连 接 边 缘 。
为计算机网络及应用。
· 129 ·
第2期
南宁师范高等专科学校学报
2008 年 6 月
大小和元素值不同。下面介绍一下几种比较常见的梯度算子。
1.Roberts 算子
Roberts 算子 是 一 种 交 差 微 分 算 子 , 用 交 叉 的 差 分 表 示
梯度, 它的两个方向的模板是的 2×2, 是 最 简 单 的 梯 度 算 子 。
经提出了许多不同大小、不同系数的算子, 例如: Roberts 算
子, Prewitt 算子, Sobel 算子, 等等。它们的区别主要是模板的
收稿日期: 2008- 02- 03
作者简介: 农海啸( 1972—) , 男, 广西大新县人, 南宁师范高等专科学校数学与计算机科学系助教, 广西师范大学在读硕士研究生, 主要研究方向
直接使用拉普拉斯算子进行边缘检测。为了克服上述不足,
可先用一个高斯型二维低通滤波器对图像进行平滑, 然后再
对 图 像 求 拉 普 拉 斯 算 子 。 这 种 方 法 的 算 子 称 为 Laplace-
Gauss 算子(LOG), 表述为: ▽2G=▽2[g(x, y)]*f(x, y)
(7)
! " 式 中 : G 为 高 斯 函 数 , ▽2G=▽2[g(x, y)]=K x2+y2 - 2 exp σ2
Abstr act: Several common edge detection operators in digital processing can be achieved through MATLAB and the detection effect and anti- noise ability of each operator are analyzed to clarify the advantages and disadvantages and the scope of application.
和 Gy , 即: Δx f =f(m, n)- f(m- 1, n)
(4)
Δy f=f(m, n)- f(m, n- 1)
(5)
& $ & $ 0 0 0 - 1
上述公式采用模板表示, 则为:

-1 1 0 1
模板算子运算时采用卷积方式, 即把模板在图像上移动
并在每点计算相应的梯度值。图像处理发展到今天, 人们已
$
’$

同:
0$
$


’’和
-$
$


2’ ’
$
’$

1 2 1 - 1 0 1 $$
’’ $$
’’
%
(%
(
(二)高斯- 拉普拉斯算子(LOG)
拉普拉斯算子是一种二阶微分算子, 能在边缘处产生一
个陡峭的零交叉。前面介绍的几种梯度算子都具有方向性, 不
能对各种走向的边缘都具有相同的增强效果。但是拉普拉斯
*f
(x, y);
Ey=
)G )y
*f
(x,
y)
(11)
+ ! " A(i, j)=


Ex (i, j)+Ey (i, j) ;
a(i, j)=arctan
Ey (i, j)
(12)
Ex (i, j)
则 A(i, j)反 映 了 图 像 上(i, j)点 处 的 边 缘 强 度 , α(i, j)是 图
相关文档
最新文档