我想在MATLAB中使用imgaussfilt设计一个二维高斯低通滤波器,以使其95%的质量在预定的半径内。如果sigma(标准偏差)设置为0.5(默认值),我应该如何计算“ FilterSize”(高斯滤波器的大小)?
不,不,不...标准差控制滤波器的扩展,因此sigma的值小表示滤波器非常窄,值大则表示滤波器扩展范围大。要找出给定半径内有多少质量,您需要做一些数学运算……事实证明,二维高斯分布与瑞利分布有关,所以您真正需要的是一个95%的点。标准化的瑞利分布,则可以相应地缩放sigma。
使用Wikipedia页面上的Rayleigh CDF方程,很容易发现,对于sigma值为1(归一化分布),95%点的半径为2.45。因此,您应该缩放sigma以相应地更改分布宽度。
过滤器的大小取决于您要使用多少个过滤器。如果您将其设置得太小,并且将滤波器截短了太多,那么它就不是高斯近似的。另一方面,太大了,那将是毫无意义的。您可以做的是使用相同的方程式找到不再对结果感兴趣的点的半径(例如99%,或者如果您确实想要,甚至可以使用95%,但要记住您丢失了否则会通过过滤器的数据的5%)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句