MATLAB中的高斯平滑
image-processing
matlab
5
0

对于带有一些噪点图像的元素的m x n数组,我想执行高斯平滑 。我如何在MATLAB中做到这一点?

我读过数学书,涉及到以一定的比例用内核平滑所有内容,但是我不知道如何在MATLAB中执行此操作。

参考资料:
Stack Overflow
收藏
评论
共 1 个回答
高赞 时间 活跃

希望您拥有“图像处理”工具箱。如果是这样,则可以使用fspecial函数创建高斯滤波器,如下所示

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

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

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号