边缘检测与梯度算子
Posted Good Good Study~
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了边缘检测与梯度算子相关的知识,希望对你有一定的参考价值。
边缘检测
图象中一点的边缘被定义为一个矢量,模为当前点最人的方向导数,方向为该角度代表的方向。通常我们只考虑其模,而不关心方向。
梯度算子
(一)梯度算子可分为3类:
1、使用差分近似图像函数导数的算子。有些是具有旋转不变性的(如:Laplacian算子),因此只需要一个卷积掩模来计算。其它近似一阶导数的算子使用几个掩模。
2、基于图像函数二阶导数过零点的算子(如:M arr—Hild reth或Canny边缘检测算子。
3、试图将图像函数与边缘的参数模型相匹配的箅子。
(二)第一类梯度算子
拉普拉斯算子的缺点:它对图像中的某些边缘产生双重响应。
图像锐化(shapeening)
图像锐化的目的是图像的边缘更陡峭、清晰。锐化的输出图像f是根据下式从输入图像g得到的:f(i,j)=g(i,j)-c s(i,j),其中c是反映锐化程度的正系数,s(i,j)是图像函数锐化程度的度量,用梯度箅子来计算,Laplacian箅子常被用于这一目的。
Prewitt边缘检测算子
Sobel边缘检测算子
(三)第二类梯度算子--二阶导数过零点算子
根据图象边缘处的一阶微分(梯度)应该是极值点的事实,图象边缘处的二阶微分应为零,确定过零点的位置要比确定极值点容易得多也比较精确。右侧是Lena的过零点检测结果。
为抑制噪声,可先作平滑滤波然后再作二次微分,通常采用高斯函数作平滑滤波,故有LoG(Laplacian of Gaussian)算子。
高斯-拉普拉斯(LoG,Laplacian of Gaussian)算子。
过零点检测
在实现时一般用两个不同参数的高斯函数的差DoG(Difference ofGaussians)对图象作卷积来近似,这样检测来的边缘点称为f(x,y)的过零点(Zero—crossing)。
与前面的微分算子出仅采用很小的邻域来检测边缘不同,过零点(Zero-crossing)的检测所依赖的范闱与参数。有关,但边缘位置与0的选择无关,若只关心全局性的边缘可以选取比较大的邻域(如0=4时,邻域接近40个象素宽)来获取明显的边缘。过零点检测更可靠,不易受噪声影响,但.缺点是对形状作了过分的平滑,例如会丢失欠明显的角点;还有产生环行边缘的倾向。
产生环行边缘的原因是:图象的边缘多出现于亮度呈现突起或凹陷的位置上,其附近边缘法向线条上一阶微分会出现两个极值点,也就是会出现两个过零点。其整体结果是边缘呈现环行状态。
(四)Canny边缘提取(或边缘检测Edge Detection)
在如下的三个标准意义下,Canny边缘检测算子对受闩噪声影响的阶跃型边缘是最优的:
1)检测标准--不丢失重要的边缘,不应有虚假的边缘;
2)定位标准--实际边缘与检测到的边缘位置之间的偏差最小;
3)单响应标准--将多个响应降低为单个边缘响应。
Canny边缘检测算子的提出是基于以下概念:
(1)边缘检测算子是针对一维信号和前两个最优标准(即检测标准和定位标准)表达的,用微积分方法可以得到完整的解;
(2)如果考虑第三个标准(多个响应),需要通过数值优化的办法得到最优解,该最优滤波器可以有效地近似为标准差为(的高斯平滑滤波器的一阶微分,其误差小于20%,这是为了便于实现;这与M ar—Hild reth边缘检测算子很相似;它是基于LoG边缘检测算子的;
(3)将边缘检测箅子推广到两维情况。阶跃边缘由位置、方向和可能的幅度(强度)来确定。可以证明将图象与一对称2 D Gaussian做卷积后再沿梯度方向微分,就构成了一个简单而有效的方向算子(回想一下,LoG过零点算子并不能提供边缘方向的信息,因为它使用了Laplacian滤波器)。
(4)由于噪声引起的对单个边缘的(多个)虚假响应通常造成所谓的“纹状(streaking)"问题。一般而言,该问题在边缘检测中是非常普遍的。
边缘检测算子的输出通常要做阈值化处理,以确定哪些边缘是突出的。
纹状是指边缘轮廓断开的情形,是由算子输出超出或低于阈值的波动引起的。纹状现象可以通过带滞后的阈值处理(thresh01ding withhysteresis)来消除;
如果边缘响应超过一给定高阈值时,这些象素点构成了某个尺度下的边缘检测算子的确定的输出。
个别的弱响应通常对应于噪声,但是如果这些点是与某些具有强响应的点连接时,它们很可能是图象中真实的边缘。这些连接的象素点在当其响应超过一给定的低阈值时,就被当作边缘象素。
这里的低阈值和高阈值需要根据对信噪比的估计来确定。
(5)算子的合适尺度取决于图象中所含的物体情况。解决该未知数的方法是使用多个尺度,将所得信息收集起来。不同尺度的Canny检测算子由高斯的不同的标准差(来表示。有可能存在几个尺度的算子对边缘都给出突出的响应(即信噪比超过阈值);在这种情况下,选择具有最小尺度的算子,因为它定位最准确。
特征综合方法(Feature synthesis appmach)
首先标记出所有由最小尺度算子得到的突出边缘。具有较大尺度(的算子产生的边缘根据它们(标记出的边缘)合成得到(即,根据从较小的尺度收集到的证据来预测较大尺度(应具有的作用效果)。然后将合成得到的边缘响应与较大尺度(的实际边缘响应作比较。仅当它们比通过合成预测的响应显著地强时,才将其标记为边缘。
这一过程可以对一个尺度序列(从小到大)重复进行,通过不断加入较小的尺度中没有的边缘点的方式累积起来生成边缘图。
Canny边缘检测算法
l、对于递增的标准差(重复(2)到(6)步骤);
2、将图象f与尺度为高斯函数做卷积;
3、对图象中的每个象素,估计局部边缘的法向n;
4、用非最大抑制公式找到边缘的位置;
5、用公式计算边缘强度;
6、对边缘图像做滞后阈值化处理,消除虚假响应;
7、用特征综合方法,收集来自多尺度的最终的边缘信息。 (通常的实现,省略该步。)
以上是关于边缘检测与梯度算子的主要内容,如果未能解决你的问题,请参考以下文章
[ZZ] 边缘检测 梯度与RobertsPrewittSobelLapacian算子