type="wavelet"
) computes the 2D DWT
according to Mallat's pyramidal algorithm
(Mallat, 1989).
The spatially ordered non-decimated 2D DWT (NDWT)
(type="station"
) contains all possible spatially
shifted versions
of the DWT. The order of computation of the DWT is O(n), and
it is O(n log n) for the NDWT if n is the number of pixels.
imwd(image, filter.number=10, family="DaubLeAsymm", type="wavelet", bc="periodic", RetFather=T, verbose=F)
periodic
boundary conditions are valid for the 2D
spatially-ordered non-decimated wavelet transform.
TRUE
then this argument causes the scaling function
coefficients at each resolution level
to be returned as well as the wavelet coefficients.
If FALSE
then no scaling function coefficients are returned.
The opportunity of returning father wavelet coefficients has been
added since previous versions of WaveThresh.
If RetFather=TRUE
then the results of the HH
smooth (the scaling function coefficients) are returned additionally.
There are now two methods of handling "boundary problems". If you know that your function is periodic (on it's interval) then use the bc="periodic" option, if you think that the function is symmetric reflection about each boundary then use bc="symmetric". If you don't know then it is wise to experiment with both methods, in any case, if you don't have very much data don't infer too much about your decomposition! If you have loads of data then don't worry too much about the boundaries. It can be easier to interpret the wavelet coefficients from a bc="periodic" decomposition, so that is now the default.
The spatially-ordered non-decimated DWT contains all spatial (toroidal circular) shifts of the standard DWT.
The standard DWT is orthogonal, the spatially-ordered non-decimated transform is most definitely not. This has the added disadvantage that non-decimated wavelet coefficients, even if you supply independent normal noise. This is unlike the standard DWT where the coefficients are independent (normal noise).
The two-dimensional packet-ordered non-decimated discrete wavelet transform is computed by the wst2D function.
There is no accessC or accessD type function for the imwd class of object. Instead the coefficients are stored as vectors in the imwd object's list. Use the lt.to.name function to extract coefficients at particular scales and orientations.
# # Let's use the lennon test image # image(lennon) # # Now let's do the 2D discrete wavelet transform # lwd <- imwd(lennon) # # Let's look at the coefficients # plot(lwd)