STIR 6.4.0
stir::SRT2DSPECTReconstruction Class Reference

Reconstruction class for 2D Spline Reconstruction Technique. More...

#include "stir/analytic/SRT2DSPECT/SRT2DSPECTReconstruction.h"

Inheritance diagram for stir::SRT2DSPECTReconstruction:

Public Member Functions

 SRT2DSPECTReconstruction ()
 Default constructor (calls set_defaults())
 
 SRT2DSPECTReconstruction (const std::string &parameter_filename)
 Constructor, initialises everything from parameter file, or (when parameter_filename == "") by calling ask_parameters().
 
 SRT2DSPECTReconstruction (const shared_ptr< ProjData > &proj_data_ptr_v)
 
virtual std::string method_info () const
 gives method information
 
virtual void ask_parameters ()
 
virtual Succeeded set_up (shared_ptr< TargetT > const &target_data_sptr)
 
- Public Member Functions inherited from stir::RegisteredParsingObject< SRT2DSPECTReconstruction, Reconstruction< DiscretisedDensity< 3, float > >, AnalyticReconstruction >
std::string get_registered_name () const override
 Returns Derived::registered_name.
 
std::string parameter_info () override
 Returns a string with all parameters and their values, in a form suitable for parsing again.
 
std::string get_registered_name () const override
 Returns Derived::registered_name.
 
std::string parameter_info () override
 Returns a string with all parameters and their values, in a form suitable for parsing again.
 
- Public Member Functions inherited from stir::AnalyticReconstruction
virtual DiscretisedDensity< 3, float > * construct_target_image_ptr () const
 construct an image from parameters set (e.g. during parsing)
 
Succeeded reconstruct () override
 reconstruct and write to file
 
Succeeded reconstruct (shared_ptr< TargetT > const &target_image_sptr) override
 executes the reconstruction storing result in target_image_sptr
 
void set_input_data (const shared_ptr< ExamData > &) override
 set input data
 
const ProjDataget_input_data () const override
 get input data
 
int get_output_image_size_xy () const
 
void set_output_image_size_xy (int)
 
int get_output_image_size_z () const
 
void set_output_image_size_z (int)
 
float get_zoom_xy () const
 
void set_zoom_xy (float)
 
float get_zoom_z () const
 
void set_zoom_z (float)
 
const CartesianCoordinate3D< float > & get_offset () const
 
void set_offset (const CartesianCoordinate3D< float > &)
 
- Public Member Functions inherited from stir::Reconstruction< DiscretisedDensity< 3, float > >
 Reconstruction ()
 default constructor (calls set_defaults())
 
 ~Reconstruction () override
 virtual destructor
 
virtual Succeeded set_up (shared_ptr< DiscretisedDensity< 3, float > > const &target_data_sptr)
 operations prior to the reconstruction
 
void set_output_filename_prefix (const std::string &)
 file name for output reconstructed images
 
void set_output_file_format_ptr (const shared_ptr< OutputFileFormat< DiscretisedDensity< 3, float > > > &)
 defines the format of the output files
 
void set_post_processor_sptr (const shared_ptr< DataProcessor< DiscretisedDensity< 3, float > > > &)
 post-filter
 
void set_disable_output (bool _val)
 set_disable_output
 
shared_ptr< DiscretisedDensity< 3, float > > get_target_image ()
 get_reconstructed_image
 
- Public Member Functions inherited from stir::ParsingObject
 ParsingObject (const ParsingObject &)
 
ParsingObjectoperator= (const ParsingObject &)
 
bool parse (std::istream &f)
 
bool parse (const char *const filename)
 
void ask_parameters ()
 
- Public Member Functions inherited from stir::TimedObject
void reset_timers ()
 reset all timers kept by this object
 
void stop_timers () const
 stop all timers kept by this object
 
void start_timers (bool do_reset=false) const
 start all timers kept by this object
 
double get_CPU_timer_value () const
 get current value of the CPU timer (since first use or last reset)
 
double get_wall_clock_timer_value () const
 get current value of the wall-clock timer (since first use or last reset)
 

Static Public Attributes

static constexpr const char *const registered_name = "SRT2DSPECT"
 Name which will be used when parsing a reconstruction object.
 

Protected Attributes

std::string attenuation_projection_filename
 number of segments to combine (with SSRB) before starting 2D reconstruction
 
float thres_restr_bound
 
std::vector< double > thres_restr_bound_vector
 
shared_ptr< ProjDataatten_data_ptr
 
std::string input_filename
 the input projection data file name
 
int max_segment_num_to_process
 the maximum absolute ring difference number to use in the reconstruction
 
shared_ptr< ProjDataproj_data_ptr
 points to the object for the total input projection data
 
ParseAndCreateFrom< TargetT, ProjDatatarget_parameter_parser
 
std::string output_filename_prefix
 file name for output reconstructed images
 
shared_ptr< OutputFileFormat< DiscretisedDensity< 3, float > > > output_file_format_ptr
 defines the format of the output files
 
shared_ptr< DataProcessor< DiscretisedDensity< 3, float > > > post_filter_sptr
 post-filter
 
bool _already_set_up
 
shared_ptr< DiscretisedDensity< 3, float > > target_data_sptr
 target_data_sptr
 
bool _disable_output
 _disable_output
 
int _verbosity
 Verbosity level.
 
KeyParser parser
 

Additional Inherited Members

- Public Types inherited from stir::AnalyticReconstruction
typedef DiscretisedDensity< 3, float > TargetT
 
- Static Public Member Functions inherited from stir::RegisteredParsingObject< SRT2DSPECTReconstruction, Reconstruction< DiscretisedDensity< 3, float > >, AnalyticReconstruction >
static Reconstruction< DiscretisedDensity< 3, float > > * read_from_stream (std::istream *)
 Construct a new object (of type Derived) by parsing the istream.
 
static Reconstruction< DiscretisedDensity< 3, float > > * read_from_stream (std::istream *)
 Construct a new object (of type Derived) by parsing the istream.
 
- Static Public Member Functions inherited from stir::RegisteredObject< Reconstruction< DiscretisedDensity< 3, float > > >
static Reconstruction< DiscretisedDensity< 3, float > > * read_registered_object (std::istream *in, const std::string &registered_name)
 Construct a new object (of a type derived from Root, its actual type determined by the registered_name parameter) by parsing the istream.
 
static Reconstruction< DiscretisedDensity< 3, float > > * ask_type_and_parameters ()
 ask the user for the type, and then calls read_registered_object(0, type)
 
static void list_registered_names (std::ostream &stream)
 List all possible registered names to the stream.
 
- Protected Types inherited from stir::RegisteredObject< Reconstruction< DiscretisedDensity< 3, float > > >
typedef Reconstruction< DiscretisedDensity< 3, float > > *(* RootFactory) (std::istream *)
 The type of a root factory is a function, taking an istream* as argument, and returning a Root*.
 
typedef FactoryRegistry< std::string, RootFactory, interfile_lessRegistryType
 The type of the registry.
 
virtual void check (DiscretisedDensity< 3, float > const &target_data) const
 do consistency checks
 
void initialise (const std::string &parameter_filename)
 This function initialises all parameters, either via parsing, or by calling ask_parameters() (when parameter_filename is the empty string).
 
virtual void set_key_values ()
 This will be called before parsing or parameter_info is called.
 
- Static Protected Member Functions inherited from stir::RegisteredObject< Reconstruction< DiscretisedDensity< 3, float > > >
static RegistryTyperegistry ()
 Static function returning the registry.
 

Detailed Description

Reconstruction class for 2D Spline Reconstruction Technique.

The algorithm, its reference, and comments on its implementation are described in Chapter 6 of Dimitra Kyriakopoulou's doctoral thesis, “Analytical and Numerical Aspects of Tomography”, University College London (UCL), 2024, supervised by Professor Athanassios S. Fokas (Cambridge) and Professor Kris Thielemans (UCL). Available at: https://discovery.ucl.ac.uk/id/eprint/10202525/

STIR implementations: initial version 2014-2016, 1st updated version 2023-2024

Parameters

SRT2DSPECT takes two inputs:

  • The emission sinogram, which represents the measured attenuated data.
  • The attenuation projection sinogram, which is the Radon transform (line integrals) of the attenuation map.
SRT2DSPECTparameters :=

input file := input.hs
attenuation projection filename := attenuation_projection_sinogram.hs
output filename prefix := output

; output image parameters
; zoom defaults to 1
zoom := -1
; image size defaults to whole FOV
xy output image size (in pixels) := -1

; can be used to call SSRB first
; default means: call SSRB only if no axial compression is already present
;num segments to combine with ssrb := -1

END :=

Member Function Documentation

◆ method_info()

std::string stir::SRT2DSPECTReconstruction::method_info ( ) const
virtual

gives method information

Implements stir::Reconstruction< DiscretisedDensity< 3, float > >.

References method_info().

Referenced by method_info().

Member Data Documentation

◆ attenuation_projection_filename

std::string stir::SRT2DSPECTReconstruction::attenuation_projection_filename
protected

number of segments to combine (with SSRB) before starting 2D reconstruction

if -1, a value is chosen depending on the axial compression. If there is no axial compression, num_segments_to_combine is effectively set to 3, otherwise it is set to 1.

See also
SSRB

The documentation for this class was generated from the following files: