Convert fan-beam projections to parallel-beam
P = fan2para(F,D)
P = fan2para(..., param1, val1, param2, val2,...)
[P ,parallel_locations, parallel_rotation_angles] = fan2para(...)
P = fan2para(F,D) converts
the fan-beam data
F to the parallel-beam data
the distance in pixels from the fan-beam vertex to the center of rotation
that was used to obtain the projections.
P = fan2para(..., param1, val1, param2,
val2,...) specifies parameters that control various aspects
fan2para conversion, listed 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. Default value is 1.
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
This linear spacing is measured on the x' axis.
The x' axis for each column,
Type of interpolation used between the parallel-beam and fan-beam data, specified as one of the following:.
Range of rotation, specified as one of the following:
Positive real scalar specifying the parallel-beam rotation
angle increment, measured in degrees. Parallel beam angles are calculated
to cover [0,180) degrees with increment
Positive real scalar specifying the spacing of the parallel-beam sensors in pixels. The range of sensor locations is implied by the range of fan angles and is given by
[P ,parallel_locations, parallel_rotation_angles]
= fan2para(...) returns the parallel-beam sensor locations
parallel_locations and rotation angles in
The input arguments,
they must be nonsparse. All other numeric inputs are
Create synthetic parallel-beam data.
ph = phantom(128);
Calculate the parallel beam transform and display it.
theta = 0:179; [Psynthetic,xp] = radon(ph,theta); imshow(Psynthetic,,... 'XData',theta,'YData',xp,'InitialMagnification','fit') axis normal title('Synthetic Parallel-Beam Data') xlabel('\theta (degrees)') ylabel('x''') colormap(gca,hot), colorbar
Convert the parallel-beam data to fan-beam.
Fsynthetic = para2fan(Psynthetic,100,'FanSensorSpacing',1);
Recover original parallel-beam data.
[Precovered,Ploc,Pangles] = fan2para(Fsynthetic,100,... 'FanSensorSpacing',1,... 'ParallelSensorSpacing',1); figure imshow(Precovered,,... 'XData',Pangles,'YData',Ploc,'InitialMagnification','fit') axis normal title('Recovered Parallel-Beam Data') xlabel('Rotation Angles (degrees)') ylabel('Parallel Sensor Locations (pixels)') colormap(gca,hot), colorbar