Documentation

This is machine translation

Translated by Microsoft
Mouse over text to see original. Click the button below to return to the English verison of the page.

swt2

Discrete stationary wavelet transform 2-D

Syntax

SWC = swt2(X,N,'wname')
[A,H,V,D] = swt2(X,N,'wname')
SWC = swt2(X,N,Lo_D,Hi_D)
[A,H,V,D] = swt2(X,N,Lo_D,Hi_D)

Description

swt2 performs a multilevel 2-D stationary wavelet decomposition using either a specific orthogonal wavelet ('wname'— see wfilters for more information) or specific orthogonal wavelet decomposition filters.

SWC = swt2(X,N,'wname') or [A,H,V,D] = swt2(X,N,'wname') compute the stationary wavelet decomposition of the matrix X at level N, using 'wname'.

N must be a strictly positive integer (see wmaxlev for more information), and 2N must divide size(X,1) and size(X,2).

Outputs [A,H,V,D] are 3-D arrays, which contain the coefficients:

  • For 1 i N, the output matrix A(:,:,i) contains the coefficients of approximation of level i.

  • The output matrices H(:,:,i), V(:,:,i) and D(:,:,i) contain the coefficients of details of level i (horizontal, vertical, and diagonal):

    SWC = [H(:,:,1:N) ; V(:,:,1:N) ; D(:,:,1:N) ; A(:,:,N)]
    

SWC = swt2(X,N,Lo_D,Hi_D) or [A,H,V,D] = swt2(X,N,Lo_D,Hi_D), computes the stationary wavelet decomposition as in the previous syntax, given these filters as input:

  • Lo_D is the decomposition low-pass filter.

  • Hi_D is the decomposition high-pass filter.

Lo_D and Hi_D must be the same length.

    Note   swt2 is defined using dwt with periodic extension.

Examples

% Load original image.
load nbarb1;

% Image coding.
nbcol = size(map,1);
cod_X = wcodemat(X,nbcol);

% Visualize the original image.
subplot(221)
image(cod_X)
title('Original image');
colormap(map)

% Perform SWT decomposition
% of X at level 3 using sym4.
[ca,chd,cvd,cdd] = swt2(X,3,'sym4');

% Visualize the decomposition.

for k = 1:3
    % Images coding for level k.
    cod_ca  = wcodemat(ca(:,:,k),nbcol);
    cod_chd = wcodemat(chd(:,:,k),nbcol);
    cod_cvd = wcodemat(cvd(:,:,k),nbcol);
    cod_cdd = wcodemat(cdd(:,:,k),nbcol);
    decl = [cod_ca,cod_chd;cod_cvd,cod_cdd];

    % Visualize the coefficients of the decomposition
    % at level k.
    subplot(2,2,k+1)
    image(decl)

    title(['SWT dec.: approx. ', ...
   'and det. coefs (lev. ',num2str(k),')']);
    colormap(map)
end
% Editing some graphical properties,
% the following figure is generated.

More About

collapse all

Tips

When X represents an indexed image, X is an m-by-n matrix and the output arrays SWC or cA,cH,cV, and cD are m-by-n-by-p arrays.

When X represents a truecolor image, it becomes an m-by-n-by-3 array. This array is an m-by-n-by-3 array, where each m-by-n matrix represents a red, green, or blue color plane concatenated along the third dimension. The output arrays SWC or cA,cH,cV, and cD are m-by-n-by-p-by-3 arrays.

For more information on image formats, see the image and imfinfo reference pages.

Algorithms

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 tensor product.

This kind of two-dimensional SWT leads to a decomposition of approximation coefficients at levelj 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 step for images:

References

Nason, G.P.; B.W. Silverman (1995), "The stationary wavelet transform and some statistical applications," Lecture Notes in Statistics, 103, pp. 281–299.

Coifman, R.R.; Donoho, D.L. (1995), "Translation invariant de-noising," Lecture Notes in Statistics, 103, pp. 125–150.

Pesquet, J.C.; H. Krim, H. Carfatan (1996), "Time-invariant orthonormal wavelet representations," IEEE Trans. Sign. Proc., vol. 44, 8, pp. 1964–1970.

See Also

| |

Introduced before R2006a

Was this topic helpful?