灰度图像的噪声叠加——高斯白噪声、瑞利噪声、伽马噪声、指数噪声、均匀噪声和椒盐噪声(Matlab)

clc;
clear;
%读入图像,并转换为double型
I=imread('D:\Gray Files\5-26.tif');
I_D=im2double(I);
%获得图像大小
[M,N]=size(I_D);

%%%========================生成高斯白噪声==================================
a=0;
b=0.001;
N_Gau=a+sqrt(b)*randn(M,N); 
%将噪声叠加到图像上
J_Gaussian=I_D+N_Gau;
%保存噪声数据
%%%======================生成瑞利噪声======================================
a=0;
b=0.08;
B=1;
N_Ray1=a+b*raylrnd(B,M,N);
%将噪声叠加到图像上
J_rayl=I_D+N_Ray1;

%%=====================叠加伽马噪声=======================================
a=0;
b=0.08;
A=1;
B=2;
N_Gam=a+b*gamrnd(A,B,[M,N]);
%将噪声叠加到图像上
J_Gamma=I_D+N_Gam;

%%=====================叠加指数噪声=======================================
a=0;
b=0.08;
mu=2;
N_exp=a+b*exprnd(mu,[M,N]);
J_exp=I_D+N_exp;

%%=====================叠加均匀分布噪声=======================================
a=0;
b=0.08;
A=0;
B=2;
N_unif=a+b*unifrnd(A,B,[M,N]);
J_unif=I_D+N_unif;

%%=====================叠加椒盐分布噪声=======================================
a=0.25;
J_salt = imnoise(I_D,'salt & pepper',a);


subplot(2,3,1);
imshow(J_Gaussian);
title('高斯噪声');
subplot(2,3,2);
imshow(J_rayl,[]);
title('瑞利噪声');
subplot(2,3,3);
imshow(J_Gamma,[]);
title('伽马噪声');
subplot(2,3,4);
imshow(J_exp,[]);
title('指数噪声');
subplot(2,3,5);
imshow(J_unif,[]);
title('均匀分布噪声');
subplot(2,3,6);
imshow(J_salt,[]);
title('椒盐噪声');

 

你可能感兴趣的:(图像处理)