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越来越小,高频部分被限制的越来越少,逆变换后的图像越接近原图像

matlab 图像小波去噪_第1张图片 

 

你可能感兴趣的:(matlab 图像小波去噪)