Matlab怎么给图像加噪声?

Matlab怎么给图像加噪声?,第1张

Matlab中为图片加噪声的语句是:

(1)J = imnoise(I,type)

(2)J = imnoise(I,type,parameters)

其中I为原图象的灰度矩阵,J为加噪声后图象的灰度矩阵

一般情况下用(1)中表示即可,(2)中表示是允许修改参数,而(1)中使用缺省参数

至于type可有五种,分别为'gaussian'(高斯白噪声),'localvar'(与图象灰度值有关的零均值高斯白噪声),'poisson'(泊松噪声),'salt &pepper'(椒盐噪声)和'speckle'(斑点噪声)具体(2)中参数值的设定可根据个人需要其余情况以及若还有不懂请参考Matlab帮助文件。

在此使用'salt &pepper'(椒盐噪声),并将其参数设置为0.6。其例子如下:

L = imread(‘image_ori.jpg’)

J = imnoise(L, ‘salt &pepper’, 0.6)

imshow(J)//立即d出窗口,显示加了噪声后的图片

imwrite(J, ‘image_noise.jpg’, ‘jpg’, ‘Quality’, 100)//按100%的质量存储加了噪声的图片,Quality的默认值为75.

以上程序就表示把原图像加入椒盐噪声,但注意要把图像和以上程序的M文件放在同一个子目录下。

Matlab中为图片加噪声的语句:

1、J

=

imnoise(I,type)

2、J

=

imnoise(I,type,parameters)

其中,I为原图象的灰度矩阵,J为加噪声后图象的灰度矩阵;

也可以使用WGN,产生高斯白噪声;

语句如下:

1、y

=

wgn(m,n,p)

产生一个m行n列的高斯白噪声的矩阵,p以dBW为单位指定输出噪声的强度。

2、y

=

wgn(m,n,p,imp)

以欧姆(Ohm)为单位指定负载阻抗。

3、y

=

wgn(m,n,p,imp,state)

重置RANDN的状态。

1、添加的是20%的随即噪声

image=double(image)

I=image+20*randn(size(image))

figureimshow(uint8(I))

title('noised image')

[a1,h1,v1,d1]=dwt2(I,'sym8')

[a2,h2,v2,d2]=dwt2(a1,'sym8')

[a3,h3,v3,d3]=dwt2(a2,'sym8')

sigma=median(abs(d1(:)))/0.6745

thr1=thr*2^(-(3-1)/2)

thr2=thr*2^(-(3-2)/2)thr3=thr*2^(-(3-3)/2)

ccch=soft_t(h3,thr1)cccv=soft_t(v3,thr1)cccd=soft_t(d3,thr1)cch=soft_t(h2,thr2)ccv=soft_t(v2,thr2)ccd=soft_t(d2,thr2)ch=soft_t(h1,thr3)cv=soft_t(v1,thr3)cd=soft_t(d1,thr3)

cca=idwt2(a3,ccch,cccv,cccd,'sym8')ca=idwt2(cca,cch,ccv,ccd,'sym8')J1=idwt2(ca,ch,cv,cd,'sym8')J1=uint8(J1)

figureimshow(J1)title('denoised image')p=psnr(image,J1)

2、加高斯白噪声

image=double(image)

I=awgn(image,5)%加入信噪比为5分贝的高斯白噪声

figureimshow(uint8(I))title('noised image')

注:源代码是计算机语言,不能随便用自己语言的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11708008.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存