边缘提取算法的理论分析与应用研究
摘要:图像边缘是分析理解图像的基础,对图像边缘提取算法及应用的深入研究必将推动图像处理、模式识
别、计算机视觉等领域的进一步发展。本文对常见的几种边缘提取算法进行理论上的分析和实验应用的研
究,从而对每一种算子应用场合通过实验情况进行说明。
关键词:图像处理,边缘提取,应用研究
1 理论基础
图像边缘提取的实质是采用某种算法提取图像中研究对象与背景间的交界线及对象与对象的分界线。
由图像边缘的定义可知:图像的边缘是图像灰度函数的奇异点和突变点,也就是图像灰度发生急剧变化的
区域。图像灰度的变化情况可以用图像灰度函数的梯度来反映,因此图像的边缘提取算法可以由图像局部
微分技术来得到。根据图像边缘的特征和梯度理论,众多学者在研究图像处理时提出了许多现在被认为是
传统经典的边缘提取算子。设
f
(x, y)
f
x
i
f
y
j
)
f x y i
x
( ,
f
y
( ,
)
x y j
为图像灰度函数 f ( x,y)的梯度,∇f( x,y)中包含局部灰度的变化信息。定义
( ,
E x y
)
f
2
x
( ,
x y
)
f
2
y
( ,
x y
)
为梯度 ∇ f( x,y)的幅值,E ( x,y)可以用作边缘提取算子。为简化计算将 E( x,y)
定义为偏导数 ( ,
xf x y 、
)
yf
( ,
x y
)
的绝对值之和
( ,
E x y
)
|
f
x
(x, y) |
|
f
y
(x, y) |
(1)
(2)
(3)
以上述理论为依据,涌现了许多经典的边缘提取算法,如、Roberts 边缘提取算法、Sobel 边缘提取算法、
Prewitt 边缘提取算法、Canny 边缘提取算法 Laplacian 边缘提取算法。
2 各种边界算法的数学模型
2.1
Sobel 算子
Sobel 算子是滤波算子的形式来提取边缘。X,Y 方向各用一个模板,两个模板组合起来构成 1 个梯度
算子。X 方向模板对垂直边缘影响最大,Y 方向模板对水平边缘影响最大。
1
0
1
2
0
2
1
0
1
1 0
2 0
1 0
1
2
1
图 1 sobel 算子模板
2.2
robert 算子
Robert 算子是一种梯度算子,它用交叉的差分表示梯度,是一种利用局部差分算子寻找边缘的算
子,对具有陡峭的低噪声的图像效果最好:
( , )
g i
j
[
f
(
i
1,
j
1)
f
( , )]
i
j
2
[
f
(
i
1, )
j
f
( ,
i
j
1)]
2
(4)
模板如图:
1
0
0
1
0
1
1 0
图 2 robert 算子模板
2.3
prewitt 算子
prewitt 算子是加权平均算子,对噪声有抑制作用,但是像素平均相当于对图像进行地同滤波,所以
prewitt 算子对边缘的定位不如 robert 算子。模板如图;
1
1
1
1
1
1
1
1
0 0
1
1
1
0
1
1
0
1
图 3
prewitt 算子模板
2.4
Canny 边缘检测法
Canny 边缘检测是一种比较新的边缘检测算子,具有很好的边缘监测性能,在图像处理中得到了越来
越广泛的应用。它依据图像边缘检测最优准则设计 canny 边缘检测算法:
(1)首先用 2D 高斯滤波模板进行卷积以消除噪声
( 2 ) 利 用 导 数 算 子 找 到 图 像 灰 度 地 沿 着 两 个 方 向 的 偏 导 数
(
G G
,
x
)
y
, 并 求 出 梯 度 的 大 小 :
(3)利用(2)的结果计算出梯度的方向
(4)一旦知道了边缘的方向,就可以把边缘的梯度方向大致分为四种:水平、竖直、45 度方向、135 度方
向。通过梯度的方向,就可以找到这个像素梯度方向的邻接像素。
(5)遍历图像,若某个像素的灰度值与其梯度方向上前后两个像素的灰度值相比不是最大的,那么这个像
素值置为 0,即不是边缘。
(6)使用累计直方图计算两个阈值,大于高阈值的一定是边缘,小于低阈值的一定不是边缘,介于之间的,
看这个像素的邻接像素中有没有超过高阈值的边缘像素,如果有的话那么它就是边缘了,否则它就不是边
缘。
2.5
Laplacian 算子
拉普拉斯高斯算子是一种二阶导数算子,将在边缘处产生一个陡峭的零交叉。前面介绍的几种梯度法
具有方向性,不能对各种走向的边缘都具有相同的增强效果。但是 Laplacian 算子是各向同性的,能对任
何走向的界线和线条进行锐化,无方向性。这是拉普拉斯算子区别于其他算法的最大优点。
对一个连续函数 (i, j)
f
,它在位置(i,j)的拉普拉斯算子定义如下:
在图像边缘检测中,为了运算方便,函数的拉普拉斯高斯算子也是借助模板来实现的。其模板有一个基本
要求:模板中心的系数为正,其余相邻系数为负,所有系数的和应该为零。
0
1
0
1
4
1
0
1
0
1
1
1
1
8
1
1
1
1
图 4 Laplacian 算子模板
3 边缘检测实验分析与结果比较
3.1 结果显示
图 5 不同算子的边缘提取结果
3.2 实验分析与结果比较
Roberts 算法对具有陡峭的低噪声的图像处理效果较好,但是利用 roberts 算子提取边缘的结果是边
缘比较粗,因此边缘的定位不是很准确。Sobel 算法对灰度渐变和噪声较多的图像处理效果较好,sobel 算
子对边缘定位不是很准确,图像的边缘不止一个像素。Prewitt 算子检测方法对灰度渐变和噪声较多的图
像处理效果较好,但边缘较宽,而且间断点多。Laplacian 算法对噪声比较敏感,所以很少用该算子检测边
缘,而是用来判断边缘像素视为与图像的明区还是暗区, Laplace 算子是一种各向同性算子,在只关心边
缘的位置而不考虑其周围的像素灰度差值时比较合适。Laplace 算子对孤立像素的响应要比对边缘或线的
响应要更强烈,因此只适用于无噪声图象。存在噪声情况下,使用 Laplacian 算子检测边缘之前需要先进
行低通滤波。Canny 方法不容易受噪声干扰,能够检测到真正的弱边缘。优点在于,使用两种不同的阈值
分别检测强边缘和弱边缘,并且当弱边缘和强边缘相连时,才将弱边缘包含在输出图像中。
部分代码附录
a=imread('luna.png');
axes(handles.axes1);
Imshow(a);
x=rgb2gray(a);
y1=edge(x,'roberts');
y2=edge(x,'sobel');
y3=edge(x,'prewitt');
h1=fspecial('laplacian')
y4=imfilter(x,h1);
y5=edge(x,'canny');
axes(handles.axes2);
Imshow(y1);
axes(handles.axes3);
Imshow(y2);
axes(handles.axes4);
Imshow(y3);
axes(handles.axes5);
Imshow(y4);
axes(handles.axes6);
Imshow(y5);
参考文献
[1] 肖梅, 韩崇昭, 张雷. 基于多尺度轮廓结构元素的数学形态学边缘检测.西安交通大学学报, 2005,
39(6):659-660.
[2] 白 相 志 , 周 付 根 . 基 于 改 进 形 态 学 算 子 的 多 尺 度 边 缘 检 测 . 中 国 图 像 图 形 学 报 , 2007,
12(9):1610-1613.
[3] 俞磊, 吴立德. 边缘检测中断边、伪边与结构点的处理. 模式识别与人工智能, 1995, 8(2):165-170.
[4] 张殿业.论 ITS 发展阶段的技术模式.中国公路学报, 2000,13(2):80-82.
[5] 曹建农.自动检测违章车辆的方法.长安大学学报(自然科学版), 2005,25(1):64-68.