wst2D               package:wavethresh               R Documentation

(_P_a_c_k_e_t-_o_r_d_e_r_e_d) _2_D _n_o_n-_d_e_c_i_m_a_t_e_d _w_a_v_e_l_e_t _t_r_a_n_s_f_o_r_m.

_D_e_s_c_r_i_p_t_i_o_n:

     This function computes the (packet-ordered) 2D non-decimated
     wavelet transform

_U_s_a_g_e:

     wst2D(m, filter.number=10, family="DaubLeAsymm")

_A_r_g_u_m_e_n_t_s:

       m: A matrix containing the image data that you wish to
          decompose. Each dimension of the matrix must be the same
          power of 2.

filter.number: This selects the smoothness of wavelet that you want to
          use in the decomposition. By default this is 10, the
          Daubechies least-asymmetric orthonormal compactly supported
          wavelet with 10 vanishing moments.

  family: specifies the family of wavelets that you want to use. Two
          popular options are "DaubExPhase" and "DaubLeAsymm" but see
          the help for 'filter.select' for more possibilities.

_D_e_t_a_i_l_s:

     The 'wst2D' computes the (packet-ordered) 2D non-decimated
     discrete wavelet transform. Such a transform may be used in
     wavelet shrinkage of images using the 'AvBasis.wst2D' function to
     perform an "average-basis" inverse. Such a transform was used to
     denoise images in the paper by Lang, Guo, Odegard, Burrus and
     Wells, 1995. 

     The algorithm works by mixing the HH, GH, HG and GG image
     operators of the 2D (decimated) discrete wavelet transform (see
     Mallat, 1989 and the implementation in WaveThresh called 'imwd')
     with the shift operator S (as documented in Nason and Silverman,
     1995) to form new operators (as given in the help to
     'getpacket.wst2D'). 

     Subimages can be obtained and replaced using the 'getpacket.wst2D'
     and 'putpacket.wst2D' functions. 

     This function is a 2D analogue of the (packet-ordered)
     non-decimated discrete wavelet transform implemented in WaveThresh
     as 'wst'.

_V_a_l_u_e:

     An object of class 'wst2D'.

_R_E_L_E_A_S_E:

     Version 3.9.5 Copyright Guy Nason 1998

_S_e_e _A_l_s_o:

     'AvBasis.wst2D', 'getpacket.wst2D', 'imwd', 'plot.wst2D',
     'print.wst2D', 'putpacket.wst2D', 'summary.wst2D', 'wst2D.object'.

_E_x_a_m_p_l_e_s:

     #
     # We shall use the ua image of
     # the University coat of arms.
     #
     #image(ua)
     #
     #
     # Now let's apply the (packet-ordered) 2D non-decimated DWT to it...
     # (using the default wavelets)
     #
     #uawst2D <- wst2D(ua)
     #
     # One can use the function plot.wst2D to get
     # a picture of all the resolution levels. However, let's just look at them
     # one at a time.
     #
     # How many levels does our uawst2D object have? 
     #
     #nlevels(uawst2D)
     #[1] 8
     #
     # O.k. Let's look at resolution level 7
     #
     #image(uawst2D$wst2D[8,,])
     #
     #
     # There are four main blocks here (each of 256x256 pixels) which themselves
     # contain four sub-blocks. The primary blocks correspond to the no shift,
     # horizontal shift, vertical shift and "horizontal and vertical" shifts
     # generated by the shift S operator. Within each of the 256x256 blocks
     # we have the "usual" Mallat smooth, horizontal, vertical and diagonal
     # detail, with the smooth in the top left of each block.
     #
     # Let's extract the smooth, with no shifts at level 7 and display it
     #
     #image(getpacket(uawst2D, level=7, index=0, type="S"))
     #
     #
     # Now if we go two more resolution levels deeper we have now 64x64 blocks
     # which contain 32x32 subblocks corresponding to the smooth, horizontal,
     # vertical and diagonal detail. 
     #
     #immagic(uawst2D$wst2D[6,,])
     #
     #
     # Groovy eh?

