helical_geometry¶
- odl.tomo.geometry.conebeam.helical_geometry(space, src_radius, det_radius, num_turns, n_pi=1, num_angles=None, det_shape=None)[source]¶
Create a default helical geometry from
space
.This function is intended for simple test cases where users do not need the full flexibility of the geometries, but simply wants a geometry that works.
The geometry returned by this function has equidistant angles that lie (strictly) between 0 and
2 * pi * num_turns
. The detector is centered around 0, and its size is chosen such that the wholespace
is covered with lines.The number of angles and detector elements is chosen such that the resulting sinogram is fully sampled according to the Nyquist criterion, which in general results in a very large number of samples. In particular, a
space
that is not centered at the origin can result in very large detectors since the latter is always origin-centered.- Parameters:
- space
DiscretizedSpace
Reconstruction space, the space of the volumetric data to be projected. Must be 3-dimensional.
- src_radiusnonnegative float
Radius of the source circle. Must be larger than the radius of the smallest vertical cylinder containing
space.domain
, i.e., the source must be outside the volume for all rotations.- det_radiusnonnegative float
Radius of the detector circle.
- num_turnspositive float
Total number of helical turns.
- num_anglesint, optional
Number of angles. Default: Enough to fully sample the data, see Notes.
- n_piodd int, optional
Total number of half rotations to include in the window. Values larger than 1 should be used if the pitch is much smaller than the detector height.
- det_shapeint or sequence of ints, optional
Number of detector pixels. Default: Enough to fully sample the data, see Notes.
- space
- Returns:
- geometry
ConeBeamGeometry
Projection geometry with equidistant angles and zero-centered detector as determined by sampling criteria.
- geometry
Notes
In the "fan beam direction", the sampling exactly follows the two-dimensional case see
cone_beam_geometry
for a description.In the "axial direction", e.g. along the [0, 0, 1] axis, the geometry is sampled according to two criteria. First, the bounds of the detector are chosen to satisfy the tuy condition. See [TSS1998] for a full description.
Second, the sampling rate is selected according to the nyquist criterion to give a full sampling. This is done by sampling such that the pixel size is half of the size of the projection of the smallest voxel onto the detector.
References
[TSS1998] Tam, K C, Samarasekera, S and Sauer, F. Exact cone beam CT with a spiral scan. Physics in Medicine & Biology 4 (1998), p 1015.
Examples
Create a helical beam geometry from space:
>>> space = odl.uniform_discr([-1, -1, -1], [1, 1, 1], (20, 20, 20)) >>> geometry = helical_geometry(space, src_radius=5, det_radius=5, ... num_turns=3) >>> geometry.angles.size 234 >>> geometry.detector.shape (57, 9)