边缘检测算子(Roberts算子、Prewitt算子、Sobel算子 和 Laplacian算子 canny检测) 转发

转自

https://blog.csdn.net/zaishuiyifangxym/article/details/89840396

https://xiongyiming.blog.csdn.net/article/details/90142702  

1.Roberts算子

   基于交叉差分的梯度算法,通过局部差分计算检测边缘线条。

   常用来处理具有陡峭的低噪声图像,当图像边缘接近于正45度或负45度时,该算法处理效果更理想。

   其缺点是对边缘的定位不太准确,提取的边缘线条较粗。

 

2.Prewitt算子

 利用特定区域内像素灰度值产生的差分实现边缘检测。由于Prewitt算子采用 3	imes3 模板对区域内的像素值进行计算。

 Prewitt算子的边缘检测结果在水平方向和垂直方向均比Robert算子更加明显。

 Prewitt算子适合用来识别噪声较多、灰度渐变的图像。

 

3.Sobel算子

Sobel算子根据像素点上下、左右邻点灰度加权差,在边缘处达到极值这一现象检测边缘。对噪声具有平滑作用,提供较为精确的边缘方向信息。

因为Sobel算子结合了高斯平滑和微分求导(分化),因此结果会具有更多的抗噪性,当对精度要求不是很高时,Sobel算子是一种较为常用的边缘检测方法。

Sobel算子的边缘定位更准确,常用于噪声较多、灰度渐变的图像。

4.拉普拉斯算子 

实质是二阶微分。

5.canny检测

Canny算法是一种被广泛应用于边缘检测的标准算法,其目标是找到一个最优的边缘检测解或找寻一幅图像中灰度强度变化最强的位置。最优边缘检测主要通过低错误率、高定位性和最小响应三个标准进行评价。Canny算子的简要步骤如下:

(1)去噪声:应用高斯滤波来平滑图像,目的是去除噪声

(2)梯度:找寻图像的梯度

(3)非极大值抑制:应用非最大抑制技术来过滤掉非边缘像素,将模糊的边界变得清晰。该过程保留了每个像素点上梯度强度的极大值,过滤掉其他的值。

(4)应用双阈值的方法来决定可能的(潜在的)边界;

(5)利用滞后技术来跟踪边界。若某一像素位置和强边界相连的弱边界认为是边界,其他的弱边界则被删除。

原文地址:https://www.cnblogs.com/merlinzjl/p/14322183.html