%软阈值 硬阈值 半软阈值 巴特沃斯滤波 clc
close all clear all
map=gray(256);
x=imread('hzw.jpg'); x=rgb2gray(x); subplot(2,3,1); image(x); colormap(map); title('原始图片'); axis square;
init=2055615866; randn('seed',init);
x1=50.*randn(size(x)); %均值为0 方差50^2
x=double(x) nx=x+x1;
subplot(2,3,2); image(nx); colormap(map);
title('加噪后的图片'); axis square; c=num2str(c);
text(100,100,'PSNR:'); text(300,100,c);
%硬阈值
[thr,sorh,keepapp]=ddencmp('den','wv',nx);
nx1=wdencmp('gbl',nx,'sym5',2,thr,'h',keepapp); subplot(2,3,3); image(nx1);
title('ó2?D?μè¥??oóí???'); axis square; a1=psnr(nx1,x); a1=num2str(a1);
text(100,100,'PSNR:'); text(300,100,a1); %软阈值
nx2=wdencmp('gbl',nx,'sym5',2,thr,'s',keepapp); subplot(2,3,4); image(nx2);
title('èí?D?μè¥??oóí???'); axis square;
c=psnr(nx2,x); c=num2str(c);
text(100,100,'PSNR:'); text(300,100,c);
%半软阈值
nx3=hsoft(nx,'sym5',2,0.5,thr); subplot(2,3,5); image(nx3);
title('°?èí?D?μè¥??oóí???'); axis square;
a4=psnr(nx3,x); a4=num2str(a4);
text(100,100,'PSNR:'); text(300,100,a4);
%巴特沃斯
g=fft2(nx); g=fftshift(g); [m,n]=size(g); N=3;d0=60; n1=floor(m/2); n2=floor(n/2); for i=1:m for j=1:n
d=sqrt((i-n1)^2+(j-n2)^2); h=1/(1+(d/d0)^(2*N)); g(i,j)=h*g(i,j); end end
g=ifftshift(g); g=(real(ifft2(g))); subplot(2,3,6); image(g);
title('°íì????1μíí¨??2¨'); axis square;
a5=psnr(g,x); a5=num2str(a5);
text(100,100,'PSNR:'); text(300,100,a5);
function X=hsoft(x,wname,n,thr,thrl) [C,S]=wavedec2(x,n,wname); dcoef=C(prod(S(1,:))+1:end);
ind=find(abs(dcoef) ind=find(abs(dcoef)>=thrl&abs(dcoef) 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库小波变换 软硬阈值半软阈值图像去噪matlab程序在线全文阅读。
相关推荐: