1、canny算子
Canny边缘检测算子是John F.Canny于1986年开发的多级边缘检测算法。 更重要的是,Canny创立了边缘检测计算理论(computationaltheoryofedgedetection ),说明了该技术是如何工作的。 Canny边缘检测算法以Canny命名,被很多人推荐为目前最好的边缘检测算法。
其中,Canny的目标是找到最佳边缘检测算法,我们来看看最佳边缘检测的三个主要评价标准:
3358 www.Sina.com/http://www.Sina.com/:识别尽可能多的实际边缘,同时尽量减少噪声引起的错误报告。
在3358 www.Sina.com/http://www.Sina.com/:中标识的边缘必须尽可能接近图像中的实际边缘。
3358 www.Sina.com/http://www.Sina.com/:图像中的边缘只能识别一次,可能存在的图像噪声不应识别为边缘。
1.
1. 低错误率一般使用高斯平滑滤波器来卷积降噪。 size=5的高斯内核示例:如下所示
2. 2.其中,按照Sobel过滤器中的步骤进行操作。
高定位性运用一对卷积阵列(分别作用于x方向和y方向) :
3.用以下公式计算梯度振幅和方向:
坡度的方向近似为四个可能的角度之一。 通常是0,45,90,135。
3. 最小响应此步骤排除非边缘像素,仅保留细线(候选边缘)。
4. Canny 边缘检测的步骤:最后,Canny使用了滞后阈值。 滞后阈值需要两个阈值(高阈值和低阈值) :
消除噪声如果某个像素位置的振幅超过高阈值,则该像素保留为边缘像素。
计算梯度幅值和方向如果某个像素位置的幅度小于低阈值,则排除该像素。
.如果一个像素位置的振幅介于两个阈值之间,则只有当该像素连接到超过高阈值的像素时才会保留。
tips :对于canny函数的使用,推荐的高低阈值比为2:1到:1之间。
有关详细信息,请参见canny操作符维基
关于canny边缘检测的原理,课程请参考本博文
canny运营商中文维基百科
.
Sobel运算符为http://www.Sina.com/(discretedifferentiationoperator )。 Sobel算子结合高斯平滑和微分求导,计算图像灰度函数的近似梯度。 在图像的任何点上使用此运算符将生成相应的梯度向量或其法线向量。
sobel操作符维基百科
有关sobel运算符的概念也可以参考此博文
非极大值抑制
假定作用的图像为I .进行以下操作。
滞后阈值分别在x和y两个方向寻求指导。
.水平变化:将I卷积到奇数大小的内核中。 例如,如果内核大小为3,则的计算结果为:
.垂直变化:将: I与奇数大小的核心进行卷积。 例如,如果内核大小为3,则的计算结果为:
在.图像的每一点处,将上述两个结果组合以确定近似梯度:
另外,也可以使用以下更简单的式来代替:
2、sobel算子
Laplacian运算符是n维brdnm空间中的二次微分运算符,被定义为梯度grad ()的分散度div ) )。 因此,如果f是可二阶导数的实函数,则f的拉普拉斯算子定义如下:
(1) f的拉普拉斯算子也是笛卡尔坐标系xi中所有非混合二阶偏导数的总和:
2 )拉普拉斯算子作为2次微分算子,当k2时,将c函数映射为c函数。 公式(1)或(2) )定义了运算符:c(r ),或更一般地,运算符3360 c ()、c (),是针对任意的开始集合定义的。
根据图像处理原理表明,二阶导数可用于边缘检测。 因为图像是“二次元”,所以我们需要在两个方向寻求指引。 使用Laplacian操作符可以简化查找指南的过程。
Laplacian算子的定义:
需要点划线的是,Laplacian使用图像梯度,因此其内部的代码实际上调用了Sobel操作符。
还有一个小tips。 可以通过从一个图像中减去它后的Laplacian来提高对比度。
有关Laplace操作符的概念描述,请参见本博文
Laplace操作符维基百科
转载于:https://www.cn blogs.com/zhuifeng-Mayi/p/9563947.html