给数据添加噪声参见: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('添加泊松噪声');

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐