I'm interested in using a SWT to perform Multi Resolution Analysis over 3D data arrays. However I could not find any software package that implements it. The Matlab Toolbox of wavelets (the most complete I think) only has 3D DWT and 2D SWT, so my questions are:There exists a working implementation of 3D SWT out there?If not, how can I implement it? (some references maybe)
3D Stationary Wavelet Transform implementations
wavelet
There as a general n-dimensional SWT for Python in the PyWavelets package as of the 0.5.0 release.Basic usage with data stored in a NumPy array would be as follows (shown here for a 4-level decomposition and Debauchies 'db2' wavelet).  PyWavelets uses the same wavelet naming conventions as the Matlab Wavelet Toolbox.import pywtcoeffs = pywt.swtn(data, wavelet='db2', level=4)The example above takes <2 seconds for a 128x128x128 data array on my system.If you are willing to build from source, there is also an n-dimensional inverse SWT available in the master branch.  Note that the inverse stationary wavelet transform is not currently implemented in a very efficient manner (particular for larger number of levels of decomposition).In 3D, the SWT is redundant by a factor of (1 + 7*L) for an L-level decomposition (Although the implementation in PyWavelets currently returns the approximation coefficients at every level, not just the final one, leading to a redundancy of 8*L in 3D).