Main Content

idddtree2

Inverse dual-tree and double-density 2-D wavelet transform

Description

example

xrec = idddtree2(wt) returns the inverse wavelet transform of the 2-D decomposition (analysis filter bank), wt. wt is the output of dddtree2.

Examples

collapse all

Demonstrate perfect reconstruction of an image using a complex oriented dual-tree wavelet transform.

Load the image and obtain the complex oriented dual-tree wavelet transform down to level 5 using dddtree2. Reconstruct the image using idddtree2 and demonstrate perfect reconstruction.

load woman;
wt = dddtree2('cplxdt',X,5,'dtf2');
xrec = idddtree2(wt);
max(max(abs(X-xrec)))
ans = 7.3896e-12

Input Arguments

collapse all

Wavelet transform, returned as a structure from dddtree2 with these fields:

Type of wavelet decomposition (filter bank), specified as one of 'dwt', 'ddt', 'realdt', 'cplxdt', 'realdddt', or 'cplxdddt'. 'dwt' is the critically sampled DWT. 'ddt' produces a double-density wavelet transform with one scaling and two wavelet filters for both row and column filtering. 'realdt' and 'cplxdt' produce oriented dual-tree wavelet transforms consisting of two and four separable wavelet transforms. 'realdddt' and 'cplxdddt' produce double-density dual-tree wavelet transforms consisting of two and four separable wavelet transforms.

Level of the wavelet decomposition, specified as a positive integer.

Decomposition (analysis) and reconstruction (synthesis) filters, specified as a structure with these fields:

First-stage analysis filters, specified as an N-by-2 or N-by-3 matrix for single-tree wavelet transforms, or a 1-by-2 cell array of two N-by-2 or N-by-3 matrices for dual-tree wavelet transforms. The matrices are N-by-3 for the double-density wavelet transforms. For an N-by-2 matrix, the first column of the matrix is the scaling (lowpass) filter and the second column is the wavelet (highpass) filter. For an N-by-3 matrix, the first column of the matrix is the scaling (lowpass) filter and the second and third columns are the wavelet (highpass) filters. For the dual-tree transforms, each element of the cell array contains the first-stage analysis filters for the corresponding tree.

Analysis filters for levels > 1, specified as an N-by-2 or N-by-3 matrix for single-tree wavelet transforms, or a 1-by-2 cell array of two N-by-2 or N-by-3 matrices for dual-tree wavelet transforms. The matrices are N-by-3 for the double-density wavelet transforms. For an N-by-2 matrix, the first column of the matrix is the scaling (lowpass) filter and the second column is the wavelet (highpass) filter. For an N-by-3 matrix, the first column of the matrix is the scaling (lowpass) filter and the second and third columns are the wavelet (highpass) filters. For the dual-tree transforms, each element of the cell array contains the analysis filters for the corresponding tree.

First-level reconstruction filters, specified as an N-by-2 or N-by-3 matrix for single-tree wavelet transforms, or a 1-by-2 cell array of two N-by-2 or N-by-3 matrices for dual-tree wavelet transforms. The matrices are N-by-3 for the double-density wavelet transforms. For an N-by-2 matrix, the first column of the matrix is the scaling (lowpass) filter and the second column is the wavelet (highpass) filter. For an N-by-3 matrix, the first column of the matrix is the scaling (lowpass) filter and the second and third columns are the wavelet (highpass) filters. For the dual-tree transforms, each element of the cell array contains the first-stage synthesis filters for the corresponding tree.

Reconstruction filters for levels > 1, specified as an N-by-2 or N-by-3 matrix for single-tree wavelet transforms, or a 1-by-2 cell array of two N-by-2 or N-by-3 matrices for dual-tree wavelet transforms. The matrices are N-by-3 for the double-density wavelet transforms. For an N-by-2 matrix, the first column of the matrix is the scaling (lowpass) filter and the second column is the wavelet (highpass) filter. For an N-by-3 matrix, the first column of the matrix is the scaling (lowpass) filter and the second and third columns are the wavelet (highpass) filters. For the dual-tree transforms, each element of the cell array contains the first-stage analysis filters for the corresponding tree.

Wavelet transform coefficients, specified as a 1-by-(level+1) cell array of matrices. The size and structure of the matrix elements of the cell array depend on the type of wavelet transform as follows:

  • 'dwt'cfs{j}(:,:,d)

    • j = 1,2,... level is the level.

    • d = 1,2,3 is the orientation.

    • cfs{level+1}(:,:) are the lowpass, or scaling, coefficients.

  • 'ddt'cfs{j}(:,:,d)

    • j = 1,2,... level is the level.

    • d = 1,2,3,4,5,6,7,8 is the orientation.

    • cfs{level+1}(:,:) are the lowpass, or scaling, coefficients.

  • 'realddt'cfs{j}(:,:,d,k)

    • j = 1,2,... level is the level.

    • d = 1,2,3 is the orientation.

    • k = 1,2 is the wavelet transform tree.

    • cfs{level+1}(:,:) are the lowpass, or scaling, coefficients.

  • 'cplxdt'cfs{j}(:,:,d,k,m)

    • j = 1,2,... level is the level.

    • d = 1,2,3 is the orientation.

    • k = 1,2 is the wavelet transform tree.

    • m = 1,2 are the real and imaginary parts.

    • cfs{level+1}(:,:) are the lowpass, or scaling, coefficients..

  • 'realdddt'cfs{j}(:,:,d,k)

    • j = 1,2,... level is the level.

    • d = 1,2,3 is the orientation.

    • k = 1,2 is the wavelet transform tree.

    • cfs{level+1}(:,:) are the lowpass, or scaling, coefficients.

  • 'cplxdddt'cfs{j}(:,:,d,k,m)

    • j = 1,2,... level is the level.

    • d = 1,2,3 is the orientation.

    • k = 1,2 is the wavelet transform tree.

    • m = 1,2 are the real and imaginary parts.

    • cfs{level+1}(:,:) are the lowpass, or scaling, coefficients.

Output Arguments

collapse all

Synthesized image, returned as a matrix.

Data Types: double

Version History

Introduced in R2013b