Curvelet

Curvelets are a non-adaptive technique for multi-scale object representation. Being an extension of the wavelet concept, they are becoming popular in similar fields, namely in image processing and scientific computing.

Wavelets generalize the Fourier transform by using a basis that represents both location and spatial frequency. For 2D or 3D signals, directional wavelet transforms go further, by using basis functions that are also localized in orientation. A curvelet transform differs from other directional wavelet transforms in that the degree of localisation in orientation varies with scale. In particular, fine-scale basis functions are long ridges; the shape of the basis functions at scale j is ${\displaystyle 2^{-j}}$ by ${\displaystyle 2^{-j/2}}$ so the fine-scale bases are skinny ridges with a precisely determined orientation.

Curvelets are an appropriate basis for representing images (or other functions) which are smooth apart from singularities along smooth curves, where the curves have bounded curvature, i.e. where objects in the image have a minimum length scale. This property holds for cartoons, geometrical diagrams, and text. As one zooms in on such images, the edges they contain appear increasingly straight. Curvelets take advantage of this property, by defining the higher resolution curvelets to be more elongated than the lower resolution curvelets. However, natural images (photographs) do not have this property; they have detail at every scale. Therefore, for natural images, it is preferable to use some sort of directional wavelet transform whose wavelets have the same aspect ratio at every scale.

When the image is of the right type, curvelets provide a representation that is considerably sparser than other wavelet transforms. This can be quantified by considering the best approximation of a geometrical test image that can be represented using only ${\displaystyle n}$ wavelets, and analysing the approximation error as a function of ${\displaystyle n}$. For a Fourier transform, the squared error decreases only as ${\displaystyle O(1/{\sqrt {n}})}$. For a wide variety of wavelet transforms, including both directional and non-directional variants, the squared error decreases as ${\displaystyle O(1/n)}$. The extra assumption underlying the curvelet transform allows it to achieve ${\displaystyle O({(\log n)}^{3}/{n^{2}})}$.

Efficient numerical algorithms exist for computing the curvelet transform of discrete data. The computational cost of a curvelet transform is approximately 10–20 times that of an FFT, and has the same dependence of ${\displaystyle O(n^{2}\log n)}$ for an image of size ${\displaystyle n\times n}$.

Curvelet construction

To construct a basic curvelet ${\displaystyle \phi }$ and provide a tiling of the 2-D frequency space, two main ideas should be followed:

1. Consider polar coordinates in frequency domain
2. Construct curvelet elements being locally supported near wedges

The number of wedges is ${\displaystyle N_{j}=4\cdot 2^{\left\lceil {\frac {j}{2}}\right\rceil }}$ at the scale ${\displaystyle 2^{-j}}$, i.e., it doubles in each second circular ring.

Let ${\displaystyle {\boldsymbol {\xi }}=(\xi _{1},\xi _{2})^{T}}$ be the variable in frequency domain, and ${\displaystyle r={\sqrt {\xi _{1}^{2}+\xi _{2}^{2}}},\omega =\arctan {\frac {\xi _{1}}{\xi _{2}}}}$ be the polar coordinates in the frequency domain.

We use the ansatz for the dilated basic curvelets in polar coordinates:
${\displaystyle {\hat {\phi }}_{j,0,0}:=2^{\frac {-3j}{4}}W(2^{-j}r){\tilde {V}}_{N_{j}}(\omega ),r\geq 0,\omega \in [0,2\pi ),j\in N_{0}}$

To construct a basic curvelet with compact support near a ″basic wedge″, the two windows ${\displaystyle W}$ and ${\displaystyle {\tilde {V}}_{N_{j}}}$need to have compact support. Here, we can simply take ${\displaystyle W(r)}$ to cover ${\displaystyle (0,\infty )}$with dilated curvelets and ${\displaystyle {\tilde {V}}_{N_{j}}}$ such that each circular ring is covered by the translations of ${\displaystyle {\tilde {V}}_{N_{j}}}$ .

${\displaystyle \sum _{j=-\infty }^{\infty }\left|W(2^{-j}r)\right|^{2}=1,r\in (0,\infty ).}$see Window Functions for more information

For tiling a circular ring into ${\displaystyle N}$ wedges, where ${\displaystyle N}$ is an arbitrary positive integer, we need a ${\displaystyle 2\pi }$-periodic nonnegative window ${\displaystyle {\tilde {V}}_{N}}$ with support inside ${\displaystyle \left[{\frac {-2\pi }{N}},{\frac {2\pi }{N}}\right]}$ such that
${\displaystyle \sum _{l=0}^{N-1}{\tilde {V}}_{N}^{2}(\omega -{\frac {2\pi l}{N}})=1}$, for all ${\displaystyle \omega \in \left[0,2\pi \right)}$
${\displaystyle {\tilde {V}}_{N}}$ can be simply constructed as ${\displaystyle 2\pi }$-periodizations of a scaled window ${\displaystyle V({\frac {N\omega }{2\pi }})}$.

Then, it follows that
${\displaystyle \sum _{l=0}^{N_{j}-1}\left|2^{\frac {3j}{4}}{\hat {\phi }}_{j,0,0}(r,\omega -{\frac {2\pi l}{N_{j}}})\right|^{2}=\left|W(2^{-j}r)\right|^{2}\sum _{l=0}^{N_{j}-1}{\tilde {V}}_{N_{j}}^{2}(\omega -{\frac {2\pi l}{N}})=\left|W(2^{-j}r)\right|^{2}}$

For a complete covering of the frequency plane including the region around zero, we need to define a low pass element
${\displaystyle {\hat {\phi }}_{-1}:=W_{0}(\left|\xi \right|)}$ with
${\displaystyle W_{0}^{2}(r)^{2}:=1-\sum _{j=0}^{\infty }W(2^{-j}r)^{2}}$
that is supported on the unit circle, and where we do not consider any rotation.