The dtcwt library

The dtcwt library provides a Python implementation of the 1, 2 and 3-D dual-tree complex wavelet transform along with some associated algorithms. It contains a pure CPU implementation which makes use of NumPy along with an accelerated GPU implementation using OpenCL.

Comparison with MATLAB toolbox

The canonical implementation of the DT-CWT is that provided by Professor Nick Kingsbury on his website. This library aims to have near-identical output (to within a small multiple of machine precision). Significant deviation is a bug and should be reported. Cross-verification of the transform output is part of the test suite and each and every change is checked against that test suite automatically.

It is hoped that testing this will allow confidence in this library being suitable for porting existing MATLAB scripts over to Python. To that end there is a dtcwt.compat module which provides an API similar to the original MATLAB toolbox.