数字图像处理噪声处理和均值滤波和中值虑波_第1页
数字图像处理噪声处理和均值滤波和中值虑波_第2页
数字图像处理噪声处理和均值滤波和中值虑波_第3页
数字图像处理噪声处理和均值滤波和中值虑波_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数字图像处理噪声处理和均值滤波和中值虑波一、第一题程序:I=imread('01.jpg');gray=rgb2gray(I);subplot(231);imshow(gray,),title('输入图像'),ra,ca=size(gray);r=0:255;lc=gray(:); %将a按列拉长p=hist(lc,r); %统计各个灰度值出现的次数pr=p/length(lc);subplot(234);bar(pr);title('输入图像直方图');gaussian_noise=imnoise(gray,'gaussian'

2、,0,0.001);subplot(232);imshow(gaussian_noise,);title('高斯噪声');bb=gaussian_noise(:);pg=hist(bb,r);pgr=pg/length(bb);subplot(235);bar(pgr);title('高斯噪声直方图');salt_noise=imnoise(gray,'salt & pepper',0.1);subplot(233);imshow(salt_noise,);title('椒盐噪声');cc=salt_noise(:);ps

3、=hist(cc,r);psr=ps/length(cc);subplot(236);bar(psr);title('椒盐噪声直方图');二、结果:三、第二题程序:%演示算术均值滤波器a=imread('111.jpg');a=a(:,:,3);ra,ca=size(a);a1=double(imnoise(a,'gaussian',0,0.01);%叠加严重的高斯噪声 %选定滤波器的大小为st×st,st可调st=3,h=ones(st,st);g=filter2(h, a1)./sum(sum(h);subplot(2,3,2),i

4、mshow(a1,),title('有高斯噪声的输入图像'),subplot(2,3,5),imshow(g,),title('算术均值滤波后的图像,用3×3掩模')a=imread('111.jpg');a=a(:,:,3);ra,ca=size(a);a1=imnoise(a,'salt & pepper',0.25);a1=double(a1); %选定最小滤波器的大小为st×st,st可调,但取奇数st=3,Sxymin=zeros(st,st);%预先留出邻域%选定第二滤波器的大小为(st+2

5、)×(st+2)Sxymed=zeros(st+2,st+2);%预先留出邻域%选定第二滤波器的大小为(st+4)×(st+4)Sxymax=zeros(st+4,st+4);%预先留出邻域 a=zeros(ra+2.*st,ca+2.*st);%预先留出一个图像a(st+1:ra+st,st+1:ca+st)=a1;%将输入图像放大到(ra+2.*st)×(ca+2.*st)g=zeros(ra+2.*st,ca+2.*st);%预先留出输出图像subplot(2,3,1),imshow(a,),title('有严重椒盐噪声的输入')for n=

6、st+1:ra+st for m=st+1:ca+st for nn=1:st+4 for mm=1:st+4 Sxymax(nn,mm)=a(n+nn-st-1,m+mm-st-1);%赋掩模内的值 end end zxy=a(n,m); Sxymin=Sxymax(3:st+2,3:st+2); Sxymed=Sxymax(2:st+3,2:st+3); sortSxymin=sort(Sxymin(:);%将像素按升序排列 sortSxymed=sort(Sxymed(:);%将像素按升序排列 sortSxymax=sort(Sxymax(:);%将像素按升序排列 zminmin=sor

7、tSxymin(1,1);%排序后的最小像素的值为灰度的最小值zminmin zmedmin=sortSxymed(1,1);%排序后的最小像素的值为灰度的最小值zmedmin zmaxmin=sortSxymax(1,1);%排序后的最小像素的值为灰度的最小值zmaxmin zminmed=sortSxymin(st+2);%排序后的第st+2个像素的值是中值zminmed zmedmed=sortSxymed(st.*4+1);%排序后的第st.*4+1个像素的值是中值zmedmed zmaxmed=sortSxymax(st.*8+1);%排序后的第st.*8+1个像素的值是中值zmax

8、med zminmax=sortSxymin(st.*st);%第st.*st个像素的值是最大值zminmax zmedmax=sortSxymed(st+2).*(st+2);%第(st+2).*(st+2)个像素的值是最大值zmedmax zmaxmax=sortSxymax(st+4).*(st+4);%第(st+4).*(st+4)个像素的值是最大值zmaxmaxif zminmin<zminmed&zminmed<zminmax if zminmin<zxy&zxy<zminmax g(n,m)=zxy; else g(n,m)=zminmed

9、; end else if zmedmin<zmedmed&zmedmed<zmedmax if zmedmin<zxy&zxy<zmedmax g(n,m)=zxy; else g(n,m)=zmedmed; end else if zmaxmin<zmaxmed&zmaxmed<zmaxmax if zmaxmin<zxy&zxy<zmaxmax g(n,m)=zxy; else g(n,m)=zmaxmed; end else g(n,m)=zxy; end end end endendsubplot(2,3

10、,4),imshow(g,),title('自适应中值滤波器的处理结果')a=imread('20.jpg');subplot(2,3,3),imshow(a,);title('斜条纹')fxy=a(:,:,1);fxy=double(fxy);ra,ca=size(fxy); Fuv=fftshift(fft2(fxy);u=1:ra;v=1:ca;u,v=meshgrid(u,v);u0=129-99;%噪声在频谱面上的中心v0=129-99;%噪声在频谱面上的中心D0=30%陷波区域的半径Duv1=(u-ra/2-u0).2+(v-ca/2-v0).2).0.5;Duv2=(u-ra/2+u0).2+(v-ca/2+v0).2).0.5;%下面使用高斯陷波滤波器Huv3=zeros(ra,ca

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论