【发布时间】:2018-10-25 13:27:54
【问题描述】:
我是 MATLAB 新手。我不知道如何使用几何平均滤波器来过滤噪声图像。对于算术平均滤波器,我使用这个:
H = fspecial('average',5);
a = imfilter(a, H);
几何平均滤波有没有类似的方法?
【问题讨论】:
标签: matlab image-processing filtering geometric-mean
我是 MATLAB 新手。我不知道如何使用几何平均滤波器来过滤噪声图像。对于算术平均滤波器,我使用这个:
H = fspecial('average',5);
a = imfilter(a, H);
几何平均滤波有没有类似的方法?
【问题讨论】:
标签: matlab image-processing filtering geometric-mean
是的,有。我建议阅读关于几何平均值的 Wikipedia page 以及在 The Mathworks 工作的 Steve Eddins 的 this blog。
借用史蒂夫的解释(实际上是整个代码/示例):
局部几何平均滤波器将所有像素相乘 邻域中的值,然后取第 N 个根,其中 N 是 邻域内的像素数。
因此,就 Matlab 代码而言,h 是内核,其中填充了具有用于计算平均值的邻域大小的内核,I 是您的图像:
geo_mean = imfilter(log(I), h, 'replicate');
geo_mean = exp(geo_mean);
geo_mean = geo_mean .^ (1/numel(h));
希望有帮助!
【讨论】: