Inverse fan-beam transform
I = ifanbeam(F,D)
I = ifanbeam(...,param1,val1,param2,val2,...)
[I,H] = ifanbeam(...)
I = ifanbeam(F,D) reconstructs
the image I from projection data in the two-dimensional array
Each column of
F contains fan-beam projection data
at one rotation angle.
ifanbeam assumes that the
center of rotation is the center point of the projections, which is
The fan-beam spread angles are assumed to be the same increments
as the input rotation angles split equally on either side of zero.
The input rotation angles are assumed to be stepped in equal increments
D is the distance from the fan-beam vertex
to the center of rotation.
I = ifanbeam(...,param1,val1,param2,val2,...) specifies
parameters that control various aspects of the
described in the following table. Parameter names can be abbreviated,
and case does not matter. Default values are in braces (
String specifying the range through which the beams are rotated.
Positive real scalar specifying the increment of the
rotation angle of the fan-beam projections, measured in degrees. See
String specifying how sensors are positioned.
Positive real scalar specifying the spacing of the fan-beam
sensors. Interpretation of the value depends on the setting of
String specifying the name of a filter. See
Scalar in the range (0,1] that modifies the filter by
rescaling its frequency axis. See
Text string specifying the type of interpolation used between the parallel-beam and fan-beam data.
Positive scalar specifying the number of rows and columns in the reconstructed image.
[I,H] = ifanbeam(...) returns
the frequency response of the filter in the vector
ifanbeam converts the fan-beam data to parallel
beam projections and then 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.
The input arguments,
other numeric input arguments must be
output arguments are
This example creates a fan-beam transformation of the phantom
head image and then calls the
to recreate the phantom image from the fan-beam transformation.
ph = phantom(128); d = 100; F = fanbeam(ph,d); I = ifanbeam(F,d); imshow(ph), figure, imshow(I);
This example illustrates use of the
'fancoverage' option set to
ph = phantom(128); P = radon(ph); [F,obeta,otheta] = para2fan(P,100,... 'FanSensorSpacing',0.5,... 'FanCoverage','minimal',... 'FanRotationIncrement',1); phReconstructed = ifanbeam(F,100,... 'FanSensorSpacing',0.5,... 'Filter','Shepp-Logan',... 'OutputSize',128,... 'FanCoverage','minimal',... 'FanRotationIncrement',1); imshow(ph), figure, imshow(phReconstructed)
 Kak, A. C., and M. Slaney, Principles of Computerized Tomographic Imaging, New York, NY, IEEE Press, 1988.