Single-level discrete 2-D wavelet transform.
Syntax
[cA,cH,cV,cD] = dwt2(X,'wname')
[cA,cH,cV,cD] = dwt2(X,Lo_D,Hi_D)
Description
The dwt2 command performs a single-level two-dimensional wavelet decomposition with respect to either a particular wavelet ('wname', see wfilters) or particular wavelet decomposition filters (Lo_D and Hi_D) you specify.
[cA,cH,cV,cD] = dwt2(X,'wname') computes the approximation coefficients matrix cA and the details coefficients matrices cH, cV, and cD (horizontal, vertical, and diagonal), obtained by wavelet decomposition of the input
matrix X.
[cA,cH,cV,cD] = dwt2(X,Lo_D,Hi_D) computes the two-dimensional wavelet decomposition as above, based on wavelet decomposition filters you specify:
Lo_D and Hi_D must be the same length. If sx = size(X) and lf is the length of filters, then size(cA) = size(cH) = size(cV) = size(cD) = floor((sx+lf-1)/2).
For information about the different discrete wavelet transform extension modes, see dwtmode.
Examples
% Load original image.
load woman;
% X contains the loaded image.
% map contains the loaded colormap.
nbcol = size(map,1);
% Perform single-level decomposition
% of X using db1.
[cA1,cH1,cV1,cD1] = dwt2(X,'db1');
% Images coding.
cod_X = wcodemat(X,nbcol);
cod_cA1 = wcodemat(cA1,nbcol);
cod_cH1 = wcodemat(cH1,nbcol);
cod_cV1 = wcodemat(cV1,nbcol);
cod_cD1 = wcodemat(cD1,nbcol);
dec2d = [...
cod_cA1, cod_cH1; ...
cod_cV1, cod_cD1 ...
];

Algorithm
For images, an algorithm similar to the one-dimensional case is possible for two-dimensional wavelets and scaling functions obtained from one-dimensional ones by tensorial product.
This kind of two-dimensional DWT leads to a decomposition of approximation coefficients at level j in four components: the approximation at level j + 1 and the details in three orientations (horizontal, vertical, and diagonal).
The following chart describes the basic decomposition steps for images:

Note: In order to deal with signal-end effects involved by convolution based algorithm, a global variable managed by dwtmode is used. The possible options are: zero-padding (used in the previous example, this mode is the default), symmetric extension, and smooth extension. It should be noted that dwt2 has the same single inverse function idwt2 for the three extension modes.
Limitations
Periodized wavelet transform is handled separately (see dwtper2 and idwtper2).
See Also
dwtmode, dwtper2, idwt2, wavedec2, waveinfo
References
I. Daubechies (1992), "Ten lectures on wavelets," CBMS-NSF conference series in applied mathematics. SIAM Ed.
S. Mallat (1989),"A theory for multiresolution signal decomposition: the wavelet representation," IEEE Pattern Anal. and Machine Intell., vol. 11, no. 7, pp 674-693.
Y. Meyer (1990),"Ondelettes et opérateurs," Tome 1, Hermann Ed. (English translation: Wavelets and operators, Cambridge Univ. Press. 1993.)
[ Previous | Help Desk | Next ]