MATLAB中去噪图像的几何平均滤波器

时间:2016-12-22 16:15:06

标签: matlab image-processing filtering geometric-mean

我是MATLAB的新手。我不知道如何使用几何平均滤波器来过滤噪声图像。对于算术平均滤波器,我使用:

H = fspecial('average',5);
a = imfilter(a, H);

几何平均滤波器有没有类似的方法?

1 个答案:

答案 0 :(得分:1)

是的。我建议在The Mathworks上阅读由Steve Eddins撰写的关于几何平均数的Wikipedia page以及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));

希望有所帮助!