MATLAB批量给图像添加几种噪声并去除白边保存图片。
高斯噪声:
%%高斯噪声:(自己制作的高斯噪声)
for j=1:10
for i=1:100
t=imread('bp_01.jpg');%加载读取自己想要的图片文件,该图片要在此例程MATLAB文件同一目录下,jpg格式图片是三通道图片RGB,所以t是三维
[m,n,z]=size(t);
y=0+(0.1+j*0.01)*randn(m,n);%二维高斯分布矩阵 0是均值 0.1是标准差
%先将其double化,转成浮点型,再除以255 便于后面计算
t1=double(t)/255;
%加上噪声
t1=t1+y;
%将像素范围扩大至0--255
t1=t1*255;
%转换为uint8类型 matlab默认double类型图片数据是位于0~1之间的,而uint8是位于0-255之间 uint8类型为无符号8位整数,范围 : [0 255],四舍五入
t1=uint8(t1);
% subplot(2,5,1),imshow(t),title('原图');
% hold on;
% subplot(2,5,i+1),imshow(t1),title('加入均值为0,标准差为0.1的高斯噪声后');
% hold on;
a=(j-1)*100+i; %设置图像序号
figure(a);
imshow(t1);%显示加完噪声的图片
str=['bp_gaussian' num2str(a)];%设置图片保存名称
set(gcf,'Position',[300 300 512 512]);%[在电脑上显示位置300*300 图片显示大小512*512]
set(gca,'position',[0 0 1 1]);%去除白边
saveas(gcf,['H:\Graduation Thesis\Software\Backprojection\dataset_bp\',str],'jpg');%保存图片
close(gcf); %关闭之前显示的图片
end
end
椒盐噪声:
%%椒盐噪声:
for j=1:2
for i=1:10
F=imread('bp_01.jpg');
F5 = imnoise(F,'salt & pepper',0.01+0.002*j); %给图像加入噪声
a=(j-1)*100+i;
figure(a)
imshow(F5);title('加椒盐噪声之后');
str=['bp_salt_pepper' num2str(a)];
set(gcf,'Position',[300 300 512 512]);
set(gca,'position',[0 0 1 1]);
saveas(gcf,['H:\Graduation Thesis\Software\Backprojection\dataset_bp\',str],'jpg');
close(gcf);
end
end
斑点噪声:
%%斑点噪声
for j=1:10
for i=1:100
F=imread('bp_01.jpg');
F1 = imnoise(F,'speckle',0.01+0.001*j); %给图像加入噪声 0.003为可以修改的参数
a=(j-1)*100+i;
figure(a)
imshow(F1);title('加斑点噪声之后');
str=['bp_speckle' num2str(a)];
set(gcf,'Position',[300 300 512 512]);
set(gca,'position',[0 0 1 1]);
saveas(gcf,['H:\Graduation Thesis\Software\Backprojection\dataset_bp\',str],'jpg');
close(gcf);
end
end
完整代码:
clear all;
clc ;
%% 本例子使用图像是256*256大小
%%高斯噪声:(自己制作的高斯噪声)
for j=1:10
for i=1:100
t=imread('bp_01.jpg');%加载读取自己想要的图片文件,该图片要在此例程MATLAB文件同一目录下,jpg格式图片是三通道图片RGB,所以t是三维
[m,n,z]=size(t);
y=0+(0.1+j*0.01)*randn(m,n);%二维高斯分布矩阵 0是均值 0.1是标准差
%先将其double化,转成浮点型,再除以255 便于后面计算
t1=double(t)/255;
%加上噪声
t1=t1+y;
%将像素范围扩大至0--255
t1=t1*255;
%转换为uint8类型 matlab默认double类型图片数据是位于0~1之间的,而uint8是位于0-255之间 uint8类型为无符号8位整数,范围 : [0 255],四舍五入
t1=uint8(t1);
% subplot(2,5,1),imshow(t),title('原图');
% hold on;
% subplot(2,5,i+1),imshow(t1),title('加入均值为0,标准差为0.1的高斯噪声后');
% hold on;
a=(j-1)*100+i; %设置图像序号
figure(a);
imshow(t1);%显示加完噪声的图片
str=['bp_gaussian' num2str(a)];%设置图片保存名称
set(gcf,'Position',[300 300 512 512]);%[在电脑上显示位置300*300 图片显示大小512*512]
set(gca,'position',[0 0 1 1]);%去除白边
saveas(gcf,['H:\Graduation Thesis\Software\Backprojection\dataset_bp\',str],'jpg');%保存图片
close(gcf); %关闭之前显示的图片
end
end
%%椒盐噪声:
for j=1:2
for i=1:10
F=imread('bp_01.jpg');
F5 = imnoise(F,'salt & pepper',0.01+0.002*j); %给图像加入噪声
a=(j-1)*100+i;
figure(a)
imshow(F5);title('加椒盐噪声之后');
str=['bp_salt_pepper' num2str(a)];
set(gcf,'Position',[300 300 512 512]);
set(gca,'position',[0 0 1 1]);
saveas(gcf,['H:\Graduation Thesis\Software\Backprojection\dataset_bp\',str],'jpg');
close(gcf);
end
end
%%斑点噪声
for j=1:10
for i=1:100
F=imread('bp_01.jpg');
F1 = imnoise(F,'speckle',0.01+0.001*j); %给图像加入噪声 0.003为可以修改的参数
a=(j-1)*100+i;
figure(a)
imshow(F1);title('加斑点噪声之后');
str=['bp_speckle' num2str(a)];
set(gcf,'Position',[300 300 512 512]);
set(gca,'position',[0 0 1 1]);
saveas(gcf,['H:\Graduation Thesis\Software\Backprojection\dataset_bp\',str],'jpg');
close(gcf);
end
end