文档介绍:: .
经典边缘检测算子比较
一各种经典边缘检测算子原理简介
图像的边缘对人的视觉具有重要的意义, 一般而言,当人们看一个有边缘的物体时, 首
先感觉到的便是边缘。灰度或结构等信息的突变处称为边缘。 边缘是一个区域的结束,也是
另一个区域的开始,利用该特征可以分割图像。 需要指出的是,检测出的边缘并不等同于实
际目标的真实边缘。由于图像数据时二维的, 而实际物体是三维的, 从三维到二维的投影必 然会造成信息的丢失, 再加上成像过程中的光照不均和噪声等因素的影响, 使得有边缘的地
方不一定能被检测出来, 而检测出的边缘也不一定代表实际边缘。 图像的边缘有方向和幅度
两个属性,沿边缘方向像素变化平缓, 垂直于边缘方向像素变化剧烈。 边缘上的这种变化可
以用微分算子检测出来, 通常用一阶或两阶导数来检测边缘, 如下图所以。不同的是一阶导
数认为最大值对应边缘位置,而二阶导数则以过零点对应边缘位置。
# / 18
(6)
# / 18
(b) —阶导数
(6)
# / 18
(6)
# / 18
基于一阶导数的边缘检测算子包括 Roberts算子、Sobel算子、Prewitt算子等,在算法实
现过程中,通过|2汇21(Roberts算子)或者|3江3|模板作为核与图像中的每个像素点做卷积
和运算,然后选取合适的阈值以提取边缘。 拉普拉斯边缘检测算子是基于二阶导数的边缘检
测算子,该算子对噪声敏感。一种改进方式是先对图像进行平滑处理, 然后再应用二阶导数
的边缘检测算子,其代表是 LOG算子。前边介绍的边缘检测算子法是基于微分方法的,其 依据是图像的边缘对应一阶导数的极大值点和二阶导数的过零点。 Canny算子是另外一类边
缘检测算子,它不是通过微分算子检测边缘, 而是在满足一定约束条件下推导出的边缘检测
最优化算子。
1 Roberts (罗伯特)边缘检测算子
景物的边缘总是以图像中强度的突变形式出现的, 所以景物边缘包含着大量的信息。 由
于景物的边缘具有十分复杂的形态, 因此,最常用的边缘检测方法是所谓的“梯度检测法”。
设f (x, y)是图像灰度分布函数; s(x, y)是图像边缘的梯度值; ®(x, y)是梯度的方
1
向。则有 s(x, y) 〔f (x + n, y) - f (x, y)孑 + [f (x, y + n) - f (x, y) "2
(1)
(n=1,2,...)
毋(x, y) =tan,{[f (x, y + n) — f (x,y) ]/ [f (x + n,y) — f (x, y)]} ( 2)
式(1)与式(2)可以得到图像在(x,y)点处的梯度大小和梯度方向。 将式(1)改写为:
1
f - 2 _ 2 羽
(3)
g(x,y) ={[Jf(x, y) — Jf (x+1,y+1) +[Jf(x+1,y) — J f (x,y+1)丨}
g ( x, y称为Roberts边缘检测算子。式中对 f (x, y)等的平方根运算使该处理类似于人
类视觉系统的发生过程。事实上 Roberts边缘检测算子是一种利用局部差分方法寻找边缘的
算子,Robert梯度算子所采用的是对角方向相邻两像素值之差,所以用差分代替一阶偏导, 算子形式可表示如下:
iXf (x, y) = f(x,y) —f (x—1,y—1)
2 ( 4)
Ayf (x, y) = f(x —1,y) — f (x,y —1)
上述算子对应的两个 2x2模板如图(A)所示。实际应用中,图像中的每个像素点都用这
两个模板进行卷积运算,为避免出现负值,在边缘检测时常提取其绝对值。
1
0
0
-1
0
1
-1
0
(a) ( b)
图(A) Robert算子模板
2 Sobel (索贝尔)边缘检测算子
该算子是由两个卷积核 g1 (x, y)与g2(x, y)对原图像| f (x, y)|进行卷积运算而得到的。
其数学表达式为:
_ M N M N
S(x,y) =MAX 产送 f (m,n)g1(i —m, j — n),迟迟 f (m,n)g2(i —m, j — n) (5) «m壬 nm m3 n=4 」
实际上Sobel边缘算子所采用的算法是先进行加权平均, 然后进行微分运算,我们可以
用差分代替一阶偏导,算子的计算方法如下:
Uxf(x, y)=I f(s