MATLAB多方法去高斯白噪声

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、用matlab实现多幅图像平均去高斯白噪声. clear;

I=imread('2222.jpg');

I=rgb2gray(I);

imshow(I);

[a,b]=size(I);

I2=zeros(a,b);

noise=randn(a,b)*25;

I1=double(I)+noise;

figure(2);

imshow(uint8(I1));

for n=1:30

noise=randn(a,b)*25;

I1=double(I)+noise;

I2=I2+double(I1);

end;

I2=I2/n;

figure(3);

imshow(uint8(I2));

原图加了白噪声多图去除白噪声

2、用matlab 实现均值滤波去除高斯白噪声.

clear;

I=imread('2222.jpg');

I=rgb2gray(I);

figure;

imshow(I);

noise=randn(a,b)*25;

I=double(I)+noise;

[a,b]=size(I);

I2=zeros(a+2,b+2);

I3=zeros(a,b);

for n=1:a

for m=1:b

原图I2(n+1,m+1)=I(n,m);

end;

end;

for n=2:a

for m=2:b

I3(n-1,m-1)=[I2(n-1,m-1)+I2(n-1,m)+I2( n-1,m+1)+I2(n,m-1)+I2(n,m)+I2(n,m+1) +I2(n+1,m-1)+I2(n+1,m)+I2(n+1,m+1)]/ 9;

end;

均值滤波后图

3、用matlab实现中值滤波去除脉冲噪声. clear;

I=imread('2222.jpg');

I=rgb2gray(I);

figure(1);

imshow(I);

%I0=zeros(1:9);

[a,b]=size(I);

I2=zeros(a+2,b+2);

I3=zeros(a,b);

for n=1:a

for m=1:b

I2(n+1,m+1)=I(n,m);

end;

end;

for n=0:100

I2(round(rand*a),round(rand*b))=0; end; for n=0:200

I2(round(rand*a),round(rand*b))=255; end;

figure(2)

imshow(uint8(I2));

I2=double(I2);

for n=2:a

for m=2:b

I0=[I2(n-1,m-1),I2(n-1,m),I2(n-1,m+1),I2(n,m-1), I2(n,m),I2(n,m+1),I2(n+1,m-1),I2(n+1,m),I2(n+1 ,m+1)];

I0=sort(I0);

I3(n-1,m-1)=I0(5);

end;

end;

处理前原图

添加随机脉冲噪声

处理后图片

心得体会:这两次作业是一起做的,所以心得也基本一样吧,主要是在边缘扩展的时候感觉有点怪怪的,不知道那么扩展对不对,还有不知道除了0扩展之外其他扩展怎么写和效果怎么样,有时间试试看。

题目没看清楚把第三道题做成高斯噪声了,重新改过。

再检查发觉均衡化处理的后的图片的直方图没有遍布0到255,在0到55出现空白,不知道到是什么原因,用其他图片测试正常,就这张图片出现这个问题。

相关文档
最新文档