I=imread('C:\Users\Administrator\Pictures\2.jpeg');%读取图像
I = rgb2gray(I); %灰度处理
G=imnoise(I,'gaussian',0.3);%加入高斯噪声,密度为0.3
J=imnoise(I,'salt & pepper',0.3);%加入椒盐噪声,密度为0.3
A=imnoise(I,'speckle',0.3);%加入均匀分布噪声,密度为0.3
%显示原图
subplot(6,3,1);imshow(I);
title('原始图像');
%显示加入椒盐噪声之后的图像
subplot(6,3,2); imshow(J);
title('加入椒盐噪声之后的图像');
%%%%%%%%%%%%【对椒盐噪声去噪】%%%%%%%%%%%%
%采用二维中值滤波函数medfilt2对受椒盐噪声干扰的图像滤波
K1= medfilt2(J);
%中值滤波显示
subplot(6,3,3);imshow(K1);
title('中值滤波');
%采用算术均值滤波
K2=imfilter(J,fspecial('average',3));%模板尺寸为3
K3=imfilter(J,fspecial('average',5));%模板尺寸为5
K6=imfilter(J,fspecial('average',7));%模板尺寸为7
%均值滤波显示
subplot(6,3,4); imshow(K2);
title('均值滤波,尺寸3');
subplot(6,3,5);imshow(K3);
title('均值滤波,尺寸5');
subplot(6,3,6);imshow(K6);
title('均值滤波,尺寸7');
%显示原图
subplot(6,3,7);imshow(I);
title('原始图像');
%显示加入高斯噪声之后的图像
subplot(6,3,8); imshow(G);
title('加入高斯噪声之后的图像');
%%%%%%%%%%%%【对高斯噪声去噪】%%%%%%%%%%%%
%采用二维中值滤波函数medfilt2对受高斯噪声干扰的图像滤波
K1= medfilt2(G);
%中值滤波显示
subplot(6,3,9);imshow(K1);
title('中值滤波');
%采用MATLAB中的函数filter2对受噪声干扰的图像进行均值滤波
K2=filter2(fspecial('average',3),G)/255; %模板尺寸为3
K3=filter2(fspecial('average',5),G)/255;% 模板尺寸为5
K6= filter2(fspecial('average',7),G)/255; %模板尺寸为7
%均值滤波显示
subplot(6,3,10); imshow(K2);
title('均值滤波,尺寸3');
subplot(6,3,11);imshow(K3);
title('均值滤波,尺寸5');
subplot(6,3,12);imshow(K6);
title('均值滤波,尺寸7');
%显示原图
subplot(6,3,13);imshow(I);
title('原始图像');
%显示加入均匀分布噪声之后的图像
subplot(6,3,14); imshow(A);
title('加入均匀分布噪声之后的图像');
%%%%%%%%%%%%【对均匀分布噪声去噪】%%%%%%%%%%%%
%采用二维中值滤波函数medfilt2对均匀分布噪声干扰的图像滤波
K1= medfilt2(A);
%中值滤波显示
subplot(6,3,15);imshow(K1);
title('中值滤波');
%采用几何均值滤波
K2=exp(imfilter(log(A),fspecial('average',3)));%模板尺寸为3
K3=exp(imfilter(log(A),fspecial('average',5)));%模板尺寸为5
K6=exp(imfilter(log(A),fspecial('average',7)));%模板尺寸为7
%均值滤波显示
subplot(6,3,16); imshow(K2);
title('均值滤波,尺寸3');
subplot(6,3,17);imshow(K3);
title('均值滤波,尺寸5');
subplot(6,3,18);imshow(K6);
title('均值滤波,尺寸7');
1,对图像分别叠加高斯、均匀和椒盐噪声,
2,采用均值滤波算法,实验3*3、5*5,、7*7模板对噪声图像进行去噪处理
3,采用中值滤波算法对图像进行去噪处理