Learn R Programming

LS2W (version 1.3.6)

imwr.imwd: Inverse two-dimensional discrete wavelet transform.

Description

This functions performs the reconstruction stage of Mallat's pyramid algorithm (i.e. the inverse discrete wavelet transform) for images. NOTE: This function replaces the wavethresh version to use LS2W C code due to memory reasons.

Usage

# S3 method for imwd
imwr(imwd, bc=imwd$bc, verbose=FALSE, ...)

Value

A matrix, of dimension determined by the original data set supplied to the initial decomposition (more precisely, determined by the nlevels component of the imwd.object). This matrix is the highest resolution level of the reconstruction. If a imwd two-dimensional wavelet transform is followed immediately by a imwr inverse two-dimensional wavelet transform then the returned matrix will be exactly the same as the original image.

Arguments

imwd

An object of class `imwd'. This type of object is returned by `imwd'.

bc

This argument specifies the boundary handling, it is best left to be the boundary handling specified by that in the supplied imwd (as is the default).

verbose

If this argument is true then informative messages are printed detailing the computations to be performed

...

any other arguments

RELEASE

Version 3.5.3 Copyright Guy Nason 1994

Author

G P Nason

Details

Details of the algorithm are to be found in Mallat (1989). Similarly to the decomposition function, imwd the inverse algorithm works by applying many 1D reconstruction algorithms to the coefficients. The filters in these 1D reconstructions are incorporated in the supplied imwd.object and originally created by the filter.select function in WaveThresh3.

This function is a method for the generic function imwr for class imwd.object. It can be invoked by calling imwr for an object of the appropriate class, or directly by calling imwr.imwd regardless of the class of the object.

See Also

imwd, imwd.object, imwr.

Examples

Run this code
#
# Do a decomposition, then exact reconstruction
# Look at the error
#
test.image <- matrix(rnorm(32*32), nrow=32)
#
# Test image is just some sort of  square matrix whose side length
# is a power of two.
#
max( abs(imwr(imwd(test.image)) - test.image))
# [1] 1.014611e-11

Run the code above in your browser using DataLab