OpenCV——Canny边缘检测(cv2.Canny())

2022-09-01 14:49:54 浏览数 (2)

大家好,又见面了,我是你们的朋友全栈君。

Canny边缘检测

Canny 边缘检测是一种使用多级边缘检测算法检测边缘的方法。1986 年,John F. Canny 发 表了著名的论文 A Computational Approach to Edge Detection,在该论文中详述了如何进行边缘 检测。

Canny()边缘检测步骤

Canny 边缘检测分为如下几个步骤: 步骤 1:去噪。噪声会影响边缘检测的准确性,因此首先要将噪声过滤掉。 步骤 2:计算梯度的幅度与方向。 步骤 3:非极大值抑制,即适当地让边缘“变瘦”。 步骤 4:确定边缘。使用双阈值算法确定最终的边缘信息。 下面对上述步骤分别进行简单的介绍。

1. 应用高斯滤波去除图像噪声

由于图像边缘非常容易受到噪声的干扰,因此为了避免检测到错误的边缘信息,通常需要对图像进行滤波以去除噪声。滤波的目的是平滑一些纹理较弱的非边缘区域,以便得到更准确的边缘。在实际处理过程中,通常采用高斯滤波去除图像中的噪声。 在滤波过程中,我们通过滤波器对像素点周围的像素计算加权平均值,获取最终滤波结果。滤波器的大小也是可变的,高斯核的大小对于边缘检测的效果具有很重要的作用。滤波器 的核越大,边缘信息对于噪声的敏感度就越低。不过,核越大,边缘检测的定位错误也会随之增加。通常来说,一个 5×5 的核能够满足大多数的情况。

2. 计算梯度

梯度的方向与边缘的方向是垂直的。 边缘检测算子返回水平方向的Gx和垂直方向的Gy。梯度的幅度

cv2

0 人点赞