matlab给图像添加多种噪声

给数据添加噪声参见:MATLAB给数据加噪声/扰动_Dust_Evc的博客-CSDN博客_matlab 噪声

# 个人记录

 该文代码文件:Add_Noise_to_Image.mlx
 
# 个人记录

m=256; n=256;%图像大小

a=0.04;

k=-1/a;

I=k*log(1-rand(m, n));%指数分布噪声

figure;

subplot(121);  imshow(uint8(I)),title('指数分布噪声');

subplot(122);  imhist(uint8(I)),title('指数分布噪声');

% 【下面为matlab自带函数exprnd,生成指数随机数的公式】

% % Generate uniform random values, and apply the exponential inverse CDF.

% r = -mu .* log(rand(sizeOut, 'like', mu)); % == expinv(u, mu)

m=256; n=256;%图像大小

a=50;

b=180;

I=a+(b-a)*rand(m,n);%均匀分布噪声

figure;

subplot(121);  imshow(uint8(I)),title('均匀分布噪声');

subplot(122);  imhist(uint8(I)),title('均匀分布噪声');

%通过均值和方差产生高斯噪声

I=uint8(100*ones(256, 256));%均值为100

J=imnoise(I, 'gaussian', 0, 0.01);%高斯噪声 方差0.01

K=imnoise(I, 'gaussian', 0, 0.03);

figure;

subplot(121);  imshow(J),title('高斯噪声 方差0.01');

subplot(122);  imhist(J),title('高斯噪声 方差0.01');

figure;

subplot(121);  imshow(K),title('高斯噪声 方差0.03');

subplot(122);  imhist(K),title('高斯噪声 方差0.03');

%通过位置信息产生高斯噪声

I=imread('coins.png');

I=im2double(I);

V=zeros(size(I));%建立矩阵V

for i=1:size(V, 1)

    V(i,:)=0.02*i/size(V,1);

end

J=imnoise(I, 'localvar', V);%添加高斯噪声 V为与I大小相同的数组

figure;

subplot(121);  imshow(I),title('原图像');

subplot(122);  imshow(J),title('添加高斯噪声后图像');

%根据亮度值产生高斯噪声

I=imread('cameraman.tif');

I=im2double(I);

h=0:0.1:1;

v=0.01:-0.001:0;

J=imnoise(I, 'localvar', h, v);%h为在[0,1]之间的向量 表示图像的亮度值 v为一个长度和h相同,表示与h中亮度对应的高斯噪声的方差

figure;

subplot(121);  imshow(I),title('原图像');

subplot(122);  imshow(J),title('添加高斯噪声后的图像');

I=imread('cameraman.tif');

I=im2double(I);

J=imnoise(I, 'salt & pepper', 0.01);%0.01为噪声密度

K=imnoise(I, 'salt & pepper', 0.03);

figure;

subplot(121);  imshow(J),title('椒盐噪声,噪声密度0.01');

subplot(122);  imshow(K),title('椒盐噪声,噪声密度0.03');

I=imread('cameraman.tif');

I=im2double(I);

R=rand(size(I));

J=I;

J(R<=0.02)=0;%添加椒噪声

K=I;

K(R<=0.03)=1;%添加盐噪声

figure;

subplot(121);  imshow(J),title('含椒噪声');

subplot(122);  imshow(K),title('含盐噪声');

% 添加Speckle noisemultiplicative noise

I=imread('cameraman.tif');

J=imnoise(I, 'speckle');%方差默认值

K=imnoise(I, 'speckle', 0.2);%方差0.2

figure;

subplot(121);  imshow(J),title('添加斑点噪声,方差0.05');

subplot(122);  imshow(K),title('添加斑点噪声,方差0.2');

I=imread('cameraman.tif');

J=imnoise(I, 'poisson');

figure;

subplot(121);  imshow(I),title('原始图像');

subplot(122);  imshow(J),title('添加泊松噪声');

  • 12
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值