matlab 图像小波去噪

 

%用于测试阈值设置后图像的反变换
clear

%===读入图像===
img=imread('C:\Users\ThinkPad\Pictures\lena.jpg');
X=mat2gray(img(100:107,100:107)); %暂时取局部图像进行测试
%===添加噪声===
noise=randn(size(X));
sigma=20/255;
X=X+noise*sigma;

dctX=dct2(X);
dctR=dctX;

Nn=size(X,1);

% 取小波系数中的高频部分,以它的标准方差作为图像的标准方差估计值。
sgm=std2(dctR(5:8,5:8));



figure
subplot(2,2,1);
imshow(X,[]);
title('原图像');

%==============
mythr=1*sgm*sqrt(2*log(Nn*Nn));
dctX(abs(dctX)<mythr)=0;

rx=idct2(dctX);

subplot(2,2,2);
imshow(rx,[]);
title('逆变换后的图像1');

%==============
mythr=0.6*sgm*sqrt(2*log(Nn*Nn));
dctX=dctR;
dctX(abs(dctX)<mythr)=0;

rx=idct2(dctX);

subplot(2,2,3);
imshow(rx,[]);
title('逆变换后的图像2');

%==============
mythr=0.4*sgm*sqrt(2*log(Nn*Nn));
dctX=dctR;
dctX(abs(dctX)<mythr)=0;

rx=idct2(dctX);

subplot(2,2,4);
imshow(rx,[]);
title('逆变换后的图像3');

 

随着阈值mythr越来越小,高频部分被限制的越来越少,逆变换后的图像越接近原图像

 

 

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值