【无标题】MATLAB给图像批量添加几种噪声。

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

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值