|
STIR 6.4.0
|
A class to arc-correct projection data. More...
#include "stir/ArcCorrection.h"
Public Member Functions | |
set_up() functions | |
| Succeeded | set_up (const shared_ptr< const ProjDataInfo > &proj_data_info_sptr, const int num_arccorrected_tangential_poss, const float bin_size) |
| Most general version. | |
| Succeeded | set_up (const shared_ptr< const ProjDataInfo > &proj_data_info_sptr, const int num_arccorrected_tangential_poss) |
| Using default bin-size of the scanner. | |
| Succeeded | set_up (const shared_ptr< const ProjDataInfo > &proj_data_info_sptr) |
| Using default bin-size of the scanner and covering the FOV. | |
functions returning a ProjDataInfoCylindricalArcCorr | |
object describing to the arc-corrected data. | |
| const ProjDataInfoCylindricalArcCorr & | get_arc_corrected_proj_data_info () const |
| shared_ptr< const ProjDataInfo > | get_arc_corrected_proj_data_info_sptr () const |
| Returning a shared_ptr to the object. | |
| const ProjDataInfoCylindricalNoArcCorr & | get_not_arc_corrected_proj_data_info () const |
| shared_ptr< const ProjDataInfo > | get_not_arc_corrected_proj_data_info_sptr () const |
| Returning a shared_ptr to the object. | |
functions to do the arc-correction | |
| Sinogram< float > | do_arc_correction (const Sinogram< float > &in) const |
| void | do_arc_correction (Sinogram< float > &out, const Sinogram< float > &in) const |
| Viewgram< float > | do_arc_correction (const Viewgram< float > &in) const |
| void | do_arc_correction (Viewgram< float > &out, const Viewgram< float > &in) const |
| RelatedViewgrams< float > | do_arc_correction (const RelatedViewgrams< float > &in) const |
| void | do_arc_correction (RelatedViewgrams< float > &out, const RelatedViewgrams< float > &in) const |
| SegmentBySinogram< float > | do_arc_correction (const SegmentBySinogram< float > &in) const |
| void | do_arc_correction (SegmentBySinogram< float > &out, const SegmentBySinogram< float > &in) const |
| SegmentByView< float > | do_arc_correction (const SegmentByView< float > &in) const |
| void | do_arc_correction (SegmentByView< float > &out, const SegmentByView< float > &in) const |
| Succeeded | do_arc_correction (ProjData &out, const ProjData &in) const |
A class to arc-correct projection data.
Arc-correction is a common name for converting the non-uniform tangential sampling from a cylindrical PET scanner to a uniform one. (GE terminology is 'geometric correction').
This class assumes that the input projection data have already been normalised.
For given non-arccorrected data, the data will be first multiplied by the bin-sizes, then interpolated to the desired uniform sampling using overlap_interpolate, and then divided by the new sampling. This ensures that the normalisation is preserved. Also, uniform data will result in uniform output.
| Succeeded stir::ArcCorrection::set_up | ( | const shared_ptr< const ProjDataInfo > & | proj_data_info_sptr, |
| const int | num_arccorrected_tangential_poss, | ||
| const float | bin_size ) |
Most general version.
Set-up the arc-correction object. The parameter proj_data_info_sptr has to be a shared_ptr to a ProjDataInfoCylindricalNoArcCorr object.
Different versions are available to allow using default parameters.
References set_up(), and stir::warning().
Referenced by stir::ArcCorrectionTests::run_tests(), set_up(), set_up(), and set_up().
| Succeeded stir::ArcCorrection::set_up | ( | const shared_ptr< const ProjDataInfo > & | proj_data_info_sptr, |
| const int | num_arccorrected_tangential_poss ) |
Using default bin-size of the scanner.
If the default bin-size is 0, the tangential size of the central bin (i.e. Bin(0,0,0,0)) of the non-arccorrected data will be used.
References set_up(), and stir::warning().
| Succeeded stir::ArcCorrection::set_up | ( | const shared_ptr< const ProjDataInfo > & | proj_data_info_sptr | ) |
Using default bin-size of the scanner and covering the FOV.
If the default bin-size is 0, the tangential size of the central bin (i.e. Bin(0,0,0,0)) of the non-arccorrected data will be used.
num_arccorrected_bins is chosen such that the new (radial) FOV is slightly larger than the one covered by the original data.
References set_up(), and stir::warning().
| shared_ptr< const ProjDataInfo > stir::ArcCorrection::get_arc_corrected_proj_data_info_sptr | ( | ) | const |
Returning a shared_ptr to the object.
References get_arc_corrected_proj_data_info_sptr().
Referenced by get_arc_corrected_proj_data_info_sptr().
| shared_ptr< const ProjDataInfo > stir::ArcCorrection::get_not_arc_corrected_proj_data_info_sptr | ( | ) | const |
Returning a shared_ptr to the object.
References get_not_arc_corrected_proj_data_info_sptr().
Referenced by get_not_arc_corrected_proj_data_info_sptr().
Almost all these functions come in pairs (the exception being the function that arc-corrects a whole ProjData). The 1 argument version returns the arc-corrected data. In the 2 argument version, the first argument will be filled with the arc-corrected data.
References do_arc_correction(), stir::Sinogram< elemT >::get_axial_pos_num(), stir::Sinogram< elemT >::get_segment_num(), and stir::Sinogram< elemT >::get_timing_pos_num().
Referenced by do_arc_correction().