MATLAB中的高斯平滑

时间:2010-05-05 06:48:26

标签: matlab image-processing

对于带有一些嘈杂图像的m x n元素数组,我想执行Gaussian smoothing。我如何在MATLAB

中执行此操作

我已经读过数学涉及用一定规模的内核来平滑所有内容,但我不知道如何在MATLAB中做到这一点。

1 个答案:

答案 0 :(得分:28)

希望你有图像处理工具箱。如果是这样,那么您可以使用fspecial function创建一个高斯滤波器,如下所示:

myfilter = fspecial('gaussian',[3 3], 0.5);

我在这里使用了hsize([3 3])和sigma(0.5)的默认值,但您可能想要使用它们。 hsize只是滤波器的大小,在这种情况下它是一个3 x 3矩阵。 Sigma是高斯函数的sigma(参见fspecial函数页面的底部)。

现在,您可以使用imfilter过滤图片:

myfilteredimage = imfilter(unfilteredimage, myfilter, 'replicate');

这里我简单地传递了未过滤图像,过滤器和一个参数,该参数说明过滤器应如何处理边界。在这种情况下,我选择了复制,它将数组边界外的输入数组值设置为最接近的数组边界值,但您可以尝试其他一些值(或者不使用该选项将图像值之外的所有值设置为0)。