数字图像处理实验六噪声添加和空域滤波
1. 进入 Matlab 7.11 集成开发环境,并打开脚本编辑器。
2. 在脚本编辑器中编写一段程序,要求:
(1) 读入存放在 eight.tif 中的原始图像;
(2) 调用 imnoise 函数向该图像中添加 2% 的椒盐噪声 ( 参数为“ salt &
pepper ” ) ;
(3) 在同一窗口中,显示原始图像和加噪后的图像;
(4) 将编写的程序保存为 Example3_2_5AddSaltPepper1.m 。
3. 修改上述程序,将添加的噪声改为均值为 0 、方差为 0.001 的高斯噪声 ( 参数
为“ gaussian ” ) ,并将编写的程序另存为 Example3_2_5AddSaltPepper2.m 。
4. 运行这两个程序,修改噪声类型和参数大小,比较噪声对原始图像的影响。
5. 在脚本编辑器中编写一段程序,要求:
(1) 读入存放在 eight.tif 中的原始图像;
(2) 分别向该图像中添加椒盐噪声;
(3) 分别对加噪图像进行 3× 3 平均值滤波和中值滤波,并在同一窗口中,
显示原始图像、加噪后的图像和两种滤波结果图像;
(4) 将编写的程序保存为 Example3_2_6MedianFilter1.m 。
6. 修改上述程序,将添加的噪声改为均值为 0 、方差为 0.001 的高斯噪声 ( 参数
为“ gaussian ” ) ,并将编写的程序另存为 Example3_2_6MedianFilter2.m 。
7. 运行这两个程序,修改噪声类型和参数大小,比较不同滤波方法的滤波效果
%%Example3_2_5AddSaltPepper1
clear;
clc;
TIF=imread('eight.tif');%%读入TIF图像
%%该图像中添加2%的椒盐噪声
J=imnoise(TIF,'salt & pepper',0.02);
H.color=[1 1 1];%%设置背景为白色,打开原图像
figure(H);
subplot(121);
imshow(J);
title('0.02加噪图');
subplot(122);
imshow(TIF);
title('原图');
%%Example3_2_5AddSaltPepper2
clear;
clc;
TIF=imread('eight.tif');%%读入TIF图像
%%将添加的噪声改为均值为0方差为0.001的高斯噪声
J=imnoise(TIF,'gaussian',0,0.01);
H.color=[1 1 1];%%设置背景为白色,打开原图像
figure(H);
subplot(121);
imshow(J);
title('均值为 0、方差为 0.001 的高斯噪声图');
subplot(122);
imshow(TIF);
title('原图');
%%Example3_2_6MedianFilter1
clear;
clc;
TIF=imread('eight.tif');%%读入TIF图像
%%该图像中添加2%的椒盐噪声
J=imnoise(TIF,'salt & pepper',0.02);
J=rgb2gray(J);
%%行3×3平均值滤波
Y=ones(3,3)/9;
B_1=imfilter(J,Y);
%%中值滤波
B_2=medfilt2(J);
%%对比
H.color=[1 1 1];%%设置背景为白色,打开原图像
figure(H);
subplot(221);
imshow(TIF);
title('原图');
subplot(222);
imshow(J);
title('0.02加噪图');
subplot(223);
imshow(B_1);
title('3×3平均值滤波图');
subplot(224);
imshow(B_2);
title('中值滤波图');
%%Example3_2_6MedianFilter2
clear;
clc;
TIF=imread('eight.tif');%%读入TIF图像
%%将添加的噪声改为均值为0方差为0.001的高斯噪声
J=imnoise(TIF,'gaussian',0,0.01);
J=rgb2gray(J);
%%行3×3平均值滤波
Y=ones(3,3)/9;
B_1=imfilter(J,Y);
%%中值滤波
B_2=medfilt2(J);
%%对比
H.color=[1 1 1];%%设置背景为白色,打开原图像
figure(H);
subplot(221);
imshow(TIF);
title('原图');
subplot(222);
imshow(J);
title('均值为 0、方差为 0.001 的高斯噪声图');
subplot(223);
imshow(B_1);
title('3×3平均值滤波图');
subplot(224);
imshow(B_2);
title('中值滤波图');