Array Image.starletTransform( Array kernel, int numberOfLayers[, int scalingSequence=0[, Array layerState]] )
Array Image.starletTransform( Matrix kernel, int numberOfLayers[, int scalingSequence=0[, Array layerState]] )
Array Image.starletTransform( Array rowVector, Array colVector, int numberOfLayers[, int scalingSequence=0[, Array layerState]] )
Array Image.starletTransform( Vector rowVector, Vector colVector, int numberOfLayers[, int scalingSequence=0[, Array layerState]] )
Array Image.multiscaleLinearTransform( int numberOfLayers[, int scalingSequence=0[, Array layerState]] )
Array Image.multiscaleMedianTransform( int numberOfLayers[, int scalingSequence[, Array layerState]] )
Array Image.medianWaveletTransform( int numberOfLayers[, int scalingSequence[, Array layerState[, Number threshold=5]]] )
In all of these functions the returned array contains an ordered list of Image objects. Each array element is a transform layer, and layers are stored in growing scale order. The last layer is always the transform residual. The layerState parameters are arrays of Boolean objects. If a layerState element is false, the corresponding layer image is not returned (the corresponding array element is nul). The rest of parameters are self-explanatory I think; let me know if you need more information.
void Image.inverseStarletTransform( Array layers )
void Image.inverseMultiscaleLinearTransform( Array layers )
void Image.inverseMultiscaleMedianTransform( Array layers )
void Image.inverseMedianWaveletTransform( Array layers )
The inverse transforms reconstruct an image from a list of transform layers. Of course you can modify the layers or replace a layer with nul to remove it. In this way you can perform a multiscale transformation.
See the ExtractWaveletLayers script for a practical example.