Matlab在图像加法去除随机噪声

Matlab在图像加法去除随机噪声,第1张

虽然你的分少,我还是给你写个完整的多功能程序供你学习:

M=imread('dl011jpg') %读取MATLAB中的名为cameraman的图像

subplot(3,3,1)

imshow(M) %显示原始图像

title('original')

P1=imnoise(M,'gaussian',002) %加入高斯躁声

subplot(3,3,2)

imshow(P1) %加入高斯躁声后显示图像

title('gaussian noise');

P2=imnoise(M,'salt & pepper',002) %加入椒盐躁声

subplot(3,3,3)

imshow(P2) %%加入椒盐躁声后显示图像

title('salt & pepper noise');

g=medfilt2(P1) %对高斯躁声中值滤波

subplot(3,3,5)

imshow(g)

title('medfilter gaussian')

h=medfilt2(P2) %对椒盐躁声中值滤波

subplot(3,3,6)

imshow(h)

title('medfilter salt & pepper noise')

l=[1 1 1 %对高斯躁声算术均值滤波

1 1 1

1 1 1];

l=l/9;

k=conv2(P1,l)

subplot(3,3,8)

imshow(k,[])

title('arithmeticfilter gaussian')

%对椒盐躁声算术均值滤波

d=conv2(P2,l)

subplot(3,3,9)

imshow(d,[])

title('arithmeticfilter salt & pepper noise')

I=imread('lena_colorjpg'); nbc=size(I,1); X = im2double(I); % 产生噪声图像 x=imnoise(X,'gaussian',0,0005); % 使用 db2 执行图像的2层小波分解 wname='db2';lev=2; [c,l]=wavedec2(x,lev,wname); sigma_s=0054779; % 图像降噪时,使用wbmpe

x=-4:03:4;

y=-4:03:4;

[X,Y]=meshgrid(x,y);

m1=32;m2=26;n1=05;n2=06;%%m1和m2为均值,n1和n2为方差

r=05;%%r是参数,描述了X和Y之间的某种关系

Z=(1/(2pin1n2sqrt(1-r^2)))exp((-1/2(1-r^2))((X-m1)^2/n1^2-2r(X-m1)(Y-m2)/2n1n2+(Y-m2)^2/n2^2));%%二维正态分布,也就是高斯分布

mesh(X,Y,Z)

%%Z是二维正态分布,一维正态分布(1/sqrt(2pin1))exp((-1/2)(x-m1)^2/n1^2)

产生幅度服从瑞利分布的高斯白噪声

比较简单,就是产生实部和虚部相互独立的高斯序列。Matlab就是:x=randn(n,1)+irandn(n,1);

高斯变量的产生可以用BoxMuller方法,两个gaussian相加就得到了 Railey分布。

然后用hist(abs(x),m)来画, m越大越精细,一般取几百足以,若只想画包络,可以用plot(hist(abs(x),m)) ,绘出其曲线示意图。

线性滤波器法在高抽样率下很难设计滤波器,采用加权的谐波累加逼近的Rice方法似乎用的更广泛

复高斯噪声的包络就是服从瑞利分布的,不用滤波器

如果你说的是要生成多普勒衰落这样有时间相关性的服从瑞利分布的序列

则要用到多普勒滤波,或者正弦波叠加的方法

M=imread('dl011jpg') %读取MATLAB中的名为cameraman的图像

subplot(3,3,1)

imshow(M) %显示原始图像

title('original')

P1=imnoise(M,'gaussian',002) %加入高斯躁声

subplot(3,3,2)

imshow(P1) %加入高斯躁声后显示图像

title('gaussian noise');

P2=imnoise(M,'salt & pepper',002) %加入椒盐躁声

subplot(3,3,3)

imshow(P2) %%加入椒盐躁声后显示图像

title('salt & pepper noise');

g=medfilt2(P1) %对高斯躁声中值滤波

subplot(3,3,5)

imshow(g)

title('medfilter gaussian')

h=medfilt2(P2) %对椒盐躁声中值滤波

subplot(3,3,6)

imshow(h)

title('medfilter salt & pepper noise')

l=[1 1 1 %对高斯躁声算术均值滤波

1 1 1

1 1 1];

l=l/9;

k=conv2(P1,l)

subplot(3,3,8)

imshow(k,[])

title('arithmeticfilter gaussian')

%对椒盐躁声算术均值滤波

d=conv2(P2,l)

subplot(3,3,9)

imshow(d,[])

title('arithmeticfilter salt & pepper noise')

1、打开软件,读入。

2、分别建立33高斯滤波模板和平均滤波模板,并对加噪的进行滤波处理。显示原图、加噪后的和分别用高斯、平均模板滤波后的。

3、结果如图,可以看出平均模板滤波后噪声十分明显,高斯模板滤波后噪声影响相对较小,但也很容易看出。

4、使用中值滤波对进行处理,并显示处理后的图像。

5、从可以看出,中值滤波后的图像基本上看不出来噪声的影响。完成保存就可以了。

以上就是关于Matlab在图像加法去除随机噪声全部的内容,包括:Matlab在图像加法去除随机噪声、如何用matlab求图像的信噪比、怎么用matlab求出图像的噪声方差等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9619985.html

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

发表评论

登录后才能评论

评论列表(0条)

保存