2016-12-22 411 views
0

我是matlab新手。我不知道如何使用几何平均滤波器来过滤噪声图像。对于算术平均滤波器我使用这个:matlab中去噪图像的几何均值滤波器

H = fspecial('average',5);

a = imfilter(a,H);

是否有几何平均滤波器的任何类似的方法? 谢谢。

回答

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)); 

希望帮助!

+0

非常感谢!这真的很有帮助。 – yld

+0

太棒了!如果答案有帮助,您可以将其标记为已接受,以便线程关闭?谢谢! –