二维高斯低通滤波器在MATLAB中的应用



我想在MATLAB中使用imgaussfilt设计一个二维高斯低通滤波器,使95%的质量位于预定义的半径内。如果sigma(标准差)设置为0.5(默认),我应该如何计算'FilterSize'(高斯滤波器的大小)?

不,不,不…标准差控制着滤波器的扩展,所以σ值小意味着滤波器很窄,值大意味着它的扩展很广。要找出它的质量有多少在给定半径内,你需要做一些数学计算。事实证明,二维高斯分布与瑞利分布有关,所以你真正需要的是标准化瑞利分布的95%点,然后你可以相应地缩放sigma。

使用维基百科页面上的瑞利CDF方程,很容易发现对于sigma值为1(标准化分布),95%点的半径为2.45。因此,您应该缩放sigma以相应地改变分布宽度。

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

最新更新