2016-09-27 174 views
0

我想设计使用imgaussfilt在MATLAB 2 d高斯低通滤波器,使得其质量的95%处于预定半径内高斯低通滤波器。如果西格玛(标准差)设置为0.5(默认),我该如何计算'FilterSize'(高斯滤波器的大小)?2-d采用imgaussfilt在MATLAB

回答

0

不,不,标准偏差控制着滤波器的扩展,所以一个小的sigma值意味着滤波器非常窄,而一个很大的值意味着它被广泛传播。要知道它的质量有多少在给定的半径范围内,你需要做一些数学...事实证明,2D高斯分布与Rayleigh distribution有关,所以你真正需要的是标准的95%点瑞利分布,那么你可以相应地缩放西格玛。

使用瑞利CDF维基百科页面上的等式,可以很容易地发现,对于1(标准化分布)的西格马值,95%的点在半径为2.45处。因此,您应该缩放西格玛来相应地改变分配宽度。

过滤器大小取决于您要使用多少过滤器。如果你做得太小,并且你截断了太多的滤波器,那么它对于高斯来说就不是一个好的近似值。另一方面,它太大了,它将毫无意义。你可以做的是使用相同的公式来找到你不再对结果感兴趣的点的半径(例如,99%,或者如果你真的想要的话,甚至可以使用95%,但是请记住你缺少了5%的数据会通过过滤器)。