如何确定高斯滤波器的窗口大小

时间:2013-04-23 09:24:40

标签: image-processing signal-processing matlab

高斯平滑是一种常见的图像处理功能,对于高斯滤波的介绍,请参考here。我们可以看到,一个参数:标准推导将决定高斯函数的形状。然而,当我们用高斯滤波执行卷积时,另一个参数:高斯滤波器的窗口大小也应该同时确定。例如,当我们使用MATLAB提供的fspecial函数时,不仅必须提供标准派生而且还必须提供窗口大小。直观地,高斯标准推导越大,高斯核窗口应该越大。但是,没有关于如何设置正确窗口大小的一般规则。有任何想法吗?谢谢!

3 个答案:

答案 0 :(得分:11)

掩码的size驱动过滤器数量。对应于较大卷积掩模的较大size通常会导致更大程度的滤波。作为降低噪声量的一种权衡,更大的滤波器也会影响图像的细节质量。

这是里程碑。现在进入Gaussian filterstandard deviation是主要参数。如果您使用2D过滤器,在面具边缘,您可能希望权重接近0

就此而言,正如我已经说过的那样,您可以选择尺寸通常为 三次 standard deviation的面具。这样,几乎整个高斯钟被考虑在内,在掩模的边缘,你的权重将渐近趋于零。

我希望这会有所帮助。

答案 1 :(得分:1)

Here是一个很好的参考。

  1. 离散后,距离大于3 sigma的像素的权重可以忽略不计。请参阅this

  2. 正如已经指出的那样,6sigma,暗示3sigma双向

  3. 由于上面的第1点和第2点,用于过滤的卷积矩阵的大小会无意中被6sigma乘以6sigma。

  4. Here如何获得离散高斯。

    最后,标准差的大小(以及因此使用的内核)取决于您怀疑在图像中有多少噪音。显然,较大的卷积核意味着更远的像素会对中心像素的新值产生影响,而不是较小的内核。

答案 2 :(得分:0)

给定 sigma 和过滤器中的最小权重 epsilon,您可以求解过滤器 x 的必要半径:

enter image description here

例如,如果 sigma = 1,那么当 x <= 2.715 时,高斯大于 epsilon = 0.01,因此滤波器半径 = 3(宽度 = 2*3 + 1 = 7)就足够了。

  • sigma = 0.5,x <= 1.48,使用半径 2
  • sigma = 1,x <= 2.715,使用半径 3
  • sigma = 1.5,x <= 3.84,使用半径 4
  • sigma = 2,x <= 4.89,使用半径 5
  • sigma = 2.5,x <= 5.88,使用半径 6

如果您减少/增加 epsilon,那么您将需要更大/更小的半径。