CT Projection Simulator (Scripts) Publisher's description
from Robert Alvarez
Specifying an object as a shape results in fewer edge artifacts in the reconstructed image than with projections from radon.m
Specifying an object as a shape results in fewer edge artifacts in the reconstructed image than with projections from radon.m, which specifies the object as an image.
A comparison of reconstructed images with CTProjSim and radon.m is given at
The object starts as empty and then shapes with specified dimensions and density can be added.
The projections are the product of the length through the instances of all shape times their density.
Different instances of each shape can have different density.
The density can be a vector quantity so the projections are a
(ndetectors, nangles, ndensity) matrix.
The shapes are specified by optional parameters of one or more pairs
'shape',spec where shape can be one of 'ellipse', 'gaussian', or 'polygon'
the spec parameter depends on the shape--see the function help
The lines are equally spaced around the origin and start parallel to the y-axis.
Here is an example of a Shepp-Logan phantom with a square in the middle
% projections for Shepp-Logan phantom
% the spec is for phantom in air .. not water
s = [ ...
% add a small square at the center
% polygon vertexes are specified as complex vectors: x + iy
% exp(1i*pi/4) rotates the square by 45 degrees
pgon.vertex = 0.1*exp(1i*linspace(0,2*pi,5))*exp(1i*pi/4);
pgon.density = -0.1;
pjn = CTProjSim(0.0025,240,'ellipse',s,'polygon',pgon);
img = CTrecon(pjn); % see http://aprendtech.com/wordpress/?p=74 for CTrecon code
% can also use iradon but it will be slow
% nangles = 240;
% angles = linspace(0,180,nangles+1);
% img = iradon(pjn,angles(1:end-1));
for more information see
System Requirements:MATLAB 7.5 (R2007b)
Program Release Status: New Release
Program Install Support: Install and Uninstall