clear all; close all;
I = imread('cameraman.tif');
I = im2double(I);
I = imnoise(I, 'salt & pepper', 0.05);
J = medfilt2(I, [3, 3]);
figure;
subplot(121);
imshow(I);
title('Original Image with Salt and Pepper Noise');
subplot(122);
imshow(J);
title('Image with Median Filtered');
解释:
-
clear all; close all;
:清空工作空间中的所有变量并关闭所有图形窗口。 -
I = imread('cameraman.tif');
:读取名为cameraman.tif
的图像,并赋值给I
。 -
I = im2double(I);
:将图像I
的数据类型转换为双精度浮点数,以便进行后续处理。 -
I = imnoise(I, 'salt & pepper', 0.05);
:在图像I
上添加椒盐噪声,噪声密度为0.05。 -
J = medfilt2(I, [3, 3]);
:使用二维中值滤波器medfilt2
对图像I
进行滤波,滤波窗口大小为3x3,得到图像J
。 -
figure;
:创建一个新的图形窗口。 -
subplot(121); imshow(I);
:在第一个子图(1,2,1)中显示添加了椒盐噪声的原始图像I
。 -
subplot(122); imshow(J);
:在第二个子图(1,2,2)中显示使用中值滤波器处理后的图像J
。
拓展:
- 保存图像:可以将处理后的图像
J
保存为文件。
% 保存处理后的图像
imwrite(uint8(J), 'cameraman_with_median_filtered.png');
-
调整滤波窗口大小:可以尝试使用不同大小的滤波窗口,来观察对图像去噪效果的影响。
-
分析处理效果:可以进一步分析处理后的图像效果,比如通过计算图像的均值和方差。
-
比较不同去噪方法的影响:可以比较不同去噪方法对图像质量的影响,以评估不同方法的效果。