matlab添加椒盐噪声

椒盐噪声

椒盐噪声也称为脉冲噪声,是图像中经常见到的一种噪声,它是一种以一定概率随机出现的白点或者黑点,可能是亮的区域有黑色像素或是在暗的区域有白色像素,在这个概率范围之外图像保持不变。

matlab代码

%%
clear all;
image=imread('sample.jpeg');
image_new=saltpepper(image,0.1,0.1);
image_matlab=imnoise(image,'salt & pepper',0.1);
figure(1);
subplot(131);
imshow(image);
title('原始图像')

subplot(132);
imshow(image_new);
title('手写椒盐噪声') 

subplot(133);
imshow(image_matlab);
title('matlab椒盐噪声')

%直接使用salt,pepper的值噪声的数量好像比matlab自带的函数要对很多,对每一个通道都进行了随机,应该是对了
%但是按照上面的,平均下来每一个通道/3,噪声比自带函数少了,随便吧
function f=saltpepper(image,salt,pepper)
[length,width,height]=size(image);
image_new=image;

salt=salt/3;pepper=pepper/3;

%这个太啰嗦了,但是要怎么对特定名字的矩阵进行操作呢??
%要是生成黑白的噪声生成一个随机概率矩阵即可
a1=unifrnd(0,1,length,width);%0-1的随机概率矩阵
a2=(a1>0)&(a1<salt);
a3=(a1>=salt)&(a1<(salt+pepper));

c1=unifrnd(0,1,length,width);%0-1的随机概率矩阵
c2=(c1>0)&(c1<salt);
c3=(c1>=salt)&(c1<(salt+pepper));

b1=unifrnd(0,1,length,width);%0-1的随机概率矩阵
b2=(b1>0)&(b1<salt);
b3=(b1>=salt)&(b1<(salt+pepper));

if height==1
    image_new(a2)=0;
    image_new(a3)=255;
elseif height==3
    t1=image_new(:,:,1);
    t1(a2)=0;
    t1(a3)=255;
    image_new(:,:,1)=t1;
    
    t2=image_new(:,:,2);
    t2(b2)=0;
    t2(b3)=255;
    image_new(:,:,2)=t2;
    
    t3=image_new(:,:,3);
    t3(c2)=0;
    t3(c3)=255;
    image_new(:,:,3)=t3;
    
end

f=image_new;
end

效果图

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值