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.
Range through which the beams are rotated, specified as one of the following:
Positive real scalar specifying the increment of the
rotation angle of the fan-beam projections, measured in degrees. See
Positioning of sensors, specified as one of the following:
Positive real scalar specifying the spacing of the fan-beam
sensors. Interpretation of the value depends on the setting of
Name of filter, specified as a character vector. See
Scalar in the range (0,1] that modifies the filter by
rescaling its frequency axis. See
Type of interpolation used between the parallel-beam and fan-beam data, specified as one of the following:
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
Create a sample image. The
phantom function creates a phantom head image.
ph = phantom(128);
Create a fan-beam transformation of the phantom head image.
d = 100; F = fanbeam(ph,d);
Reconstitute the phantom head image from the fan-beam representation. Display the original image and the reconstituted image.
I = ifanbeam(F,d); imshow(ph)
Create a sample image. The phantom function creates a phantom head image.
ph = phantom(128);
Create a radon transformation of the image.
P = radon(ph);
Convert the transformation from parallel beam projection to fan-beam projection.
[F,obeta,otheta] = para2fan(P,100,... 'FanSensorSpacing',0.5,... 'FanCoverage','minimal',... 'FanRotationIncrement',1);
Reconstitute the image from fan-beam data.
phReconstructed = ifanbeam(F,100,... 'FanSensorSpacing',0.5,... 'Filter','Shepp-Logan',... 'OutputSize',128,... 'FanCoverage','minimal',... 'FanRotationIncrement',1);
Display the original and the transformed image.
 Kak, A. C., and M. Slaney, Principles of Computerized Tomographic Imaging, New York, NY, IEEE Press, 1988.