• ,,,=啊
    了解作者
  • matlab
    开发工具
  • 1KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 2
    下载次数
  • 2021-01-13 18:03
    上传日期
用于对模糊图像进行去噪,重构,去噪的信号能很好的去掉噪声信号
小波中值去噪.zip
  • 小波中值去噪
  • waveadd.m
    2.2KB
内容介绍
clear all; close all; X1=imread('but.png'); A=rgb2gray(X1); %[height width]=size(X); X=im2double(A); % Y1=double(X); % A=imnoise(X,'gaussian',0,0.01); %A=imnoise(X,'salt & pepper',0.05);%加入椒盐噪声 wname='sym3 '; n=5; [c,s]=wavedec2(A,n,wname); for i=1:3 step(i)=s((i+1),1)*s((i+1),2); %得到高频每层分解系数的长度 end num(1,1)=s(1,1)*s(1,2)+1; %获取各层各高频分量在c向量中的坐标 H|V|D num(1,2)=num(1,1)+s(2,1)*s(2,2); num(1,3)=num(1,2)+s(2,1)*s(2,2); num(2,1)=num(1,3)+s(2,1)*s(2,2); num(2,2)=num(2,1)+s(3,1)*s(3,2); num(2,3)=num(2,2)+s(3,1)*s(3,2); num(3,1)=num(2,3)+s(3,1)*s(3,2); num(3,2)=num(3,1)+s(4,1)*s(4,2); num(3,3)=num(3,2)+s(4,1)*s(4,2); %m=0.02; C=c; Y=c; for i=1:3 [H,V,D]=detcoef2('a',c,s,i);%提取第i层各高频系数,提取二维信号小波分解的细节分量 B=[H V D]; [L,T]=size(B); for k=1:L for w=1:T sigma=median(abs(B(k,w)))/0.6745;%噪声方差 end end th=sigma*sqrt(2*log10(L*T));%计算阈值 采用的是固定阈值的方法 ch=c(1,num(4-i,1):num(4-i,3)+step(4-i)-1);%确定高频系数的范围,为下一步阈值处理和更新高频系数做准备 chl=length(ch); for j=1:chl if abs(ch(j))>=th ch(j)=sign(ch(j))*(abs(ch(j))-th);%软阈值处理函数 ych(j)=ch(j); else ch(j)=0; ych(j)=0; end end C(1,num(4-i,1):num(4-i,3)+step(4-i)-1)=ch(1,1:chl); Y(1,num(4-i,1):num(4-i,3)+step(4-i)-1)=ych(j); end X0=waverec2(C,s,wname); X1=waverec2(Y,s,wname); A1= medfilt2(A); disp('加噪图像信噪比为:'), sny=10*log10(sum(sum(double(X).^2))/sum(sum((double(X)-double(A)).^2))) %disp('软阈值去噪后图像信噪比为:'),sndz=10*log10(sum(sum(double(X).^2))/sum(sum((double(X)-double(X0)).^2))) %disp('硬阈值去噪后图像信噪比为:'),sndz=10*log10(sum(sum(double(X).^2))/sum(sum((double(X)-double(X1)).^2))) disp('中值去噪后图像信噪比为:'), sndz=10*log10(sum(sum(double(X).^2))/sum(sum((double(X)-double(A1)).^2))) figure %subplot(133);imshow(X1,[]);title('硬阈值去噪后图像') A2=double(A1); subplot(111);imshow(X);title('原图像') %subplot(122);imshow(A);title('添加噪声后的图像') figure %subplot(131);imshow(X0,[]);title('软阈值去噪后图像') subplot(111);imshow(A1);title('中值去噪后图像') G=mat2gray(A2); figure(3); imshow(G) %imwrite(G,'kkk.BMP')
评论
    相关推荐