⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mydwt2.m

📁 学习二进小波变换用于图像增强
💻 M
字号:
function [ALL,ALH,AHL,AHH] = MyDWT2(A,h,g)
%   MyDWT2 Single-level discrete 2-D wavelet transform.
%   DWT2 performs a single-level 2-D wavelet decomposition
%   with respect to wavelet filters (h g).
%
%   [CA,CH,CV,CD] = DWT2(X,Lo_D,Hi_D) computes the 2-D wavelet
%   decomposition as above given these filters as input:
%   h is the decomposition low-pass filter.
%   g is the decomposition high-pass filter.
%   h and g must be the same length.
%
%   size(ALL) = size(ALH) = size(AHL) = size(AHH) = 1/2 Size(A)


lh = length(h);lg = length(g);
sA = size(A);s1 = sA(1,1); s2 = sA(1,2);
sizeEXTh = (lh-1)/2; sizeEXTg=(lg-1)/2;
sizeKEPT = 2*ceil(sA/2);

%对A作周期延拓:边界两边分别增加sizeEXTh行和sizeEXTg列,对原图象分别用h,g作行滤波,得到AL和AH

y = wextend('2D','per',A,[0,sizeEXTh]);
AL = wconv('row',y,h); 
AL = wkeep(AL,sA);%figure,imshow(AL/256);
y = wextend('2D','per',A,[0,sizeEXTg]);
AH = wconv('row',y,g); 
AH = wkeep(AH,sA); 

%对行变换的结果AL和AH再分别用h,g作列变换,得到
y = wextend('2D','per',AL,[sizeEXTh,0]);
ALL = wconv('col',y,h);ALL = wkeep(ALL,sizeKEPT);
y = wextend('2D','per',AL,[sizeEXTg,0]);
ALH = wconv('col',y,g);ALH = wkeep(ALH,sizeKEPT);% x方向的高频细节
y = wextend('2D','per',AH,[sizeEXTh,0]);
AHL = wconv('col',y,h);AHL = wkeep(AHL,sizeKEPT);% y方向的高频细节
y = wextend('2D','per',AH,[sizeEXTg,0]);
AHH =wconv('col',y,g);AHH = wkeep(AHH,sizeKEPT);

ALL = dyaddown(ALL,'c',1);%取偶数列
ALL = dyaddown(ALL,'r',1);%取偶数行
ALH = dyaddown(ALH,'c',1);
ALH = dyaddown(ALH,'r',1);%
AHL = dyaddown(AHL,'c',1);%
AHL = dyaddown(AHL,'r',1);
AHH = dyaddown(AHH,'c',1);%
AHH = dyaddown(AHH,'r',1);%

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -