Development of the dtcwt library is now taking place in another repository.
This library provides support for computing 1D, 2D and 3D dual-tree complex wavelet transforms and their inverse in Python. Full documentation is available online.
Installation can be perfomed via apt-get:
$ sudo apt-get install python-dtcwt python-dtcwt-doc
The package is also currently in Debian sid (unstable).
The easiest way to install dtcwt is via easy_install or pip:
$ pip install dtcwt
If you want to check out the latest in-development version, look at the project's GitHub page. Once checked out, installation is based on setuptools and follows the usual conventions for a Python project:
$ python setup.py install
(Although the develop command may be more useful if you intend to perform any significant modification to the library.) A test suite is provided so that you may verify the code works on your system:
$ pip install -r tests/requirements.txt $ py.test
This will also write test-coverage information to the cover/ directory.
There is more documentation available online and you can build your own copy via the Sphinx documentation system:
$ python setup.py build_sphinx
Compiled documentation may be found in build/docs/html/.
Based on the Dual-Tree Complex Wavelet Transform Pack for MATLAB by Nick Kingsbury, Cambridge University. The original README can be found in ORIGINAL_README.txt. This file outlines the conditions of use of the original MATLAB toolbox.
- Use fixed random number generator seed when generating documentation.
 - Replace use of Lena image with mandrill.
 - Refactor test suite to use tox + py.test.
 - Documentation formatting fixes.
 - Fix unsafe use of inplace casting (3D transform).
 - Use explicit integer division to close #123.
 
- Fix regression in dtcwt-based image registration.
 - Allow levels used for dtcwt-based image registration to be customised.
 
- Add queue parameter to low-level OpenCL 
colifiltandcoldfiltfunctions. - Significantly increase speed of 
dtcwt.registration.estimateregfunction. - Fix bug whereby 
dtcwt.backend_namewas not restored when usingpreserve_backend_stack. 
- The OpenCL 2D transform was not always using the correct queue when one was passed explicitly.
 
- MATLAB-style functions such as 
dtwavexfm2have been moved into a separatedtcwt.compatmodule. - Backends moved to 
dtcwt.numpyanddtcwt.openclmodules. - Removed 
dtcwt.base.ReconstructedSignalwhich was a needless wrapper around NumPy arrays. - Rename 
TransformDomainSignaltoPyramid. - Allow runtime configuration of default backend via 
dtcwt.push_backendfunction. - Verified, thanks to @timseries, the NumPy 3D transform implementation against the MATLAB reference implementation.
 
- Verified the highpass re-sampling routines in 
dtcwt.samplingagainst the existing MATLAB implementation. - Added experimental image registration routines.
 - Re-organised documentation.
 
- Fixed regression from 0.7 where 
backend_opencl.dtwavexfm2would returnNone, None, None. 
- Fix a memory leak in OpenCL implementation where transform results were never de-allocated.