我是 MATLAB 新手。我不知道如何使用几何平均滤波器来过滤噪声图像。对于算术平均滤波器,我使用这个:
H = fspecial('average',5);
a = imfilter(a, H);
几何平均滤波器有没有类似的方法?
我是 MATLAB 新手。我不知道如何使用几何平均滤波器来过滤噪声图像。对于算术平均滤波器,我使用这个:
H = fspecial('average',5);
a = imfilter(a, H);
几何平均滤波器有没有类似的方法?
就在这里。我建议阅读有关几何平均值的Wikipedia 页面以及在 The Mathworks 工作的 Steve Eddins 的博客。
借用史蒂夫的解释(实际上是整个代码/示例):
局部几何平均滤波器将邻域中的所有像素值相乘,然后取 N 次根,其中 N 是邻域中的像素数。
因此,就 Matlab 代码而言,h
内核填充了具有邻域大小的内核,用于计算平均值并I
成为您的图像:
geo_mean = imfilter(log(I), h, 'replicate');
geo_mean = exp(geo_mean);
geo_mean = geo_mean .^ (1/numel(h));
希望有帮助!