对于带有一些噪声图像的元素数组,我想执行Gaussian smoothing如何在MATLAB中执行此操作?
我读过一些数学知识,包括在一定的范围内用一个内核平滑所有的东西,但是我不知道如何在MATLAB中做到这一点。
最佳答案
希望你有图像处理工具箱如果是,那么您可以创建一个带有fspecial function的高斯滤波器,如下所示:
myfilter = fspecial('gaussian',[3 3], 0.5);
我已经在这里使用了hsize([3 3])和sigma(0.5)的默认值,但是您可能需要使用它们hsize只是滤波器的大小,在本例中它是一个3x 3矩阵Sigma是高斯函数的Sigma(见F特殊函数页底部)。
现在您可以使用imfilter来过滤图像:
myfilteredimage = imfilter(unfilteredimage, myfilter, 'replicate');
在这里,我只是传入了未筛选的图像、筛选器和一个参数,该参数说明筛选器应如何处理边界在本例中,我选择了replicate,它将数组边界之外的输入数组值设置为最近的数组边界值,但是您可以尝试其他值(或者不使用该选项,则将所有图像边界之外的值设置为0)。
关于matlab - MATLAB中的高斯平滑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2771114/