当前位置:   article > 正文

opencv基础44- Canny边缘检测详解-cv.Canny()

canny边缘检测

什么是Canny边缘检测?

Canny边缘检测是一种经典的边缘检测算法,由John F.
Canny在1986年提出。它被广泛应用于计算机视觉和图像处理领域,是一种多阶段的边缘检测算法,能够有效地检测图像中的边缘并抑制噪声。

Canny边缘检测的主要步骤如下:

  1. 噪声抑制:首先,通过使用高斯滤波器对图像进行平滑处理,以去除图像中的噪声。高斯滤波器可以有效地平滑图像,同时保持边缘的细节。

  2. 计算梯度幅值和方向:使用Sobel算子计算图像中每个像素点的水平和垂直方向的梯度值。然后,根据梯度值计算每个像素点的梯度幅值和方向。

  3. 非极大值抑制:在计算得到的梯度幅值图像上进行非极大值抑制。这一步的目的是将边缘宽度变窄,使得边缘更加细化和明确。

  4. 双阈值处理:根据设定的高阈值和低阈值,将梯度幅值图像中的像素点分为强边缘、弱边缘和非边缘三类。通常选择高阈值和低阈值使得强边缘像素点的梯度幅值大于高阈值,非边缘像素点的梯度幅值小于低阈值,而弱边缘像素点的梯度幅值处于高阈值和低阈值之间。

  5. 边缘连接:最后,通过连接强边缘像素点和与之相邻的弱边缘像素点,得到完整的边缘图像。

Canny边缘检测算法通过多个阶段的处理,能够得到清晰准确的边缘信息,并且对噪声具有一定的鲁棒性。因此,它在图像处理和计算机视觉中得到广泛应用,特别是在要求高精度边缘检测的场景中。

Canny边缘检测应用场景

Canny边缘检测在图像处理和计算机视觉领域有许多应用场景,下面列举了一些常见的应用场景:

  1. 物体检测与目标定位:Canny边缘检测能够帮助检测图像中物体的边缘,从而实现目标检测和定位。在计算机视觉任务中,这对于目标识别、物体追踪和目标定位等是至关重要的。

  2. 图像分割:Canny边缘检测可以在图像中检测出物体和背景之间的边缘,有助于将图像分割成不同的区域,使得图像处理更加高效和准确。

  3. 视觉导航与SLAM:在机器人视觉导航和同时定位与地图构建(SLAM)中,Canny边缘检测有助于提取环境中的地标和边缘特征,用于机器人的定位和导航。

  4. 图像增强:Canny边缘检测可以突出图像中的边缘特征,使得图像在可视化和分析上更加清晰明了,从而用于图像增强和美化。

  5. 图像匹配与对准:Canny边缘检测能够提取图像中的特征点,用于图像匹配和图像对准,常用于图像拼接、图像融合等应用。

  6. 视觉检测与安全:Canny边缘检测在视觉检测和安全领域也有应用,例如边缘检测在视频监控中用于检测异常行为,或者在车辆驾驶辅助系统中用于车道检测和车辆识别。

  7. 医学影像处理:Canny边缘检测在医学影像处理中广泛应用,用于检测器官边缘、病变区域等,辅助医生进行疾病诊断和治疗。

总的来说,Canny边缘检测在图像处理和计算机视觉的许多领域都扮演着重要的角色,它是一种经典且有效的边缘检测算法,被广泛应用于实际场景中。

Canny 边缘检测实现步骤说明

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

由于图像边缘非常容易受到噪声的干扰,因此为了避免检测到错误的边缘信息,通常需要对图像进行滤波以去除噪声。滤波的目的是平滑一些纹理较弱的非边缘区域,以便得到更准确的边缘。在实际处理过程中,通常采用高斯滤波去除图像中的噪声。

图 10-1 演示了使用高斯滤波器 T 对原始图像 O 中像素值为 226 的像素点进行滤波,得到该点在滤波结果图像 D 内的值的过程。

在这里插入图片描述

在滤波过程中,我们通过滤波器对像素点周围的像素计算加权平均值,获取最终滤波结果。对于高斯滤波器 T,越临近中心的点,权值越大。在图 10-1 中,对图像 O 中像素值为 226 的像素点,使用滤波器 T 进行滤波的计算过程及结果为:

结果 = 156×(197×1+25×1+106×2+156×1+159×1
 +149×1+40×3+107×4+5×3+71×1
 +163×2+198×4+226×8+223×4+156×2
 +222×1+37×3+68×4+193×3+157×1
 +42×1+72×1+250×2+41×1+75×1)
 = 138
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

当然,高斯滤波器(高斯核)并不是固定的,例如它还可以是:

在这里插入图片描述
滤波器的大小也是可变的,高斯核的大小对于边缘检测的效果具有很重要的作用。滤波器的核越大,边缘信息对于噪声的敏感度就越低。不过,核越大,边缘检测的定位错误也会随之增加。通常来说,一个 5×5 的核能够满足大多数的情况。

2. 计算梯度幅值和方向

前面一节讲了如何计算图像梯度的幅度。在这里,我们关注梯度的方向,梯度的方向与边缘的方向是垂直的。

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/173439
推荐阅读
相关标签