版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一加噪f=imread('mch.tif'); figure(1);imshow(f); title('原始图像'); g=imnoise(f,'salt & pepper',0.2); figure(2);imshow(g);title('椒盐噪声污染的图像');二图像去噪 1. 均值滤波器【1】均值滤波: 本例对一幅数字图像添加高斯噪声,并分别用3*3和7*7均值滤波模板进行噪声的滤除。所需程序代码如下: clear all %打开图像 I=imread('mch.tif'); %创建均值滤波模板 H1
2、=ones(3)/9; H2=ones(7)/49; %添加高斯噪声,均值为0,方差为0.02 J=imnoise(I,'gaussian',0,0.02); %转换J为double数据类型 J=double(J); %均值滤波 G1=conv2(J,H1,'same'); G2=conv2(J,H2,'same'); %图像显示 subplot(2,2,1); imshow(I); title('原始图像'); subplot(2,2,2); imshow(J,); title('添加高斯噪声图像'); subp
3、lot(2,2,3); imshow(G1,); title('3*3均值滤波图像'); subplot(2,2,4); imshow(G2,); title('7*7均值滤波图像');【2】超限像素平滑法:clear all %打开图像 I=imread('pout.tif'); m n=size(I);%求图像尺寸 T=50;%设定阈值 G=; %创建均值滤波模板 H1=ones(3)/9; %添加椒盐噪声 J=imnoise(I,'salt & pepper',0.05); %转换J为double数据类型 J=dou
4、ble(J); %均值滤波 G1=conv2(J,H1,'same'); %超限像素平滑 for i=1:m for j=1:n if abs(J(i,j)-G1(i,j)>T G(i,j)=G1(i,j); else G(i,j)=J(i,j); end end end %图像显示 subplot(2,2,1); imshow(I); title('原始图像'); subplot(2,2,2); imshow(J,); title('添加椒盐噪声图像'); subplot(2,2,3); imshow(G1,); title('3
5、*3均值滤波图像'); subplot(2,2,4); imshow(G,); title('超限像素平滑图像');2. 中值滤波 clear all %打开图像 I=imread('21.tif'); %添加椒盐噪声 N1=imnoise(I,'salt & pepper',0.04); %添加高斯噪声 N2=imnoise(I,'gaussian',0,0.02); %添加乘性噪声 N3=imnoise(I,'speckle',0.02); G1=medfilt2(N1); G2=medfilt
6、2(N2); G3=medfilt2(N3); %分别显示噪声图像和中值滤波图像 subplot(2,3,1); imshow(N1); title('添加椒盐噪声图像'); subplot(2,3,2); imshow(N2); title('添加高斯噪声图像'); subplot(2,3,3); imshow(N3); title('添加乘性噪声图像'); subplot(2,3,4); imshow(G1); title('椒盐噪声中值滤波图像'); subplot(2,3,5); imshow(G2); title(
7、9;高斯噪声中值滤波图像'); subplot(2,3,6); imshow(G3); title('乘性噪声中值滤波图像');3. 维纳滤波 【1】 clear all I=imread('mch.tif'); %添加高斯噪声 N1=imnoise(I,'gaussian',0,0.005); %wiener2滤波 J1=wiener2(N1,5 5); %分别显示噪声图像和滤波图像 subplot(1,2,1); imshow(N1); title('添加高斯噪声图像'); subplot(1,2,2); imshow
8、(J1); title('维纳滤波图像'); 【2】 %读原图 i=imread('20.tif'); subplot(2,2,1); imshow(i); title('原图'); axis square; j=imnoise(i,'gaussian',0,0.1); subplot(2,2,2); imshow(j); title('加噪图像'); axis square; %用sym4小波函数对j进行2层分解 c,l=wavedec2(j,2,'sym4'); %实现低通滤波消噪 a1=uin
9、t8(wrcoef2('a',c,l,'sym4',2); %用coif2小波函数对j进行2层分解 gc,gl=wavedec2(a1,2,'coif2'); n=1,2;%设置尺度向量 p=10.28,24.08;%设置阈值向量 %对三个高频系数进行阈值处理 nc=wthcoef2('h',gc,gl,n,p,'s'); nc=wthcoef2('v',gc,gl,n,p,'s'); nc=wthcoef2('d',gc,gl,n,p,'s'); m
10、c=wthcoef2('h',gc,gl,n,p,'s'); mc=wthcoef2('v',gc,gl,n,p,'s'); mc=wthcoef2('d',gc,gl,n,p,'s'); %对更新后的小波分解结构进行阈值处理 x2=waverec2(mc,gl,'coif2'); %进行中值滤波 for ii=1:252; for jj=1:252; temp=0; for m=0:3 for n=0:3 temp=temp+double(x2(ii+m,jj+n); end en
11、d temp=temp/16; x4(ii,jj)=temp; end end for ii=253:256 for jj=253:256 x4(ii,jj)=double(i(ii,jj); end end %显示去噪图像 subplot(2,2,3); imshow(uint8(x4); title('消噪图像'); axis square; 4. 小波图像降噪 【1】使用wdencmp函数 %装载图像 load sinsin %添加噪声 init=20100111; randn('seed',init); x=X+18*randn(size(X); %获取
12、默认值 thr,sorh,keepapp=ddencmp('den','wv',x); %使用全局阈值降噪 xd=wdencmp('gbl',x,'sym4',2,thr,sorh,keepapp); subplot(2,2,1) imshow(X,map);title('原始图像'); subplot(2,2,2) imshow(x,map);title('加噪图像'); subplot(2,2,3) imshow(xd,map);title('降噪图像');【2】使用wbmpen
13、函数 %装载图像 load belmont2; nbc=size(map,1); %使用coif2执行图象的3层小波分解 wname='coif2'lev=3; c,s=wavedec2(X,lev,wname); %由第1层的系数估计噪声标准差 det1=detcoef2('compact',c,s,1); sigma=median(abs(det1)/0.6745; %对图像降噪,用wbmpen函数选择全局阈值 alpha=1.2; thr=wbmpen(c,1,sigma,alpha); %使用软阈值和保存的低频信号,进行图像降噪 keepapp=1; x
14、d=wdencmp('gbl',c,s,wname,lev,thr,'s',keepapp); %结果显示 colormap(pink(nbc); subplot(1,2,1); image(wcodemat(X,nbc); title('原始图像'); subplot(1,2,2); image(wcodemat(xd,nbc); title('降噪图像''THR='num2str(thr);5.形态学噪声滤除三图像复原最小二乘方滤波复原(用NP) clear all %产生棋盘图像 I=checkerboard
15、(32); %高斯卷积造成图像模糊 PSF=fspecial('gaussian',8,12); Blurred_I=imfilter(I,PSF,'conv'); %添加噪声 V=0.02; Blurred_I_Noisy=imnoise(Blurred_I,'gaussian',0,V); %噪声功率 NP=V*prod(size(I); %真实PSF和NP图像复原 J1=deconvreg(Blurred_I_Noisy,PSF,NP); %真实PSF和过大的NP图像复原 J2=deconvreg(Blurred_I_Noisy,PSF,2
16、*NP); %真实PSF和过小的NP图像复原 J3=deconvreg(Blurred_I_Noisy,PSF,0.6*NP); ED=edgetaper(Blurred_I_Noisy,PSF); J4=deconvreg(ED,PSF,0.6*NP); subplot(2,3,1); imshow(I,); title('原始图像'); subplot(2,3,2); imshow(Blurred_I_Noisy,); title('高斯模糊噪声图像'); subplot(2,3,3); imshow(J1,); title('真实NP复原图像
17、9;); subplot(2,3,4); imshow(J2,); title('过大的NP复原图像'); subplot(2,3,5); imshow(J3,); title('过小的NP复原图像'); subplot(2,3,6); imshow(J4,); title('振铃抑制复原图像'); 四图像的去噪 【注】用四种方法实现图像去噪1. clear all %打开图像 I=imread('21.tif'); %创建均值滤波模板 H1=ones(3)/9; %高斯卷积造成图像模糊 PSF=fspecial('gau
18、ssian',8,12); Blurred_I=imfilter(I,PSF,'conv'); %添加噪声 V=0.02; J=imnoise(Blurred_I,'gaussian',0,V); %噪声功率 NP=V*prod(size(I); %真实PSF和NP图像复原 J2=deconvreg(J,PSF,NP); %均值滤波 G1=conv2(J,H1,'same'); %中值滤波 G2=medfilt2(J); %wiener2滤波 J1=wiener2(J,5 5); %图像显示 subplot(2,3,1); imshow(
19、I); title('原始图像'); subplot(2,3,2); imshow(J,); title('高斯模糊噪声图像'); subplot(2,3,3); imshow(J2,); title('真实NP复原图像'); subplot(2,3,4); imshow(G1,); title('3*3均值滤波图像'); subplot(2,3,5); imshow(G2); title('中值滤波图像'); subplot(2,3,6); imshow(J1); title('维纳滤波图像');
20、 2. %装载图像 load sinsin %添加噪声 init=20100111; randn('seed',init); x=X+18*randn(size(X); %获取默认值 thr,sorh,keepapp=ddencmp('den','wv',x); %使用全局阈值降噪 xd=wdencmp('gbl',x,'sym4',2,thr,sorh,keepapp); %wiener2滤波 J=wiener2(x,5 5); %中值滤波 J1=medfilt2(x); %创建均值滤波模板 H=ones(7)/
21、49; %均值滤波 J2=conv2(x,H,'same'); %图像显示 subplot(2,3,1) imshow(X,map);title('原始图像'); subplot(2,3,2) imshow(x,map);title('加噪图像'); subplot(2,3,3) imshow(xd,map);title('小波降噪图像'); subplot(2,3,4) imshow(J,map);title('维纳滤波图像'); subplot(2,3,5) imshow(J1,map);title('
22、中值滤波图像'); subplot(2,3,6) imshow(J2,map);title('均值滤波图像'); 3. clear all %打开图像 I=imread('mch.tif') m n=size(I);%求图像尺寸 T=50;%设定阈值 G=; %高斯卷积造成图像模糊 PSF=fspecial('gaussian',8,12); Blurred_I=imfilter(I,PSF,'conv'); %添加噪声 V=0.02; Blurred_I_Noisy=imnoise(Blurred_I,'gaus
23、sian',0,V); %噪声功率 NP=V*prod(size(I); %真实PSF和NP图像复原 J=deconvreg(Blurred_I_Noisy,PSF,NP); %wiener2滤波 J1=wiener2(Blurred_I_Noisy,5 5); %中值滤波 J2=medfilt2(Blurred_I_Noisy); %创建均值滤波模板 H=ones(7)/49; %均值滤波 J3=conv2(Blurred_I_Noisy,H,'same'); %超限像素平滑 for i=1:m for j=1:n if abs( Blurred_I_Noisy(i,
24、j)-J3(i,j)>T G(i,j)=J3(i,j); else G(i,j)= Blurred_I_Noisy(i,j); end end end subplot(2,4,1); imshow(I,); title('原始图像'); subplot(2,4,2); imshow(Blurred_I_Noisy,); title('高斯模糊噪声图像'); subplot(2,4,3); imshow(J,); title('真实NP复原图像'); subplot(2,4,4); imshow(J1,); title('维纳滤波图像
25、'); subplot(2,4,5); imshow(J2,); title('中值滤波图像'); subplot(2,4,6); imshow(J3,); title('均值滤波图像'); subplot(2,4,7); imshow(G,); title('超限像素平滑图像'); 4. clear all %打开图像 I=imread('mch.tif'); %创建均值滤波模板 H1=ones(3)/9; H2=ones(7)/49; %添加高斯噪声,均值为0,方差为0.02 J=imnoise(I,'gaus
26、sian',0,0.02); %转换J为double数据类型 J=double(J); %均值滤波 G1=conv2(J,H1,'same'); G2=conv2(J,H2,'same'); %wiener2滤波 J1=wiener2(J,5 5);%中值滤波G3=medfilt2(J); %图像显示 subplot(3,2,1); imshow(I); title('原始图像'); subplot(3,2,2); imshow(J,); title('添加高斯噪声图像'); subplot(3,2,3); imshow(G1,); title('3*3均值滤波图像'); s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理课件:护理评估中的疼痛管理
- 护理领导力培养与团队建设
- 护理研究的设计与实施
- 护理诊断思维方法入门指南
- 吸痰护理中的信息化技术应用
- 护理就业政策与职业发展策略
- 医护护理护理方法
- 河北邯郸市2026届高三第一次模拟检测历史试卷(含答案)
- 旅游景点景区管理总经理助手指南
- 基于大数据的区域产业升级研究及教程
- 2026江苏苏州市昆山市自然资源和规划局招聘编外人员8人笔试参考题库及答案解析
- 2026年及未来5年市场数据中国演出行业市场发展数据监测及投资潜力预测报告
- 2026年学士学位英语测试题及答案
- 2026年甘肃平凉市华亭煤业集团有限责任公司招聘笔试参考题库附带答案详解
- (一模)2026年深圳市高三年级第一次调研考试政治试卷(含官方答案)
- 上海市普陀区学校(五四制)2025-2026学年六年级上学期期中语文试题(解析版)
- 园林绿化工国家职业技能标准
- 城市供水排水管网养护指南
- 地理探测器介绍
- 第一课冬休みの予定 单词课件-高中日语华东理工版新编日语教程2
- 中石油设备及管道定点测厚指导意见
评论
0/150
提交评论