赞
踩
%% 小波去噪 clc,clear,close all % 清理命令区、清理工作区、关闭显示图形 warning off % 消除警告 feature jit off % 加速代码运行 [filename ,pathname]=... uigetfile({'*.bmp';'*.tif';'*.jpg';},'选择图片'); %选择图片路径 str=[pathname filename]; % 合成路径+文件名 im = imread(str); % 读图 im = imnoise(im,'gaussian',0,1e-3); % 原图像 + 白噪声 [thr,sorh,keepapp] = ddencmp_thr('den','wv',im); % ‘gb1’表示使用全局门限进行去噪 % 'sym4'小波变换函数 N = 4; % 小波变换的尺度 im1 = wdencmp('gbl',im,'sym4',N,thr,sorh,keepapp); % 小波滤波 figure, subplot(121),imshow(im);title('原始图像') colormap(jet) % 颜色 shading interp % 消隐 subplot(122),imshow(im1,[]);title('小波滤波图像') colormap(jet) % 颜色 shading interp % 消隐 %% 小波包去噪 clc,clear,close all % 清理命令区、清理工作区、关闭显示图形 warning off % 消除警告 feature jit off % 加速代码运行 im = imread('brain.bmp'); % 读图 im = imnoise(im,'gaussian',0,1e-3); % 原图像 + 白噪声 [thr,sorh,keepapp] = ddencmp_thr('den','wp',im); im1 = wpdencmp(im,sorh,4,'sym4','threshold',thr,keepapp); figure, subplot(121),imshow(im);title('原始图像') colormap(jet) % 颜色 shading interp % 消隐 subplot(122),imshow(im1,[]);title('小波包滤波图像') colormap(jet) % 颜色 shading interp % 消隐 function [thr,sorh,keepapp] = ddencmp_thr(dorc,worwp,x) % 函数输入: % dorc: 'den'还是‘cmp’ % worwp: 'wv'小波还是‘wp’小波包 % x:输入图像二维矩阵 % 函数输出: % thr:阈值 % sorh:软阈值‘s’还是硬阈值'h' % keepapp:常数1; % 默认值 keepapp = 1; % keepapp=1时,表示保持低频图像系数不变,keepapp=0时,表示可以改变。 if isequal(dorc,'den') && isequal(worwp,'wv') sorh = 's'; % 软阈值门限 else sorh = 'h'; % 硬阈值门限 end % 最著名的阈值形式 n = numel(x); % 一般为65536 % nominal threshold. switch dorc case 'den' switch worwp case 'wv' , thr = sqrt(2*log(n)); % wavelets. case 'wp' , thr = sqrt(2*log(n*log(n)/log(2))); % wavelet packets. end case 'cmp' , thr = 1; end
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。