Prewitt算子



Prewitt算子用于图像边缘检测。它检测两种类型的边缘

  • 水平边缘
  • 垂直边缘

边缘是通过计算图像中对应像素强度的差异来计算的。所有用于边缘检测的掩模也被称为导数掩模。因为正如我们之前在本系列教程中多次提到的,图像也是一种信号,因此信号的变化只能使用微分来计算。所以,这些算子也称为导数算子或导数掩模。

所有导数掩模都应具有以下属性

  • 掩模中应存在相反的符号。
  • 掩模的总和应等于零。
  • 权重越大,边缘检测效果越强。

Prewitt算子为我们提供了两个掩模,一个用于检测水平方向的边缘,另一个用于检测垂直方向的边缘。

垂直方向

-1 0 1
-1 0 1
-1 0 1

上述掩模将找到垂直方向的边缘,这是因为垂直方向上的零列。当您将此掩模与图像进行卷积时,它将为您提供图像中的垂直边缘。

工作原理

当我们将此掩模应用于图像时,它会突出显示垂直边缘。它的工作原理类似于一阶导数,并计算边缘区域中像素强度的差异。由于中间列为零,因此它不包含图像的原始值,而是计算该边缘周围左右像素值的差异。这增加了边缘强度,并且与原始图像相比,它得到了增强。

水平方向

-1 -1 -1
0 0 0
1 1 1

上述掩模将找到水平方向的边缘,这是因为零列位于水平方向上。当您将此掩模与图像进行卷积时,它将突出显示图像中的水平边缘。

工作原理

此掩模将突出显示图像中的水平边缘。它也基于上述掩模的原理,并计算特定边缘的像素强度差异。由于掩模的中间行由零组成,因此它不包含图像中边缘的原始值,而是计算特定边缘上下像素强度的差异。从而增加了强度的突然变化,使边缘更加清晰。以上两个掩模都遵循导数掩模的原理。两个掩模中都存在相反的符号,并且两个掩模的总和都等于零。第三个条件不适用于此算子,因为以上两个掩模都是标准化的,我们无法更改其中的值。

现在是时候看看这些掩模在实际中的应用了

示例图像

下面是一个示例图片,我们将依次应用以上两个掩模。

Prewitt Operator

应用垂直掩模后

在上述示例图像上应用垂直掩模后,将获得以下图像。此图像包含垂直边缘。您可以通过将其与水平边缘图片进行比较来更准确地判断它。

Prewitt Operator

应用水平掩模后

在上述示例图像上应用水平掩模后,将获得以下图像。

Prewitt Operator

比较

您可以看到,在第一张我们应用垂直掩模的图片中,所有垂直边缘都比原始图像更清晰。同样,在第二张图片中,我们应用了水平掩模,结果所有水平边缘都清晰可见。因此,通过这种方式,您可以看到我们可以从图像中检测水平和垂直边缘。

广告

© . All rights reserved.