PrecisionImage.WaveletProcessing WaveletProcessor

PrecisionImage.WaveletProcessing DiscreteWaveletPacketTransform

**Namespace:**PrecisionImage.WaveletProcessing

**Assembly:**PrecisionImage (in PrecisionImage.dll) Version: 2.0.0.0 (2.0.0.0)

public class DiscreteWaveletPacketTransform : WaveletProcessor

The DiscreteWaveletPacketTransform class contains methods for performing forward and inverse discrete wavelet packet transforms. Wavelet packet transforms are performed on data contained within SourceData objects and the results can either be stored in-place in the same channel of the input SourceData object or out-of-place to a different channel and/or different SourceData object. In the case where results are written out-of-place, the data contained in the input SourceData object is not altered.

Discrete wavelet packet transforms must be performed on SourceData objects with even dimensions otherwise an exception results. SourceData dimensions that are powers of 2 can be decomposed into the greatest number of sub-bands. If the SourceData dimensions are not powers of 2 but are divisble by 2, the degree to which the data can be decomposed will depend on the exact dimensions. See GetMaximumDecompositionLevels(SourceData) for determining the maximum decomposition level for a given SourceData object.

Depending on the chosen wavelet basis type, the forward/inverse transformation operation can offer perfect signal reconstruction if the wavelet coefficients aren't altered prior to reverse transformation. All the base Wavelet types currently included with the PrecisionImage SDK exhibit perfect reconstruction behavior. While there are currently more than 50 different basis types included, it is also possible to define custom wavelet types by inheriting from the abstract Wavelet type and assigning the coefficients for the quadrature mirror filter pairs explicitly as well as defining the initial filter offset positions relative to the signal.

The output spatial ordering of the level-1 forward/inverse DWPT operation has the average wavelet signals in the upper-left quadrant, the vertical fluctuation signals (vertically oriented edges) in the upper-right, horizontal fluctuations (horizontally oriented edges) in the lower-left quadrant, and diagonal fluctuations in the lower-right quadrant. Unlike the discrete wavelet transform, additional decomposition levels beyond level 1 act on each sub-band quadrant, not just the average sub-band. The spatial layout of the forward transformation is illustrated in the following figure which shows an image of an octogon and its level-2 forward DWPT output as generated by the DiscreteWaveletTransform class (see also the documentation for SubBandProcessor for the differences in output between the DiscreteWaveletTransform and DiscreteWaveletPacketTransform classes):