文章目录[隐藏]
边缘检测是一种图像处理技术,用于识别数字图像中具有不连续性的点,简单地说,就是图像亮度的急剧变化。这些图像亮度急剧变化的点称为图像的边缘(或边界)。

它是图像处理、图像模式识别和计算机视觉的基本步骤之一。当我们处理非常高分辨率的数字图像时,卷积技术就派上用场了。让我们通过一个例子来理解卷积操作(在下图中使用 * 表示) -

对于此示例,我们使用 3*3 Prewitt 过滤器,如上图所示。如下所示,当我们应用过滤器对给定的 6*6 图像执行边缘检测时(为了便于理解,我们将其突出显示为紫色)输出图像将包含 ((a11*1) + (a12*0) + ( a13*(-1))+(a21*1)+(a22*0)+(a23*(-1))+(a31*1)+(a32*0)+(a33*(-1)))在紫色的广场上。我们水平然后垂直重复卷积以获得输出图像。


我们将继续上述过程以获得边缘检测后的处理图像。但是,在现实世界中,我们为人工智能应用处理非常高分辨率的图像。因此,我们选择了一种算法来执行卷积,甚至使用深度学习来决定过滤器的最佳值。
边缘检测有多种方法,以下是一些最常用的方法——
- Prewitt边缘检测
- Sobel边缘检测
- 拉普拉斯边缘检测
- Canny 边缘检测
Prewitt 边缘检测
该方法是一种常用的边缘检测器,主要用于检测图像中的水平和垂直边缘。以下是 Prewitt 边缘检测过滤器 -

Sobel 边缘检测:这使用了一个过滤器,它更加强调过滤器的中心。它是最常用的边缘检测器之一,有助于降低噪声并提供差异化,同时提供边缘响应。以下是此方法中使用的过滤器-

下面显示了应用 Sobel 边缘检测前后的图像-

拉普拉斯边缘检测
拉普拉斯边缘检测器与之前讨论的边缘检测器不同。此方法仅使用一个过滤器(也称为内核)。在单程中,拉普拉斯边缘检测执行二阶导数,因此对噪声敏感。为了避免这种对噪声的敏感性,在应用这种方法之前,对图像进行了高斯平滑处理。

以上是一些常用的尺寸较小的拉普拉斯边缘检测滤波器。下面展示了原始的minion图像和应用高斯平滑(cv2的GaussianBlur()方法)之后的最终图像,然后是拉普拉斯边缘检测-

Canny 边缘检测
与许多其他方法相比,这是最常用的高效且复杂的方法。它是一种多阶段算法,用于检测/识别各种边缘。以下是 Canny 边缘检测算法的各个阶段——
- 将图像转换为灰度
- 减少噪音——由于使用导数的边缘检测对噪音很敏感,我们减少它。
- 计算梯度——帮助识别边缘强度和方向。
- 非最大抑制 - 使图像边缘变薄。
- 双阈值——识别图像中强、弱和不相关的像素。
- 滞后边缘跟踪——仅当弱像素周围有强像素时,才有助于将弱像素转换为强像素。
以下是原始的minion图像和应用此方法后的图像。

应用边缘计算的缺点
- 输出的大小将被缩小。
如果您在上面的示例中注意到在应用 3*3 过滤器进行边缘检测后输入的 6*6 图像,则输出图像只有 4*4。通常,公式是如果输入图像的大小为 n*n,滤波器大小为 r*r,则输出图像大小将为 (n-r+1)*(n-r+1)。
- 丢失了很多有价值的信息,尤其是输入图像的边缘。
由于输出图像的大小比用作输入的原始图像要小很多(如上所述),因此输入图像边缘的信息会丢失,因为我们不会在输入图像的外边缘使用过滤器进行多次迭代(不像输入图像的中间)。
克服边缘计算缺点的技术
为了防止图像收缩丢失这些有价值的信息,我们通常在应用边缘检测之前对输入图像进行“填充”,以避免丢失输入图像中的有价值信息。
via:萨蒂亚拉克什米
暂无评论