MATLAB 均值滤波去除椒盐噪声示例

以下代码示例使用 MATLAB 实现均值滤波去除图像中的椒盐噪声。

clc;
clear;
I = imread('D:\matblab_21b\projects\picture\test.tif'); % 读取图片
I_PepperSalt=imnoise(I,'salt & pepper'); % 添加椒盐噪声
Mat = ones(3,3)/9; % 3×3均值滤波矩阵 
[m,n] = size(I_PepperSalt); % 读取图像长和宽 
I1 = double(I_PepperSalt); %将图像转换成double类型
I2 = I1; 
for i=2:m-1  
    for j=2:n-1 %从去除边缘的像素开始滤波
        Mat2 = I1(i-1:i+1,j-1:j+1).*Mat;
        s = sum(Mat2(:));
        I2(i,j) = s;
    end
end
I3 = uint8(I2);
%%图像对比
figure;
subplot(131)
imshow(I);title('原始图像');
subplot(132)
imshow(I_PepperSalt);title('椒盐噪声图像');
subplot(133)
imshow(I3);title('均值滤波图像');

运行结果:

image.png

可以看到,经过均值滤波后,图像中的椒盐噪声得到了一定程度的去除,但是图像的细节部分也被平滑了,失去了一些锐度。因此,在实际应用中需要根据具体情况选择合适的滤波方法和参数。

MATLAB 均值滤波去除椒盐噪声示例

原文地址: https://www.cveoy.top/t/topic/nz8k 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录