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

运行代码后,会出现三个子图窗口,分别显示原始图像、添加椒盐噪声后的图像以及中值滤波后的图像。可以观察到,中值滤波后的图像去除了椒盐噪声,还原了原始图像的细节。

MATLAB 中值滤波去除椒盐噪声

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

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