# SPLRADON: Spline Convolution-Based Radon and Inverse Radon Transform

A 2D computerized-tomography Matlab Package written by M. Liebling

Image ↔
Sinogram

## Short Description

SPLRADON is a library of functions implementing a discrete, high-precision
Radon transform algorithm and its inverse.

The spline-convolution-based algorithm for computing the Radon transform is equivalent to
performing the following steps:

1. Interpolating the discrete image samples I with B-splines
of degree *n*_{1}.

2. Performing a *continuous* Radon transform of the interpolated, that is, *continuous*, image

2'. (This step is skipped if *n*_{2} equals -1)
Performing a least-squares projection (approximation) of the continuous line
integrals obtained in (2) onto a shift-invariant B-splines
space of degree *n*_{2}.

4. Sampling.

The syntax and conventions are compatible with those of
Matlab's RADON function (Image Processing Toolbox v. ≥ 4.0).
However, SPLRADON offers much more flexibility/accuracy.

## Detailed Overview

The Radon transform of an image *f*(**x**) is

*p*_{ϑ}(*t*) =
*R*_{ϑ}{*f*}(*t*) =
∫_{x∈R2}
*f*(**x**) δ(*t*-**x**.**ϑ**) d**x**,
(1)

where **ϑ** = (cos ϑ,sin ϑ).

The image *f*(**x**) can be decomposed in a B-spline basis of degree *n*_{1}:

*f*(**x**) = Σ_{k∈Z2} *c*_{k}*β _{h}*

^{n1}(

**x**-

*h*

**k**). (2)

In the example of the figure below, all but three coefficients

*c*

_{k}are non-zero, the grid is spaced by a step

*h*, and the degree

*n*

_{1}is equal to 1.

The Radon transform of the image for an angle ϑ is given by

*p*

_{ϑ}(

*t*) =

*R*

_{ϑ}{

*f*}(

*t*) = Σ

_{k∈Z2}

*c*

_{k}

*R*

_{ϑ}{

*β*

_{h}^{n1}}(

*t*-

*h*

**k**.

**ϑ**). (3)

In other words, and as shown in the above figure, the linearity of the Radon transform operator allows us to express it as a weighted sum of shifted basis functions, the Radon transform of the 2D B-spline. A remarkable property of the B-splines allows to compute the latter Radon transform explicitely

*R*

_{ϑ}{

*β*

_{h}^{n}}(

*t*)=

*β*

^{n}

_{h|cos ϑ|}*

*β*

^{n}

_{h|sin ϑ|}(

*t*) =

*β*

^{n,n}

_{h|cos ϑ|,h|sin ϑ|}(

*t*), (4)

as a so-called spline bi-kernel. The following three pictures show

*spline flowers*, corresponding to the projections of B-splines of degree 0, 1, and 3.

Spline flower of degree 0. | |

Spline flower of degree 1. | |

Spline flower of degree 3. |

Since these spline bikernels are continuous, they need to be expressed (since we are to implement things in a computer) using a discrete representation. This is achieved by projecting this continuous function onto the space generated by 1D B-splines of degree *n*_{2} in the Radon space. Now, if you're still with me, and you're interested in how to achieve the reverse operation (inverse Radon transform via a filtered backprojection for use in tomography applications) you should definitely have a look at our paper!

## Acknowledgements

I have written this library while I was a PhD student with Prof. Michael Unser at the Biomedical Imaging Group, EPFL. It is based on an early version of the program, which I wrote (in IDL) while a Masters student in the same lab (a project supervised by Prof. Michael Unser and Dr. Stefan Horbelt). The parts of the code related to B-spline interpolation are based on a c-code implementation written by Philippe Thévenaz, EPFL. I wrote the present distribution and documentation while a postdoc at Caltech for which I acknowledge the support of the Swiss National Science Foundation (Prospective and Advanced Researcher Fellowships).

## Download

By downloading this software from this site, you agree to the following terms and conditions.

Copyright © 2007 Michael Liebling. All rights reserved.

IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OF ANY KIND WHATSOEVER, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF HE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE AND ACCOMPANYING DOCUMENTATION IS PROVIDED "AS IS". THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.

Furthermore, if you publish results that are based on SPLRADON, I expect you to acknowledge me and cite the following paper:

S. Horbelt, M. Liebling, M. Unser, "Discretization of the Radon Transform and of Its Inverse by Spline Convolutions," IEEE Transactions on Medical Imaging, vol 21, no 4, pp. 363-376, April 2002.

In that paper, you will also find the mathematical details concerning this algorithm.

Download:
SPLRADON v. 0.1.

## See also

There is a java applet demo on the Radon transform and the filtered backprojection.

## Feedback

Please send bug reports and comments about SPLRADON and this page to M. Liebling, but please understand that this software is provided "AS IS" and that I cannot provide any support.

## Copyright

Copyright © 2007 Michael Liebling. All rights reserved.