有些论文和著作中将边缘检测分类为低层次特征提取,也就不需要任何形状信息(空间关系的信息)就可以从图像中自动提取的过程。阈值处理就是作为点运算的一种低层次特征提取方式。
关于边缘检测的一些理解及扩展:
数字图像的边缘检测是图像分割,目标区域识别,区域形状提取等图像分析领域十分重要的基础,是图像识别中提取图像特征的一个重要方法。物体的边缘以图像局部特征不连续的形式出现,也就是指图像局部亮度变化最显著的部分,例如:灰度值的突变,颜色的突变和纹理结构的突变等,同时物体的边缘也是不同区域的分界处。图像边缘有方向和幅度两个特性,通常沿边缘走向的像素灰度变化平缓,垂直于边缘走向的像素灰度变化剧烈,更具灰度变化的特点,可以分为阶跃型,房顶型和凸缘型,这些变化对应图像中不同的景物。
边缘检测的实质是采用某种算法来提取出图像中对象与背景间的交界线。边缘指的是图像中在且仅在某个方向上灰度急剧变化、而在另一个与其正交的方向灰度变化平缓的像素一,。边缘特征可以更好的保持图像的结构信息,同时很多角点提取算法也是基于边缘轮廓特征的。图像灰度的变化情况可以用图像灰度分布的梯度来反映,因此我们可以用局部图像微分技术来获得边缘检测算子。经典的边缘检测方法,是通过对原始图像中像素的某小邻域构造边缘检测算子来达到检测边缘这一目的的。
边缘指的是图像中在且仅在某个方向上灰度急剧变化、而在另一个与其正交的方向灰度变化平缓的像素一,。边缘特征可以更好的保持图像的结构信息,同时很多角点提取算法也是基于边缘轮廓特征的。
为了克服一阶导数的缺点,可以计算图像的梯度。图像梯度最重要的性质是:梯度的方向在图像灰度最大变化率上,它恰好可以反映出图像边缘上的灰度变化。
边缘检测的分类:
一起了解图像梯度算子:
1、使用差分近似图像函数导数的算子。有些是具有旋转不变性的(如:Laplacian算子),因此只需要一个卷积掩模来计算。其它近似一阶导数的算子使用几个掩模。
2、基于图像函数二阶导数过零点的算子(如:Marr—Hild reth或Canny边缘检测算子。
3、试图将图像函数与边缘的参数模型相匹配的箅子。
(二)第一类梯度算子
拉普拉斯(Laplace)算子通常使用3×3的掩模,有时也使用强调中心象素或其邻接性的拉普拉斯算子(这种近似不再具有旋转不变性)。
拉普拉斯算子的缺点:它对图像中的某些边缘产生双重响应。
图像锐化的目的是图像的边缘更陡峭、清晰。锐化的输出图像f是根据下式从输入图像g得到的:f(i,j)=g(i,j)-c s(i,j),其中c是反映锐化程度的正系数,s(i,j)是图像函数锐化程度的度量,用梯度箅子来计算,Laplacian箅子常被用于这一目的。
(三)第二类梯度算子--二阶导数过零点算子
根据图象边缘处的一阶微分(梯度)应该是极值点的事实,图象边缘处的二阶微分应为零,确定过零点的位置要比确定极值点容易得多也比较精确。右侧是Lena的过零点检测结果。
为抑制噪声,可先作平滑滤波然后再作二次微分,通常采用高斯函数作平滑滤波,故有高斯-拉普拉斯LoG(Laplacian of Gaussian)算子。
噪声点对边缘检测有较大的影响,效果更好的边缘检测器是高斯-拉普拉斯(LoG)算子。它把高斯平滑滤波器和拉普拉斯锐化滤波器结合起来,先平滑掉噪声,再进行边缘检测,所以效果更好。
过零点检测:在实现时一般用两个不同参数的高斯函数的差DoG(Difference ofGaussians)对图象作卷积来近似,这样检测来的边缘点称为f(x,y)的过零点(Zero—crossing)。与前面的微分算子出仅采用很小的邻域来检测边缘不同,过零点(Zero-crossing)的检测所依赖的范闱与参数。有关,但边缘位置与0的选择无关,若只关心全局性的边缘可以选取比较大的邻域(如0=4时,邻域接近40个象素宽)来获取明显的边缘。过零点检测更可靠,不易受噪声影响,但.缺点是对形状作了过分的平滑,例如会丢失欠明显的角点;还有产生环行边缘的倾向。
产生环行边缘的原因是:图象的边缘多出现于亮度呈现突起或凹陷的位置上,其附近边缘法向线条上一阶微分会出现两个极值点,也就是会出现两个过零点。其整体结果是边缘呈现环行状态。
(四)Canny边缘提取(或边缘检测Edge Detection)
在如下的三个标准意义下,Canny边缘检测算子对受闩噪声影响的阶跃型边缘是最优的:
1)检测标准--不丢失重要的边缘,不应有虚假的边缘;
2)定位标准--实际边缘与检测到的边缘位置之间的偏差最小;
3)单响应标准--将多个响应降低为单个边缘响应。
边缘检测的一般步骤:
阈值:
一旦我们计算出导数之后,下一步要做的就是给出一个阈值来确定哪里是边缘位置。阈值越低,能够检测出的边线越多,结果也就越容易受到图片噪声的影响,并且越容易从图像中挑出不相关的特性。与此相反,一个高的阈值将会遗失细的或者短的线段。一个常用的这种方法是带有滞后作用的阈值选择。这个方法使用不同的阈值去寻找边缘。首先使用一个阈值上限去寻找边线开始的地方。一旦找到了一个开始点,我们在图像上逐点跟踪边缘路径,当大于门槛下限时一直纪录边缘位置,直到数值小于下限之后才停止纪录。这种方法假设边缘是连续的界线,并且我们能够跟踪前面所看到的边缘的模糊部分,而不会将图像中的噪声点标记为边缘。
1. 一阶边缘检测(第一类梯度算子)
1.1边缘
边缘是指图象中灰度发生急剧变化的区域。图象灰度的变化情况可以用灰度分布的梯度来反映,给定连续图象f(x,y),其方向导数在边缘法线方向上取得局部最大值。图象中一点的边缘被定义为一个矢量,模为当前点最人的方向导数,方向为该角度代表的方向。通常我们只考虑其模,而不关心方向。
1.2检测边缘
边缘检测强调的是图像的对比度。检测对比度(即亮度上的差别),可以增强图像中的边界特征,这些边界正是图像对比度出现的地方。
1.3差分运算
差分处理来检测边缘亮度变化,对相邻点的差分处理也可以用来估算点的一阶导数。
估算点的一阶导数
1.4平滑处理
这一章可以参考这里
1.5常见检测算子:Robert,Prewitt,sobel,
2. 二阶边缘检测:Canny,Laplancian, Marr-Hildreth, LoG
2.1Canny:很多著作中把Canny看作一阶的边缘检测,这里本人为了区分sobel算子,将它归于二阶。
Canny边缘检测算子的提出是基于以下概念:
(1)边缘检测算子是针对一维信号和前两个最优标准(即检测标准和定位标准)表达的,用微积分方法可以得到完整的解;
(2)如果考虑第三个标准(多个响应),需要通过数值优化的办法得到最优解,该最优滤波器可以有效地近似为标准差为(的高斯平滑滤波器的一阶微分,其误差小于20%,这是为了便于实现;这与M ar—Hild reth边缘检测算子很相似;它是基于LoG边缘检测算子的;
(3)将边缘检测箅子推广到两维情况。阶跃边缘由位置、方向和可能的幅度(强度)来确定。可以证明将图象与一对称2 D Gaussian做卷积后再沿梯度方向微分,就构成了一个简单而有效的方向算子(回想一下,LoG过零点算子并不能提供边缘方向的信息,因为它使用了Laplacian滤波器)。
(4)由于噪声引起的对单个边缘的(多个)虚假响应通常造成所谓的“纹状(streaking)"问题。一般而言,该问题在边缘检测中是非常普遍的。
边缘检测算子的输出通常要做阈值化处理,以确定哪些边缘是突出的。
纹状是指边缘轮廓断开的情形,是由算子输出超出或低于阈值的波动引起的。纹状现象可以通过带滞后的阈值处理(thresh01ding withhysteresis)来消除;
如果边缘响应超过一给定高阈值时,这些象素点构成了某个尺度下的边缘检测算子的确定的输出。
个别的弱响应通常对应于噪声,但是如果这些点是与某些具有强响应的点连接时,它们很可能是图象中真实的边缘。这些连接的象素点在当其响应超过一给定的低阈值时,就被当作边缘象素。
这里的低阈值和高阈值需要根据对信噪比的估计来确定。
(5)算子的合适尺度取决于图象中所含的物体情况。解决该未知数的方法是使用多个尺度,将所得信息收集起来。不同尺度的Canny检测算子由高斯的不同的标准差(来表示。有可能存在几个尺度的算子对边缘都给出突出的响应(即信噪比超过阈值);在这种情况下,选择具有最小尺度的算子,因为它定位最准确。
Canny边缘检测算法步骤:
l、对于递增的标准差(重复(2)到(6)步骤);
2、将图象f与尺度为高斯函数做卷积;
3、对图象中的每个象素,估计局部边缘的法向n;
4、用非最大抑制公式找到边缘的位置;
5、用公式计算边缘强度;
6、对边缘图像做滞后阈值化处理,消除虚假响应;
7、用特征综合方法,收集来自多尺度的最终的边缘信息。
2.2 高斯差分函数
3. Spacek,Petrou
4. 相位一致性
边缘检测的另一种形式被称为相位一致性。
边缘检测算子的比较突出了他们的一些内在问题:不完整的轮廓,阈值选择,噪声响应。而且,因为局部光照多变化,选择单个阈值通常不能适用于图像中所有的区域。我们开始关注如何优化低层次特征提取方法。
相位一致性是一个特征检测算子,主要有两个优点:一是可以检测大范围的特征,二是对局部(和平滑)光照变化具有不变性。它是基于相位(即时间)考虑的频域处理。
5. 局部特征检测:
5.1角点检测:Harris;
5.2:特征检测:SIFT,显著性算法