小波变换图像处理实现程序课题实现步骤(精)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
%这个是 2D-DWT 的函数,是 haar 小波
%c是图像像素矩阵 steps 是变换的阶数
function dwtc = dwt_haar(c, steps
% DWTC = CWT_HARR(C - Discrete Wavelet Transform using Haar filter %
% M D Plumbley Nov 2003
N = length(c-1; % Max index for filter: 0 .. N
% If no steps to do, or the sequence is a single sample, the DWT is itself if (0==N | steps == 0
dwtc = c;
return
end
% Check that N+1 is divisible by 2
if (mod(N+1,2~=0
disp(['Not divisible 2: ' num2str(N+1];
return
end
% Set the Haar analysis filter
h0 = [1/2 1/2]; % Haar Low-pass filter
h1 = [-1/2 1/2]; %Haar High-pass filter
% Filter the signal
lowpass_c = conv(h0, c;
hipass_c =conv(h1, c;
% Subsample by factor of 2 and scale
c1 = sqrt(2*lowpass_c(2:2:end;
d1 = sqrt(2*hipass_c(2:2:end;
% Recursively call dwt_haar on the low-pass part, with 1 fewer steps dwtc1 = dwt_haar(c1, steps-1;
% Construct the DWT from c1 and d1
dwtc = [dwtc1 d1];
% Done
return
-------------------------- 分割线 --------------------------
调用这个函数的例子下面的东西放在另一个文档里
读入一个图像‘ lena ’应该是个最基础的图像了 ~
之后分别作 0阶和 1阶 2D-DWT 的变换
改变阶数可以做更高阶的
clear all
im = imreadreal('lena.bmp'; %read image data
% Plot
figure
dwt2_step0=dwt2_haar(im, 0; %2D DWT step=0
imagesc(dwt2_step0;
colormap gray;
axis image;
figure
dwt2_step1=dwt2_haar(im, 1; %2D DWT step=1
imagesc(dwt2_step1;
colormap gray;
axis image;
--------------------- 分割线 ---------------------
结果如下 1阶的结果
这是我的一个实验希望有所帮助
小波去噪的基本步骤:将含噪信号进行多尺度小波变换, 从时域变换到小波域, 然后在个尺度下尽可能的提取信号的小波系数,而除去噪声的小波系数,最后用小波逆变换重构信号。课题实现步骤
①二维小波信号的分解。选定一个小波并确定一
个小波分解的层次 N ,然后对图像进行Ⅳ层小波分
解;
②高频系数的阈值选取及量化。对于从 1到Ⅳ层
的每一层,选择一个恰当的阈值,并对这一层的高频系数进行阈值量化处理,得到处理后的小波系数;
③二维小波的重构。根据小波分解的第Ⅳ层的低
频带系数和经过修改的从第 1层到第Ⅳ层的各层高频系数,来计算二维信号的重构。