STIR 6.4.0
ML_norm.h File Reference

Preliminary things for ML normalisation factor estimation. More...

Go to the source code of this file.

Namespaces

namespace  stir
 Namespace for the STIR library (and some/most of its applications)
 

Typedefs

typedef Array< 2, float > stir::GeoData
 
typedef Array< 2, float > stir::BlockData
 
typedef Array< 2, float > stir::DetectorEfficiencies
 
typedef FanProjData stir::BlockData3D
 

Functions

void stir::get_fan_info (int &num_rings, int &num_detectors_per_ring, int &max_ring_diff, int &fan_size, const ProjDataInfo &proj_data_info)
 
void stir::make_det_pair_data (DetPairData &det_pair_data, const ProjDataInfo &proj_data_info, const int segment_num, const int ax_pos_num)
 Makes a DetPairData of appropriate dimensions and fills it with 0.
 
void stir::make_det_pair_data (DetPairData &det_pair_data, const ProjData &proj_data, const int segment_num, const int ax_pos_num)
 
void stir::set_det_pair_data (ProjData &proj_data, const DetPairData &det_pair_data, const int segment_num, const int ax_pos_num)
 
void stir::apply_block_norm (DetPairData &det_pair_data, const BlockData &block_data, const bool apply)
 
void stir::apply_geo_norm (DetPairData &det_pair_data, const GeoData &geo_data, const bool apply)
 
void stir::apply_efficiencies (DetPairData &det_pair_data, const Array< 1, float > &efficiencies, const bool apply)
 
void stir::make_fan_sum_data (Array< 1, float > &data_fan_sums, const DetPairData &det_pair_data)
 
void stir::make_geo_data (GeoData &geo_data, const DetPairData &det_pair_data)
 
void stir::make_block_data (BlockData &block_data, const DetPairData &det_pair_data)
 
void stir::iterate_efficiencies (Array< 1, float > &efficiencies, const Array< 1, float > &data_fan_sums, const DetPairData &model)
 
void stir::iterate_geo_norm (GeoData &norm_geo_data, const GeoData &measured_geo_data, const DetPairData &model)
 
void stir::iterate_block_norm (BlockData &norm_block_data, const BlockData &measured_block_data, const DetPairData &model)
 
void stir::make_fan_data_remove_gaps (FanProjData &fan_data, const ProjData &proj_data)
 
void stir::set_fan_data_add_gaps (ProjData &proj_data, const FanProjData &fan_data, const float gap_value)
 
void stir::apply_block_norm (FanProjData &fan_data, const BlockData3D &block_data, const bool apply)
 
void stir::apply_geo_norm (FanProjData &fan_data, const GeoData3D &geo_data, const bool apply)
 
void stir::apply_efficiencies (FanProjData &fan_data, const DetectorEfficiencies &efficiencies, const bool apply)
 
void stir::make_fan_sum_data (Array< 2, float > &data_fan_sums, const FanProjData &fan_data)
 
void stir::make_fan_sum_data (Array< 2, float > &data_fan_sums, const ProjData &proj_data)
 
void stir::make_fan_sum_data (Array< 2, float > &data_fan_sums, const DetectorEfficiencies &efficiencies, const int max_ring_diff, const int half_fan_size)
 
void stir::make_geo_data (GeoData3D &geo_data, const FanProjData &fan_data)
 
void stir::make_block_data (BlockData3D &block_data, const FanProjData &fan_data)
 
void stir::iterate_efficiencies (DetectorEfficiencies &efficiencies, const Array< 2, float > &data_fan_sums, const FanProjData &model)
 
void stir::iterate_efficiencies (DetectorEfficiencies &efficiencies, const Array< 2, float > &data_fan_sums, const int max_ring_diff, const int half_fan_size)
 
void stir::iterate_geo_norm (GeoData3D &norm_geo_data, const GeoData3D &measured_geo_data, const FanProjData &model)
 
void stir::iterate_block_norm (BlockData3D &norm_block_data, const BlockData3D &measured_block_data, const FanProjData &model)
 
double stir::KL (const double a, const double b, const double threshold_a=0)
 
template<int num_dimensions, typename elemT>
double stir::KL (const Array< num_dimensions, elemT > &a, const Array< num_dimensions, elemT > &b, const double threshold_a=0)
 
double stir::KL (const DetPairData &d1, const DetPairData &d2, const double threshold)
 
double stir::KL (const FanProjData &d1, const FanProjData &d2, const double threshold)
 

Detailed Description

Preliminary things for ML normalisation factor estimation.

Algorithms are described in

  1. Darren Hogg, Kris Thielemans, Terence J. Spinks, and Nicolas Spyrou. 2001. Maximum-Likelihood Estimation of Normalisation Factors for PET In 2001 IEEE Nuclear Science Symposium Conference Record, 4:2065-2069. San Diego, CA, USA: IEEE. https://doi.org/10.1109/nssmic.2001.1009231.
  2. Jacobson, Matthew W., and Kris Thielemans. 2008. Optimizability of Loglikelihoods for the Estimation of Detector Efficiencies and Singles Rates in PET In 2008 IEEE Nuclear Science Symposium and Medical Imaging Conference (2008 NSS/MIC), 4580-4586. IEEE. https://doi.org/10.1109/nssmic.2008.4774352.
  3. Tahereh Niknejad, Stefaan Tavernier, Joao Varela, and Kris Thielemans, Validation of 3D Model-Based Maximum-Likelihood Estimation of Normalisation Factors for Partial Ring Positron Emission Tomography In 2016 IEEE Nuclear Science Symposium, Medical Imaging Conference and Room-Temperature Semiconductor Detector Workshop (NSS/MIC/RTSD), 1-5. DOI: 10.1109/NSSMIC.2016.8069577.
Author
Kris Thielemans
Tahereh Niknejad
Daniel Deidda