给数据添加噪声参见: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 noise、multiplicative 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('添加泊松噪声');文章来源:https://www.toymoban.com/news/detail-458203.html
文章来源地址https://www.toymoban.com/news/detail-458203.html
到了这里,关于matlab给图像添加多种噪声的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!