STIR 6.5.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.
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 ProjData & get_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 &)
ParsingObject & operator= (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< ProjData > atten_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< ProjData > proj_data_ptr
 points to the object for the total input projection data
ParseAndCreateFrom< TargetT, ProjData > target_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 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_less > RegistryType
 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 RegistryType & registry ()
 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 :=

Constructor & Destructor Documentation

◆ SRT2DSPECTReconstruction() [1/2]

stir::SRT2DSPECTReconstruction::SRT2DSPECTReconstruction ( )

Default constructor (calls set_defaults()).

References SRT2DSPECTReconstruction().

Referenced by SRT2DSPECTReconstruction(), and SRT2DSPECTReconstruction().

◆ SRT2DSPECTReconstruction() [2/2]

stir::SRT2DSPECTReconstruction::SRT2DSPECTReconstruction ( const std::string & parameter_filename)
explicit

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: