小波变换软硬阈值半软阈值图像去噪matlab程序

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

%软阈值硬阈值半软阈值巴特沃斯滤波

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('Ó²ãÐֵȥÔëºóͼÏñ');

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('ÈíãÐֵȥÔëºóͼÏñ');

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('°ëÈíãÐֵȥÔëºóͼƬ');

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('°ÍÌØÎÖ˹µÍͨÂ˲¨');

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)

C(ind)=0;

ind=find(abs(dcoef)>=thrl&abs(dcoef)

C(ind)=sign(C(ind)).*((thr/(thr-thrl)*(abs(C(ind))-thrl))); A1=wrcoef2('a',C,S,wname,n);

H1=wrcoef2('h',C,S,wname,n);

V1=wrcoef2('v',C,S,wname,n);

D1=wrcoef2('d',C,S,wname,n);

X=A1+H1+V1+D1;

相关文档
最新文档