【问题标题】:The sharpening filter and edge detection kernel relationship?锐化滤波器和边缘检测核的关系?
【发布时间】:2022-01-26 11:11:01
【问题描述】:

来自Wikipedia

(锐化滤波器)通过取恒等核减去边缘检测核得到

有人可以解释一下是怎么回事。 据我了解,要实现锐化图像,您需要获取原始图像并为其添加高对比度边缘。 他们甚至以矩阵为例:

应该矩阵

0   -1   0
-1   4   -1
0   -1   0

是边缘检测内核,根据another Wikipedia 文章?所以,数学应该是加法,而不是减法。

无论如何,我在这里有点困惑,可以使用一些帮助。谢谢!

【问题讨论】:

  • 在某些输入上运行内核观察他们的行为方式。 - 这是关于标准化/偏差。拉普拉斯算子的和为 0,因此其结果平均为黑色,只留下边缘。身份过滤器保持绝对水平(总和 1,1 是身份)。两个内核的总和再次为 1,保持绝对水平。当然,您可以添加它而不是减去它。这应该会给你一个相当亮度的结果,但边缘应该看起来“不同”。顺便说一句,那个 [1, -4, 1] 内核是“颠倒的”。 “墨西哥帽子”应该有一个积极的中心。他们用双重否定欺骗了你。
  • 我已经继续并更改了维基百科的文章,因为他们谈到了“边缘检测”内核。它的推导导致它为负。它是高斯的二阶导数。有道理,它会是负面的。正弦的二阶导数是负正弦。所以对于一个边缘,它会提取 negative 边缘......所以,双重否定。
  • 我已经更新了关于非锐化遮罩的维基百科页面,使其更有意义。锐化内核可以按照页面前面的描述构建,“锐化 = 原始 + (原始 - 模糊) × 数量”。在那里介绍拉普拉斯算子毫无意义。我希望这可以为您澄清一些事情。

标签: image image-processing matrix kernel wikipedia


【解决方案1】:

正如所指出的,需要区分一阶导数(边缘)和二阶导数(脊、峰)。

你没有谈论它,但你链接到一篇关于“锐化掩蔽”的文章。那应该使用difference of gaussians... 接近拉普拉斯算子(...高斯)。不完全一样,但实际上是一样的。

这意味着您实际上并不处理边缘,而是处理脊/峰。

至于内核及其标志……维基百科一如既往地神秘和误导。

他们减去一个拉普拉斯算子,因为他们必须这样做。拉普拉斯算子对峰/脊有响应。从概念上讲,您确实添加一个边缘/脊检测过滤器......如果它是一个。

您看到的内核看起来像一顶颠倒的墨西哥帽子。这是一个“高斯拉普拉斯算子”。这意味着它是高斯核的二阶导数。作为二阶导数,它对正峰/脊的响应,例如高斯的。

这是一个高斯及其一阶和二阶导数的图:

由于您希望脊/峰检测过滤器对正脊/峰具有响应,因此您将使用 否定二阶导数,并且添加那个。

看看这些图片:

1: 2: 3:

  1. [-1 +5 -1] 内核,即恒等式 - 拉普拉斯 = 恒等式 + 过滤器
  2. 图片本身
  3. [+1 -3 +1]内核,即identity + laplacian = identity - filter

你看,#3 看起来很模糊,因为一些高频被减去了

【讨论】:

  • 嗯,是的,边缘不是脊。 “边缘”将是高频分量的通用术语。
  • 很好,我会编辑所有内容。
  • 我已经修复了 OP 链接的第二个维基百科页面。让我们看看编辑会持续多久……
  • 这是一份吃力不讨好的工作,但我会尽我所能消除误解和不准确之处。 :)
  • 我没有完全理解这个问题,所以我会说一些可能有用的东西。 ——不要太担心。实际上他们都在做一些“保持”高频和“去除”低频的事情,每个人都称之为“边缘检测”。如果您想了解更多信息,可以研究卷积的分配和交换特性。采用像[+1 -1] 这样的微分内核,将其应用于像[0 0 1 0 0] 这样的冲动(身份),一次,然后一次。从字面上看,计算结果。如果您愿意,请使用np.convolve。看看会发生什么。在高斯上试试。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-29
  • 2013-12-17
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
  • 2017-07-06
  • 2016-04-01
相关资源
最近更新 更多