1、 数字图像出技术的迅猛发展,使其应用前景的得到了不可限量的扩展。如今各行各业都在积极发展与图像相关的技术,数字图像处理逐渐凸显出其魅力。其应用如医学影像,航天航空,无人驾驶,自动导航,工业控制,导弹制导,文化艺术等。边缘检测技术在图像处理和计算机视觉等领域起着重要的作用,是图像分析,模式识别,目标检测与分割等的前期处理。前期边缘检测的好坏,直接影响后期更高级处理的精度。 一. 图像边缘检测概述 1. 边缘的含义 在数字图像中,边缘是指图像局部变化最显著的部分,边缘主要存在于目标与目标,目标与背景之间,是图像局部特性的不连续性,如灰度的突变、纹理结构的突变、颜色的突变等。尽管图像的边缘点
2、产生的原因各不相同,但他们都是图形上灰度不连续或灰度急剧变化的点,图像边缘分为阶跃状、斜坡状和屋顶状。 2. 边缘检测的基本方法 一般图像边缘检测方法主要有如下四个步骤: (1)图像滤波:传统边缘检测算法主要是基于图像强度的一阶和二阶导数,但导数的计算对噪声很敏感,因此必须使用滤波器来改善与噪声有关的边缘检测器的性能。需要指出的是,大多数滤波器在降低噪声的同时也造成了边缘强度的损失,因此,在增强边缘和降低噪声之间需要一个折衷的选择。 (2)图像增强:增强边缘的基础是确定图像各点邻域强度的变化值。增强算法可以将邻域(或局部)强度值有显著变化的点突显出来。边缘增强一般是通过计算梯度的幅值
3、来完成的。 (3)图像检测:在图像中有许多点的梯度幅值比较大,而这些点在特定的应用领域中并不都是边缘,所以应该用某种方法来确定哪些点是边缘点。最简单的边缘检测判断依据是梯度幅值。 (4)图像定位:如果某一应用场合要求确定边缘位置,则边缘的位置可在子像素分辨率上来估计,边缘的方位也可以被估计出来。 3.边缘检测算子 边缘检测算子有许多种,在这里我们只讨论LOG边缘检测算子和CANNY边缘检测算子。 边缘检测算子是一组用于亮度函数中定位变化的非常重要的局部图像预处理方法,边缘是亮度函数发生急剧变化的位置。 边缘是赋给单个像素的性质,用图像函数在该像素一个邻域处的特性来计算。它是一个具
4、有幅值(强度)和方向的矢量。边缘的幅值是梯度的幅值,边缘的方向是梯度方向旋转—90度的方向。梯度方向是函数最大增长的方向。 (1)LOG边缘检测算子 在20世纪70年代,Marr理论根据神经生理学实验得出了以下结论:物体的边界是将亮度图像与其解释连接起来的最重要线索。边缘检测技术在当时是基于很小邻域的卷积,只对特殊图像效果好。这些边缘检测子的主要缺点是它们依赖物体的大小且对噪声敏感。 基于二阶导数过零点的边缘检测技术探究了阶跃边缘对应于图像函数陡峭的变化这一事实。图像函数的一阶导数在对应于图像边缘的位置上应该取得极值,因此二阶导数在同一位置应该为0;而寻找过零点位置比起极值来得更容易和更
5、准确。 关键的问题是如何稳定地计算二阶导数。一种可能性是首先平滑图像(减小噪声),再计算二阶导数。在选择平滑滤波器时,需要满足两个标准:第一,滤波器应该是平滑的且在邻域中大致上是有限带宽的,以便减少会导致函数变化的可能频率数。第二,空间定位的约束要求滤波器的响应应来自于图像中邻近的点。这两个标准时矛盾的,但是可以通过使用高斯分布同时得到优化。在实践中,需要准确地考虑优化的含义。 2D高斯平滑算子Gx,y(也称为高斯滤波器或简单地称为高斯)由下式给出: Gx,y=e-x2+y22σ2 其中x,y是图像坐标,σ是关联的概率分布的标准差。有时用带有规范化因子的公式来表达: Gx,y=12π
6、σ2e-x2+y22σ2 或 Gx,y=12πσe-x2+y22σ2 标准差σ是高斯滤波器的唯一参数,它与滤波器操作邻域的大小成正比。离算子中心越远的像素影响越小,离中心超过3σ的像素影响可以忽略不计。 我们的目标是得到平滑后2D函数f(x,y)的二阶导数。我们知道Laplace算子∇2给出了二阶导数且是各向同性的。那么高斯平滑后的图像f(x,y)的Laplacian可以表示为: ∇2Gx,y,σ*f(x,y) 由于所涉及算子的线性性,微分和卷积运算顺序可以交换: ∇2G(x,y,σ)*f(x,y) 由于高斯滤波器的导数∇2G与所考虑的图像无关,故它可以事先解析地计算出来。这样
7、复合运算的复杂度降低了。为了简单起见,我们用替代公式r2=x2+y2,其中r表示离原点的距离;这是可行的,因为2D高斯是圆形对称的。经过替换,2D高斯变为1D函数,更容易进行微分: Gr=e-r22σ2 这样一阶导数G'(r)是: G'r=-1σ2re-r22σ2 二阶导数G’‘(r)即LOG是: G''r=1σ2(r2σ2-1)e-r22σ2 返回到原来的坐标系x,y并引入一个规范化乘系数c,我们就得到LOG算子的掩膜: hx,y=c(x2+y2-σ2σ4)e-x2+y22σ2 其中c将掩膜元素的和规范为0。反过来的LOG算子由于其形状常被称为墨西哥草帽。 用这种方法寻找二
8、阶导数是很稳定的。高斯平滑有效地抑制了距离当前像素3σ范围内的所有像素的影响,这样Laplace算子就构成了一种反映图像变化的有效而稳定的度量。 在图像与∇2G卷积之后,在卷积后的图像中越过0水平的位置对应于边缘位置。与经典的小尺度边缘算子相比,这种方法的优点是考虑了围绕当前像素的一个更大的邻域,较远点的影响根据高斯的σ减小。在单独的阶跃边缘的理想情况下,σ的变化并不影响过零点的位置。 而σ越大卷积掩膜也变得越大,例如σ=4时需要约40像素宽的掩膜。幸运的是,∇2G算子存在一个可分离的分解,使计算得到可观的加速。 高斯平滑的实际含义是可以可靠地发现边缘。如果只需要全局性的显著边缘,可以增
9、大高斯平滑滤波器的标准差σ,使得比较不明显的特征得以抑制。 另一方面,∇2G算子可以非常有效地用如下掩膜的卷积来近似,该掩膜是两个具有明显不同σ的高斯平滑掩膜的差。这种方法被称为difference of Gaussians,缩写为DOG。甚至有时还使用如下的更为粗略的近似,即使图像经过两次具有不同大小掩膜的平滑算子的滤波。 在实现过零点边缘检测子时,试图检测LOG或DOG图像的0点的努力不可避免地遭到失败,而阈值化LOG或DOG图像和将过零点定义为靠近0的某个区间的这些简单方法,在最好的情况下只能给出分段不连续的边缘,要想最终得到良好性能的二阶导数边缘检测子,必须实现真正的过零点检测子。
10、 传统的二阶导数过零点技术也有缺点。第一,对形状作了过分的平滑。第二,它有产生环形边缘的倾向。 (2)CANNY算子 Canny提出了一种新的边缘检测方法,它对受白噪声影响的阶跃型边缘是最优的。Canny检测子的最优性与以下三个标准有关: 第一, 检测标准:不丢失重要的边缘,不应有虚假的边缘。 第二,定位标准:实际边缘与检测到的边缘位置之间的偏差最小。 第三,单响应标准:将多个响应降低为单个边缘响应。这一点被第一个标准部分地覆盖了,因为当有两个响应对应于单个边缘时,其中之一应该被认为是虚假的。这第三个标准解决受噪声影响的边缘问题,起抵制非平滑边缘检测子的作用。 Canny
11、推导出新的检测算子是基于如下的几个概念: 1.边缘检测算子是针对1D信号和前两个最优标准表达的。用微积分方法可以得到完整的解。 2.如果加上第三个标准(多个响应),需要通过最优数值优化的方法得到最优解。 3.然后将边缘检测算子推广到二维情况。阶跃边缘由位置,方向和可能的幅度(强度)来确定。可以证明将图像与一对称2D高斯做卷积后再沿梯度方向(与边缘方向垂直)微分,就构成了一个简单而有效地方向算子。假设G是2D高斯,我们想将图像与算子Gn做卷积,Gn是G沿n方向的一阶方向导数。 Gn=∂G∂n=n∙∇G 方向n应与边缘垂直。尽管该方向事先不知道,但是基于平滑梯度方向的一个可靠的估计是可以
12、得到的。如果f是图像,边缘的法向n可以按下式估计: n=∇(G*f)∇(G*f) 边缘位于Gn与图像f卷积在n方向上的局部最大位置处 ∂∂nGn*f=0 用Gn=∂G∂n=n∙∇G代入,得到, ∂2∂n2G*f=0 这告诉我们如何在与边缘垂直的方向上寻找局部最大值;该算子常被称为非最大值抑制。 由于卷积和微分是满足结合律的运算,故我们可以首先将图像f与一对称的高斯G做卷积,再计算出方向n的估计值,计算二阶方向导数。边缘的强度(图像亮度函数f的梯度幅值)按下式计算 Gn*f=∇(G*f) 4.由于噪声引起的单个边缘的虚假响应通常造成所谓的“纹状”问题。一般而言,该问题在边缘检测
13、中是非常普遍的。边缘检测算子的输出通常要做阈值化处理,以确定哪些边缘是突出的。纹状是指边缘轮廓断开的情形,是由算子输出超出或低于阈值的波动引起的。纹状现象可以通过滞后阈值化处理来消除。如果边缘响应超出一高阈值时,这些像素点构成了某个尺度下的边缘检测算子的确定的输出。个别的弱响应通常对应于噪声,但是如果这些点是与某些具有强响应的点连接时,它们很可能是图像中真实的边缘。这些连接的像素点在当其响应超过一低阈值时,就被当作边缘像素。这里的低阈值和高阈值需要根据对信噪比的估计来确定。 5.算子的合适尺度取决于图像中所含的物体情况。解决该未知数的方法是使用多个尺度,将所得信息收集起来。不同尺度的Cann
14、y检测子由高斯的不同标准差σ来表示。有可能存在几个尺度的算子对边缘都给出突出的响应(即信噪比超过阈值);在这种情况下,选择具有最小尺度的算子,因为它定位最准确。 Canny提出了特征综合方法。首先标记出所有由最小尺度得到的突出边缘。假定具有较大尺度σ的算子的边缘根据它们合成得到(即,根据从较小的尺度σ收集到的证据来预测较大尺度σ应具有的作用效果),然后将合成得到的边缘响应与较大尺度σ的实际边缘响应做比较。仅当它们比通过合成预测的响应显著地强时,才将其标记为边缘。 这一过程可以对一个尺度序列重复进行,通过不断加入较小的尺度中没有的边缘点的方式积累起来形成边缘图。 Canny检测子构成了边缘
15、检测技术的一种复杂的却是主要的贡献。最优边界检测概念的最新发展关注于比阶跃和斜坡型边缘更为一般的边缘的最优检测问题,而阶跃和斜坡型边缘原本是Canny和其他早期方法考虑的问题。 二. 实验及结果分析 在实验中使用了三副图像作为边缘检测的对象,分别是棋盘格chess以及人物头像lena和自然景物tree。另外,实验中的参数如下:对图像加水平分别为0.0001和0.0005的高斯白噪声;选择的LOG边缘检测子的参数分别为th=0.25,sigma=0.6和th=0.001,sigma=3.0;选择的Canny边缘检测子的参数分别为th=[0.02,0.25],sigma=0.6和th=[0.0
16、01,0.25],sigma=3.0。 1.对lena以及chess图像的边缘检测结果 (1)噪声水平为σ=0.0001 图1-1-1 原灰度图 图1-1-2 加噪图 图1-1-3 log,th=0.25,sigma=0.6 图1-1-4canny, th=[0.02,0.25],sigma=0.6 图1-1-5 log,th=0.001,sigma=3.0 图1-1-6 canny,th=[0.001,0.25],sigma=3.0 图1-2-1 原灰度
17、图 图1-2-2 加噪图 图1-2-3 log,th=0.25,sigma=0.6 图1-2-4canny, th=[0.02,0.25],sigma=0.6 图1-2-5 log,th=0.001,sigma=3.0 图1-2-6 canny,th=[0.001,0.25],sigma=3.0 (2)噪声水平为σ=0.0005 图2-1-1 原灰度图 图2-1-2 加噪图 图2-1-3 log,th=0.25,sigma=0.6
18、 图2-1-4 canny, th=[0.02,0.25],sigma=0.6 图2-1-5 log,th=0.001,sigma=3.0 图2-1-6 canny,th=[0.001,0.25],sigma=3.0 图2-2-1 原灰度图 图2-2-2 加噪图 图2-2-3 log,th=0.25,sigma=0.6 图2-2-4 canny, th=[0.02,0.25],sigma=0.6 图2-2-5 log,th=0.001,sigma=3.0
19、 图2-2-6 canny,th=[0.001,0.25],sigma=3.0 对lena图像的检测结果如图1-1-3到图1-1-6以及图2-1-3到图2-1-6所示。实验中分别用两种算子在0.5和3.0两个尺度下对lena图像进行检测。对于LOG算子,在小尺度下,对图像中的纹理丰富的头发,帽子上的装饰刻画的比较细致,但同时丢失了背景中左侧的垂直边缘和右侧中部的对比度很弱的横向边缘;在大尺度上,这些背景边缘得到了体现,但同时对于那些丰富的纹理区,检测结果出现了丢失和偏移。 从Canny算子的检测结果来看,它对于图像中的纹理丰富的地方和背景处的边缘,以及对比度弱的边缘都能得到很好的检出率;在
20、大尺度上同样也丢失了很多细节,只表现出一些轮廓特征。 对chess图像的检测结果如图1-2-3到图1-2-6以及图2-2-3到图2-2-6所示。从检测的结果看,随着尺度的增大,竖直边缘开始间断,直到消失,而水平方向边缘在低尺度时很好的保留在其真实位置,尺度增大后LOG算子开始检测到一些假边缘。在尺度为0.5时,边缘点位置保留的比较准确;在尺度为3.0时,对噪声的抑制得到改善 ,但是尺度的增大,使得边缘的位置发生了偏移,并且出现了一些假边缘。 通过对比可以发现,在尺度为0.5时,Canny算子虽然对各种边缘都有较好的检出率,但是检测出的边缘点与原始图像的位置有一定范围的误差。LOG算子检测出
21、的结果,在位置和组织结构上都与原始图像比较一致,从主观上比较容易辨认其中的条纹、结构。但是LOG算子却更容易受到噪声的干扰,检测到一些由噪声引起的边缘。 2.对自然图像tree的边缘检测结果 (1) 噪声水平为σ=0.0001 图3-1-1 原灰度图 图3-1-2 加噪图 图3-1-3 log,th=0.25,sigma=0.6 图3-1-4 canny, th=[0.02,0.25],sigma=0.6 图3-1-5 log,th=0.001,sigma=3.0 图3-1-6 canny
22、th=[0.001,0.25],sigma=3.0 (2) 噪声水平为σ=0.0005 图3-2-1 原灰度图 图3-2-2 加噪图 图3-2-3 log,th=0.25,sigma=0.6 图3-2-4 canny, th=[0.02,0.25],sigma=0.6 图3-2-5 log,th=0.001,sigma=3.0 图3-2-6 canny,th=[0.001,0.25],sigma=3.0 从以上的检测结果中可以看出,相同尺度下的LOG算子总是能比Canny算子检测出更多的
23、细节,从地上以及书上的树叶等细节丰富的结构组织可以看出,而相对于此,Canny算子却总是能对真正比较显著地边缘给出检测,如树干等边缘。LOG边缘检测子是采用二阶导数过零点的检测方法,故对噪声更敏感一些,因此从抑制噪声方面来讲,Canny边缘检测子不容易受到噪声的干扰,而相同尺度下LOG算子却容易受到噪声的干扰,抑制噪声的能力要弱一些。另外,由于Canny边缘检测子采用两种不同的阈值分别检测强边缘和弱边缘,并且当弱边缘和强边缘相连时,才将弱边缘包含在输出图像中,故而Canny算子更能检测出真正的弱边缘,但是Canny边缘检测子检测出的边缘的位置会有一定范围的误差,LOG边缘检测子相对比较容易受到
24、噪声干扰,会检测出更多的细节,也容易检测出一些由于噪声引起的假边缘,但是LOG边缘检测子对边缘位置的检测还是很准确的。在大尺度上的算法都比较好的检测出树干的边缘,而对周围的纹理区域的刻画都失去了组织结构上的特征。 3.实验总结 LOG算子容易受尺度的影响,不同尺度下的边缘点要用不同尺度的LOG算子检测,Canny 算子受尺度的影响不太明显,不同尺度下,边缘点的位置都有偏差,但几乎相同; LOG算子对噪声的抑制能力随着尺度的增加而增加,相同尺度下的Canny算子比LOG算子的抗噪声能力强,而LOG算子比Canny算子的边缘点准确;在尺度选择合适的情况下,LOG算子对图像边缘点检测的位置非常准
25、确,能够保留边缘点比较细致的组织结构,而Canny算子对图像边缘检出率比较高,包括纹理区域,以及对比度很弱的边缘点,但是对这些边缘点的组织结构刻画得不是特别细致,边缘点的位置有小范围的偏差。 三.参考文献 1. D.Marr and E. Hildreth, Theory of Edge Detection, Proc. R. Soc. Lond. B207:187-217. 2. John Canny, A Computational Approach to Edge Detection, IEEE Trans. PAMI, 8(6):679-698. 3. James J. Clark, Authenticating Edges Produced by Zero-crossing Algorithms, IEEE T. PAMI, 11(1), 1989, pp.43-57.






