Canny边缘检测的五个步骤

4 min read

使用高斯滤波器,以平滑图像,滤除噪声:想象你在一张有很多小斑点的照片中寻找一个人的轮廓,这些小斑点就是我们称之为"噪声"的东西。在找轮廓之前,我们首先要去掉这些小斑点,使照片更清晰。这就像是用一个软布擦拭掉照片上的尘土。

计算图像中每个像素点的梯度强度和方向:这就像我们在查看一张照片,试图找出哪些部分的亮度变化最剧烈。在边缘的地方,颜色或亮度通常会有一个明显的跳跃或变化,我们可以通过找到这些变化最大的地方来找到边缘。

应用非极大值抑制,以消除边缘检测带来的杂散响应:想象你在用一支铅笔描绘这个人的轮廓,你希望线条尽可能地细。这个步骤就是为了让我们找到的边缘尽可能地细,因此我们会去掉那些不是最明显的边缘。

应用双阈值检测来确定真实的和潜在的边缘:这一步是为了确定哪些是真正的边缘。我们设置了两个阈值,一个高和一个低。如果一个地方的变化超过了高阈值,那么我们就确定这里有一个边缘。如果变化在两个阈值之间,那么我们就认为这里可能有一个边缘。

通过抑制孤立的弱边缘最终完成边缘检测:在这个步骤,我们把那些没有连接到确定的边缘的可能的边缘去掉。就像我们只画出那些连在一起的线条,不画那些孤立的点。

通过以上五个步骤,我们就能找到一张照片中的所有边缘了,就像用铅笔在照片上描绘出一个人的轮廓。

这样就可以更好地理解照片,并从中得到更多有用的信息。在计算机视觉中,这个过程非常重要,可以用于物体检测,图像分割和其他许多应用中。