资源简介

结合维纳滤波的小波域去噪,在Matlab下实现的,有原文对应的原理的讲解。

资源截图

代码片段和文件信息

%读原图 
X=imread(‘cameraman.tif‘); 

subplot(221); 
imshow(X); 
title(‘原图‘); 
axis square; 
sigma=0.01;
M=9;

Y=imnoise(X‘gaussian‘0sigma); 
subplot(222); 
imshow(Y); 
title(‘加噪图像‘); 
axis square; 

%%小波分解
Y=double(Y);
[CACHCVCD]= dwt2(Y‘db1 ‘);
% [cs]=wavedec2(j1‘haar‘);
y =[CACH;CVCD];
y=uint8(y);
subplot(223); 
title(‘小波分解‘);
imshow(y); 

%%对不同的高频进行维纳滤波,可选
y=CV;               
sz=size(y);
%cacualte q(ij)
temp=ones(sqrt(M));
y=double(y);
temp=double(temp);
Q=conv2(ytemp‘same‘)/M;
k=1+sqrt(2/M);
Q(find(Q>k*sigma))=y(find(Q>k*sigma));
Q(find(Q<=k*sigma ))=0;

Q=double(Q);
Q=conv2(Qtemp‘same‘)/M;
Q1=Q;
Q(find(Q<0))=0;
a=Q./(Q1+eps);
xx=a.*y;

%%%重构
XX = IDWT2(CACHCVxx‘db1‘);
XX=uint8(XX);
subplot(224); 
imshow(XX); 
title(‘重构以后的图像‘);




 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        886  2009-01-04 19:44  小波去噪\tian.m

     文件     322095  2008-12-24 20:47  小波去噪\图像小波域维纳滤波去噪算法的改进(1).pdf

     目录          0  2009-01-12 19:39  小波去噪

----------- ---------  ---------- -----  ----

               322981                    3


评论

共有 条评论