Main Content

# idddtree2

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

## Syntax

``xrec = idddtree2(wt)``

## 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.4181e-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`

## See Also

Introduced in R2013b

## Support Get trial now