STIR
6.2.0
|
Classes | |
class | stir::PrepareProjData |
A preliminary class to prepare files for iterative reconstruction. More... | |
class | stir::AnalyticReconstruction |
base class for all analytic reconstruction algorithmsThis class provides extra functinoality (compared to Reconstruction) as it assumes that the TargetT is really a VoxelsOnCartesianGrid. More... | |
class | stir::ecat::ecat7::BinNormalisationFromECAT7 |
A BinNormalisation class that gets the normalisation factors from an ECAT7 3D normalisation file. More... | |
class | stir::ecat::BinNormalisationFromECAT8 |
A BinNormalisation class that gets the normalisation factors from an ECAT8 3D normalisation file. Note that you have to point it to the "Interfile" header. More... | |
class | stir::GE::RDF_HDF5::BinNormalisationFromGEHDF5 |
A BinNormalisation class that gets the normalisation factors from an GEHDF5 3D normalisation file. More... | |
class | stir::IterativeReconstruction< TargetT > |
base class for iterative reconstruction objectsThis is the base class for all iterative reconstruction methods. It provides the basic iteration mechanisms. What each iteration does has to be implemented in a derived class. More... | |
class | stir::ProjDataRebinning |
base class for all rebinning algorithms for 3D PET dataTODO describe what rebinning is and why you need it More... | |
class | stir::Reconstruction< TargetT > |
base class for all ReconstructionsAs there is not a lot of commonality between different reconstruction algorithms, this base class is rather basic. It essentially takes care of constructing a target image, calls the virtual reconstruct() function, and writes the result to file. More... | |
class | stir::RelatedBins |
This class contains all information about a set of bins related by symmetry. More... | |
class | stir::SqrtHessianRowSum< TargetT > |
Implementations of two square root Hessian row sum computation methods, as proposed by Tsai et al. (2020). More... | |
class | stir::SumOfGeneralisedObjectiveFunctions< ObjFuncT, TargetT, ParentT > |
A base class for sums of 'generalised' objective functions, i.e. objective functions for which at least a 'gradient' is defined. More... | |
class | stir::PoissonLogLikelihoodWithLinearModelForMeanAndGatedProjDataWithMotion< TargetT > |
a base class for LogLikelihood of independent Poisson variables where the mean values are linear combinations of the gated images. More... | |
class | stir::BinNormalisationFromML2D |
A BinNormalisation class that gets the normalisation factors from the files output by find_ML_normfactors. More... | |
class | stir::BinNormalisationSinogramRescaling |
The BinNormalisationSinogramRescaling class gets normaliastion factors by dividing forward projection of the fitted cyl. to the precorrecred data. More... | |
class | stir::DataSymmetriesForDensels_PET_CartesianGrid |
Symmetries appropriate for a (cylindrical) PET scanner, and a discretised density on a Cartesian grid. More... | |
class | stir::ParametricQuadraticPrior< TargetT > |
A class in the GeneralisedPrior hierarchy. This implements a quadratic Gibbs prior. More... | |
class | stir::ProjMatrixByBinSinglePhoton |
a 'projection matrix' to implement a model for a single photon acquisition in terms of the detector efficiencies. More... | |
class | stir::ProjMatrixByBinUsingSolidAngle |
Computes projection matrix elements for VoxelsOnCartesianGrid images by using a Solid Angle model. More... | |
class | stir::ProjMatrixByBinWithPositronRange |
Computes projection matrix elements for VoxelsOnCartesianGrid images by using a Solid Angle model. More... | |
class | stir::ProjMatrixByDensel |
This is the (abstract) base class for all projection matrices which are organised by 'Densel'. More... | |
class | stir::ProjMatrixByDenselOnCartesianGridUsingElement |
Computes projection matrix elements for VoxelsOnCartesianGrid images by using a Length of Intersection (LOI) model. More... | |
class | stir::ProjMatrixByDenselUsingRayTracing |
Computes projection matrix elements for VoxelsOnCartesianGrid images by using a Length of Intersection (LOI) model. More... | |
class | stir::FourierRebinning |
Class for Serial FORE Reconstruction. More... | |
Functions | |
std::vector< ViewSegmentNumbers > | stir::detail::find_basic_vs_nums_in_subset (const ProjDataInfo &proj_data_info, const DataSymmetriesForViewSegmentNumbers &symmetries, const int min_segment_num, const int max_segment_num, const int subset_num, const int num_subsets) |
a helper function to find which view/segments are in a subsetThis function is used by projectors and distributable_computation etc to construct a list of view/segments that are in a subset, and which are "basic" w.r.t the symmetries. | |
void | stir::ML_estimate_component_based_normalisation (const std::string &out_filename_prefix, const ProjData &measured_data, const ProjData &model_data, int num_eff_iterations, int num_iterations, bool do_geo, bool do_block, bool do_symmetry_per_block, bool do_KL, bool do_display) |
Find normalisation factors using a maximum likelihood approach. | |
void | stir::RayTraceVoxelsOnCartesianGrid (ProjMatrixElemsForOneBin &lor, const CartesianCoordinate3D< float > &start_point, const CartesianCoordinate3D< float > &end_point, const CartesianCoordinate3D< float > &voxel_size, const float normalisation_constant=1.F) |
RayTraceVoxelsOnCartesianGrid finds the Length of Intersections (LOIs) of an LOR with a grid of voxels and appends them to the ProjMatrixElemsForOneBin object. More... | |
Library with 'general' reconstruction building blocks
void stir::RayTraceVoxelsOnCartesianGrid | ( | ProjMatrixElemsForOneBin & | lor, |
const CartesianCoordinate3D< float > & | start_point, | ||
const CartesianCoordinate3D< float > & | end_point, | ||
const CartesianCoordinate3D< float > & | voxel_size, | ||
const float | normalisation_constant = 1.F |
||
) |
RayTraceVoxelsOnCartesianGrid finds the Length of Intersections (LOIs) of an LOR with a grid of voxels and appends them to the ProjMatrixElemsForOneBin object.
lor | object to which the intersected voxels and the LOI will be appended |
start_point | first point on the LOR. The first voxel will contain this point. |
end_point | last point on the LOR. The last voxel will contain this point. |
voxel_size | normally in mm |
normalisation_constant | LOIs will be multiplied with this constant |
start_point and end_point have to be given in 'voxel grid units' (i.e. voxels are spaced 1 unit apart). The centre of the voxels are assumed to be at integer coordinates (e.g. (0,0,0) is the centre of a voxel).
For the start voxel, the intersection length of the LOR with the whole voxel is computed, not just from the start_point to the next edge. The same is true for the end voxel.
RayTraceVoxelsOnCartesianGrid is based on Siddon's algorithm.
Siddon's algorithm works by looking at intersections of the 'intra-voxel' planes with the LOR.
The LORs is parametrised as
Then values of 'a' are computed where the LOR intersects an intra-voxel plane. For example, 'ax' are the values where x= n + 0.5 (for integer n). Finally, we can go along the LOR and check which of the ax,ay,az is smallest, as this determines which plane the LOR intersects at this point.
References stir::norm(), and stir::warning().