Core Optical, Inc.
DiscreteWaveletTransform ClassIndustrial Strength, Scientific Grade
A type encapsulating the functionality for forward/inverse Discrete Wavelet Transform (DWT) operations.
Inheritance Hierarchy

OnlineSystem Object
  PrecisionImage.WaveletProcessing WaveletProcessor
    PrecisionImage.WaveletProcessing DiscreteWaveletTransform

Namespace: PrecisionImage.WaveletProcessing
Assembly: PrecisionImage (in PrecisionImage.dll) Version: (

public class DiscreteWaveletTransform : WaveletProcessor

The DiscreteWaveletTransform class contains methods for performing forward and inverse discrete wavelet transforms, as well as various methods that can be used to support working in the discrete wavelet domain. Wavelet 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 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 forward/inverse DWT 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. The spatial layout of the forward transformation is illustrated in the following figure which shows an image of an octogon and its forward DWT output as generated by the DiscreteWaveletTransform class:


See ComputeForwardDWT(SourceData, Int32, SourceData, Int32, Wavelet, Int32) for an example on how to use the DiscreteWaveletTransform class.
See Also