Next: ridgpolrec Up: Reference Previous: istkwave1   Contents   Index

#### ridgelet

Name

ridgelet Ridgelet transform of an image

Command Synopsis

ridgelet [-I in_im] np in_re out_re out_im

-I in_im : imaginary input (Fimage N*N)

np : resolution np

in_re : real input (Fimage N*N)

out_re : real ridgelets coefficients (Fimage 2N*2N)

out_im : imaginary ridgelets coefficients (Fimage 2N*2N)

Function Summary

void ridgelet (in_re , in_im , np , out_re , out_im )

int np ;

Fimage in_re , in_im ;

Fimage out_re , out_im ;

Description

The module ridgelet computes the np level discrete ridgelet transform of a Fimage according to the algorithm of J.L. Starck, E. Candès et D.Donoho [SCD02]. It transforms a N×N image into a 2N×2N image where, from left to right, we have from thinner details to approximation.

In continuous, the 2D-ridgelet transform in I R2 can be defined as follows:

Let's consider : I R I R a smooth univariate function with sufficient decay and satisfying the condition:

|()|2/||2dx <

which holds if, for instance, if (t)dt = 0.

Let's suppose that is normalized so that

|()|2||-2dx = 1

a > 0, b I R, [0, 2], we define the bivariate ridgelet

(x1, x2) = ()

.

This function is constant along lines x1cos + x2sin = k, for k constant in I R. Tranverse to these ridges, it is a wavelet.
Given an integrable bivariate function f (x), we define its ridgelet coefficients by

Rf(a, b,) = (x)f (x)dx

We can reconstruct exactly f from its coefficients thanks to the formula

 f (x) = Rf(a, b,)(x)db (12)
valid a.e. for functions wich are both integrable and square integrable. Furthermore, this formula is stable and satisfies a Parseval relation

| f (x)|2dx = | Rf(a, b,)|2db

Hence, as for wavelet or Fourier transforms, the identity (1) expresses the fact that one can represent any arbitrary function as a continuous superposition of ridgelets.

Let's go back to the coefficients Rf(a, b,) calculus. We can view ridgelet analysis as a form of wavelet analysis in the Radon domain. We recall that the Radon transform of an object f is the collection of line integrals indexed by (, t) [0, 2 given by

Rf (, t) = f (x1, x2)(x1cos+x2sin-t)dx1dx2

where is the Dirac distribution. The ridgelet coefficients Rf(a, b,) of f are given by analysis of the Radon transform via

Rf(a, b,) = Rf (t,)a-()dt

Hence the ridgelet transform is precisely the application of a one-dimensional wavelet transform to the slices of the Radon transfom where the angular variable is constant and t is varying.

Our algorithm starts calculating the Radon transform Rf (t,), and then applies the one-dimensional wavelet transform to the slices Rf (.,). In order to calculate the Radon transform, we use the projection-slice formula:

(cos,sin) = Rf (t,)exp(-it)dt

This means that the Radon transform can be obtained by applying the one-dimensional inverse Fourier transform to the two-dimensional Fourier transform restricted to radial lines going through the origin. Given a square image, the algorithm follows successively these steps:
1. Compute the 2D-FFT of f, giving an image
2. Conversion of the cartesian grid into a polar grid: interpolating, we substitute the sampled values of the Fourier transform obtained on the square lattice with sampled values of on a polar lattice (ie where the points fall on lines going through the origin)
3. Apply the 1D-wavelet transform on the radial lines in the Fourier domain.

Version 1.0

Last Modification date : Thu Apr 15 08:03:52 2004

Author

Claire Jonchery, Amandine Robin

Next: ridgpolrec Up: Reference Previous: istkwave1   Contents   Index
mw 2004-05-05