Function File: recon = iradon (proj, theta, interp, filter, scaling, output_size)

Performs filtered back-projection on the projections in proj to reconstruct an approximation of the original image.

proj should be a matrix whose columns are projections of an image (or slice). Each element of theta is used as the angle (in degrees) that the corresponding column of proj was projected at. If theta is omitted, it is assumed that projections were taken at evenly spaced angles between 0 and 180 degrees. theta can also be a scalar, in which case it is taken as the angle between projections if more than one projection is provided.

interp determines the type of interpolation that is used in the back-projection. It must be one of the types accepted by interp1, and defaults to ’Linear’ if it is omitted.

filter and scaling determine the type of rho filter to apply. See the help for rho_filter for their use.

output_size sets the edge length of the output image (it is always square). This argument does not scale the image. If it is omitted, the length is taken to be

2 * floor (size (proj, 1) / (2 * sqrt (2))).

If proj was obtained using radon, there is no guarantee that the reconstructed image will be exactly the same size as the original.

Function File: [recon, filt] = iradon (…)

This form also returns the filter frequency response in the vector filt.

Performs filtered back-projection in order to reconstruct an image based on its projections.

Filtered back-projection is the most common means of reconstructing images from CT scans. It is a two step process: First, each of the projections is filtered with a ‘rho filter’, so named due to its frequency domain definition, which is simply |rho|, where rho is the radial axis in a polar coordinate system. Second, the filtered projections are each ‘smeared’ across the image space. This is the back-projection part.

Usage example:

  P = phantom ();
  projections = radon (P, 1:179);
  reconstruction = iradon (filtered_projections, 1:179, 'Spline', 'Hann');
  figure, imshow (reconstruction, [])

Demonstration 1

The following code

 P = phantom ();
 figure, imshow (P, []), title ("Original image")
 projections = radon (P, 0:179);
 reconstruction = iradon (projections, 0:179, 'Spline', 'Hann');
 figure, imshow (reconstruction, []), title ("Reconstructed image")

Produces the following figures

Figure 1 Figure 2

Package: image