Inverse Stationary Wavelet Transform

Inverse stationary wavelet transforms are provided.

Note: These inverse transforms are not yet optimized for speed. Only, the n-dimensional inverse transform currently has axes support.

Multilevel 1D iswt

pywt.iswt(coeffs, wavelet, norm=False, axis=-1)

Multilevel 1D inverse discrete stationary wavelet transform.

Parameters
coeffsarray_like

Coefficients list of tuples:

[(cAn, cDn), ..., (cA2, cD2), (cA1, cD1)]

where cA is approximation, cD is details. Index 1 corresponds to start_level from pywt.swt.

waveletWavelet object or name string

Wavelet to use

normbool, optional

Controls the normalization used by the inverse transform. This must be set equal to the value that was used by pywt.swt to preserve the energy of a round-trip transform.

Returns
1D array of reconstructed data.

Examples

>>> import pywt
>>> coeffs = pywt.swt([1,2,3,4,5,6,7,8], 'db2', level=2)
>>> pywt.iswt(coeffs, 'db2')
array([ 1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.])

Multilevel 2D iswt2

pywt.iswt2(coeffs, wavelet, norm=False, axes=(-2, -1))

Multilevel 2D inverse discrete stationary wavelet transform.

Parameters
coeffslist

Approximation and details coefficients:

[
    (cA_n,
        (cH_n, cV_n, cD_n)
    ),
    ...,
    (cA_2,
        (cH_2, cV_2, cD_2)
    ),
    (cA_1,
        (cH_1, cV_1, cD_1)
    )
]

where cA is approximation, cH is horizontal details, cV is vertical details, cD is diagonal details and n is the number of levels. Index 1 corresponds to start_level from pywt.swt2.

waveletWavelet object or name string, or 2-tuple of wavelets

Wavelet to use. This can also be a 2-tuple of wavelets to apply per axis.

normbool, optional

Controls the normalization used by the inverse transform. This must be set equal to the value that was used by pywt.swt2 to preserve the energy of a round-trip transform.

Returns
2D array of reconstructed data.

Examples

>>> import pywt
>>> coeffs = pywt.swt2([[1,2,3,4],[5,6,7,8],
...                     [9,10,11,12],[13,14,15,16]],
...                    'db1', level=2)
>>> pywt.iswt2(coeffs, 'db1')
array([[  1.,   2.,   3.,   4.],
       [  5.,   6.,   7.,   8.],
       [  9.,  10.,  11.,  12.],
       [ 13.,  14.,  15.,  16.]])

Multilevel n-dimensional iswtn

pywt.iswtn(coeffs, wavelet, axes=None, norm=False)

Multilevel nD inverse discrete stationary wavelet transform.

Parameters
coeffslist

[{coeffs_level_n}, …, {coeffs_level_1}]: list of dict

waveletWavelet object or name string, or tuple of wavelets

Wavelet to use. This can also be a tuple of wavelets to apply per axis in axes.

axessequence of ints, optional

Axes over which to compute the inverse SWT. Axes may not be repeated. The default is None, which means transform all axes (axes = range(data.ndim)).

normbool, optional

Controls the normalization used by the inverse transform. This must be set equal to the value that was used by pywt.swtn to preserve the energy of a round-trip transform.

Returns
nD array of reconstructed data.

Examples

>>> import pywt
>>> coeffs = pywt.swtn([[1,2,3,4],[5,6,7,8],
...                     [9,10,11,12],[13,14,15,16]],
...                    'db1', level=2)
>>> pywt.iswtn(coeffs, 'db1')
array([[  1.,   2.,   3.,   4.],
       [  5.,   6.,   7.,   8.],
       [  9.,  10.,  11.,  12.],
       [ 13.,  14.,  15.,  16.]])