图像边界上折叠矩阵的行为(高斯模糊)

计算科学 图像处理
2021-12-22 20:14:07

在图像评估的一个步骤中,我需要对像素数据应用高斯模糊。我通过用高斯折叠矩阵折叠每个像素来做到这一点。除非我尝试使用图像边界处的像素来执行此操作,否则这没有问题,因为例如在左边界上,我不能在折叠计算中包含左侧的像素。我可以想到多种解决方法:

  1. 不要在没有完整邻域的情况下模糊像素。
  2. 忽略不在那里的邻居。
  3. 使用中心像素而不是丢失的像素。
  4. 使用图像另一侧的像素。

案例 2 在我看来是不对的,因为它破坏了整个折叠矩阵的规范化。在我的情况下,我不能使用 4. 并且它实际上没有任何意义。

所以我的问题是:这个问题应该如何处理?

1个回答

有许多不同的方法可以做到这一点,“正确”的选择取决于具体的应用。

您的选项 1 可能不是您想要的,但类似的选项是简单地返回一个较小的图像,在该图像上模糊定义良好。如果您可以接受较小的图像,这可能是您将获得的最接近“万无一失”的东西。

您的选项 2 可以工作,如果您重做规范化,它肯定是一个有效的选项,因此它仍然集成到 1。我个人更喜欢这个选项

另一种选择是镜像边界条件,因此您将某些像素计算两次。

如果您查看SciPy 中的高斯模糊,您会看到许多不同的选项,从数学的角度来看,所有这些选项都非常有效。

这在很大程度上取决于您的应用程序。

您可能想看看Signal Processing StackExchange,因为这可能是他们的领域。