Note: This page has been translated by MathWorks. Click here to see

To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

For information about creating projection data from line integrals along paths
that radiate from a single source, called fan-beam projections, see Fan-Beam Projection. To convert
parallel-beam projection data to fan-beam projection data, use the
`para2fan`

function.

The `radon`

function computes
*projections* of an image matrix along specified directions.

A projection of a two-dimensional function *f(x,y)* is a set of
line integrals. The `radon`

function computes the line integrals from
multiple sources along parallel paths, or *beams*, in a certain
direction. The beams are spaced 1 pixel unit apart. To represent an image, the
`radon`

function takes multiple, parallel-beam projections of the
image from different angles by rotating the source around the center of the image. The
following figure shows a single projection at a specified rotation angle.

**Parallel-Beam Projection at Rotation Angle Theta**

For example, the line integral of *f(x,y)* in the vertical
direction is the projection of *f(x,y)* onto the
*x*-axis; the line integral in the horizontal direction is the
projection of *f(x,y)* onto the *y*-axis. The
following figure shows horizontal and vertical projections for a simple two-dimensional
function.

**Horizontal and Vertical Projections of a Simple
Function**

Projections can be computed along any angle *theta* (θ). In
general, the Radon transform of *f(x,y)* is the line integral of
*f* parallel to the *y*´-axis

$${R}_{\theta}\left(x\prime \right)={\displaystyle {\int}_{-\infty}^{\infty}f\left(x\prime \mathrm{cos}\theta -y\prime \mathrm{sin}\theta ,x\prime \mathrm{sin}\theta +y\prime \mathrm{cos}\theta \right)dy\prime}$$

where

$$\left[\begin{array}{c}x\prime \\ y\prime \end{array}\right]=\left[\begin{array}{cc}\text{}\mathrm{cos}\theta & \text{sin}\theta \\ -\mathrm{sin}\theta & \text{cos}\theta \end{array}\right]\left[\begin{array}{c}x\\ y\end{array}\right]$$

The following figure illustrates the geometry of the Radon transform.

**Geometry of the Radon Transform**

This example shows how to compute the Radon transform of an image, `I`

, for a specific set of angles, `theta`

, using the `radon`

function. The function returns, `R`

, in which the columns contain the Radon transform for each angle in `theta`

. The function also returns the vector, `xp`

, which contains the corresponding coordinates along the x-axis. The center pixel of `I`

is defined to be `floor((size(I)+1)/2)`

, which is the pixel on the x-axis corresponding to *x' = 0*.

Create a small sample image for this example that consists of a single square object and display it.

I = zeros(100,100); I(25:75,25:75) = 1; imshow(I)

Calculate the Radon transform of the image for the angles 0 degrees and 45 degrees.

[R,xp] = radon(I,[0 45]);

Plot the transform for 0 degrees.

```
figure
plot(xp,R(:,1));
title('Radon Transform of a Square Function at 0 degrees')
```

Plot the transform for 45 degrees.

```
figure
plot(xp,R(:,2));
title('Radon Transform of a Square Function at 45 degrees')
```

The Radon transform for a large number of angles is often displayed as an image. In this example, the Radon transform for the square image is computed at angles from 0° to 180°, in 1° increments.

theta = 0:180; [R,xp] = radon(I,theta); imagesc(theta,xp,R); title('R_{\theta} (X\prime)'); xlabel('\theta (degrees)'); ylabel('X\prime'); set(gca,'XTick',0:20:180); colormap(hot); colorbar

**Radon Transform Using 180 Projections**

Was this topic helpful?