Four scales of curvelets

Overview

Curvelets is an open-source implementation of the Uniform Discrete Curvelet Transform (UDCT) [Nguyen and Chauris, 2010] in the Python programming language for N-dimensional signals.

Getting Started

Installation

Curvelets can be installed directly from the PyPI index:

pip install curvelets

or, if you want to use the PyTorch backend, you can install the torch optional dependency:

pip install curvelets[torch]

Curvelets supports Python 3.9 and above, NumPy 1.20 and above.

First Steps

Curvelets provides a very simple interface to use the UDCT, UDCT. Its only required argument is the shape of the inputs, but you can also supply the number of “scale” or “resolutions” (num_scales) as well as the number of wedges per direction (wedges_per_direction). The more scales there are, the more granular the distinction between a slowly-varying and a highly-varying feature. The more wedges there are, the more granular the distinction between the directions of the features. Explore the Asymmetric Directional Resolution example to better understand the effect of the scales and the wedges on the decomposition.

import numpy as np
from curvelets.numpy import UDCT

x = np.ones((128, 128))
C = UDCT(shape=x.shape)
y = C.forward(x)
np.testing.assert_allclose(x, C.backward(y))

Features

Feature

Status

N-D

Arbitrary input shapes

Real inputs

[1]

Complex inputs

Asymmetric diretionality

[2]

Wavelet at highest scale

[3]

Monogenic coefficients

[4]

PyTorch bindings

[5]

Credits

The original MATLAB implementation was developed by one of the authors of the UDCT, Truong T. Nguyen. The Python implementation was developed by Carlos Alberto da Costa Filho and Duy Nguyen.

References

[NC10]

Truong T. Nguyen and Hervé Chauris. Uniform Discrete Curvelet Transform. IEEE Transactions on Signal Processing, 58(7):3618–3634, jul 2010. doi:10.1109/TSP.2010.2047666.

[Sto10]

Martin Storath. The monogenic curvelet transform. In 2010 IEEE International Conference on Image Processing, 353–356. IEEE, sep 2010. doi:10.1109/ICIP.2010.5651318.