Image Processing Toolbox | ![]() ![]() |
Compute inverse Radon transform
Syntax
Description
I = iradon(P,theta)
reconstructs the image I
from projection data in the two-dimensional array P
. The columns of P
are parallel beam projection data. iradon
assumes that the center of rotation is the center point of the projections, which is defined as ceil(size(P,1)/2)
.
theta
describes the angles (in degrees) at which the projections were taken. It can be either a vector containing the angles or a scalar specifying D_theta
, the incremental angle between projections. If theta
is a vector, it must contain angles with equal spacing between them. If theta
is a scalar specifying D_theta
, the projections are taken at angles theta
=
m*D_theta
, where m
=
0,1,2,...,size(P,2)-1
. If the input is the empty matrix ([]
), D_theta
defaults to 180/size(P,2)
.
iradon
uses the filtered back-projection algorithm to perform the inverse Radon transform. The filter is designed directly in the frequency domain and then multiplied by the FFT of the projections. The projections are zero-padded to a power of 2 before filtering to prevent spatial domain aliasing and to speed up the FFT.
I = iradon(P,theta,
interp
,
filter
,d,n)
specifies parameters to use in the inverse Radon transform. You can specify any combination of the last four arguments. iradon
uses default values for any of these arguments that you omit.
interp
specifies the type of interpolation to use in the backprojection. The available options are listed in order of increasing accuracy and computational complexity:
'nearest'
- nearest neighbor interpolation
'linear'
- linear interpolation (default)
'spline'
- spline interpolation
filter
specifies the filter to use for frequency domain filtering. filter
is a string that specifies any of the following standard filters:
'Ram-Lak'
- The cropped Ram-Lak or ramp filter (default). The frequency response of this filter is | f
|. Because this filter is sensitive to noise in the projections, one of the filters listed below may be preferable. These filters multiply the Ram-Lak filter by a window that de-emphasizes high frequencies.
'Shepp-Logan'
- The Shepp-Logan filter multiplies the Ram-Lak filter by a sinc function.
'Cosine'
- The cosine filter multiplies the Ram-Lak filter by a cosine function.
'Hamming'
- The Hamming filter multiplies the Ram-Lak filter by a Hamming window.
'Hann'
- The Hann filter multiplies the Ram-Lak filter by a Hann window.
d
is a scalar in the range (0,1] that modifies the filter by rescaling its frequency axis. The default is 1. If d
is less than 1, the filter is compressed to fit into the frequency range [0,d
], in normalized frequencies; all frequencies above d
are set to 0.
n
is a scalar that specifies the number of rows and columns in the reconstructed image. If n
is not specified, the size is determined from the length of the projections.
If you specify n
, iradon
reconstructs a smaller or larger portion of the image, but does not change the scaling of the data. If the projections were calculated with the radon
function, the reconstructed image may not be the same size as the original image.
[I,h] = iradon(...)
returns the frequency response of the filter in the vector h
.
Class Support
All input arguments and output arguments must be of class double.
Example
P = phantom(128); R = radon(P,0:179); I = iradon(R,0:179,'nearest','Hann'); imshow(P) figure, imshow(I)
Algorithm
iradon
uses the filtered backprojection algorithm to perform the inverse Radon transform. The filter is designed directly in the frequency domain and then multiplied by the FFT of the projections. The projections are zero-padded to a power of 2 before filtering to prevent spatial domain aliasing and to speed up the FFT.
See Also
References
[1] Kak, Avinash C., and Malcolm Slaney, Principles of Computerized Tomographic Imaging. New York: IEEE Press.
![]() | iptsetpref | isbw | ![]() |