STIR  6.2.0
Public Member Functions | Static Public Attributes | Protected Attributes | List of all members
stir::FBP2DReconstruction Class Reference

Reconstruction class for 2D Filtered Back Projection. More...

#include "stir/analytic/FBP2D/FBP2DReconstruction.h"

Inheritance diagram for stir::FBP2DReconstruction:
Inheritance graph
[legend]

Public Member Functions

 FBP2DReconstruction ()
 Default constructor (calls set_defaults())
 
 FBP2DReconstruction (const std::string &parameter_filename)
 Constructor, initialises everything from parameter file, or (when parameter_filename == "") by calling ask_parameters().
 
 FBP2DReconstruction (const shared_ptr< ProjData > &, const double alpha_ramp=1., const double fc_ramp=.5, const int pad_in_s=2, const int num_segments_to_combine=-1)
 
std::string method_info () const override
 gives method information
 
virtual void ask_parameters ()
 
Succeeded set_up (shared_ptr< TargetT > const &target_data_sptr) override
 operations prior to the reconstruction More...
 
- Public Member Functions inherited from stir::RegisteredParsingObject< FBP2DReconstruction, 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 More...
 
Succeeded reconstruct (shared_ptr< TargetT > const &target_image_sptr) override
 executes the reconstruction storing result in target_image_sptr More...
 
void set_input_data (const shared_ptr< ExamData > &) override
 set input data
 
const ProjDataget_input_data () const override
 get input data More...
 
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
 
void set_disable_output (bool _val)
 set_disable_output More...
 
shared_ptr< DiscretisedDensity< 3, float > > get_target_image ()
 get_reconstructed_image More...
 
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
 
- Public Member Functions inherited from stir::ParsingObject
 ParsingObject (const ParsingObject &)
 
ParsingObjectoperator= (const ParsingObject &)
 
void ask_parameters ()
 
bool parse (std::istream &f)
 
bool parse (const char *const filename)
 
- 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 More...
 
void start_timers (bool do_reset=false) const
 start all timers kept by this object More...
 
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 const char *const registered_name = "FBP2D"
 Name which will be used when parsing a ProjectorByBinPair object.
 

Protected Attributes

double alpha_ramp
 Ramp filter: Alpha value.
 
double fc_ramp
 Ramp filter: Cut off frequency.
 
int pad_in_s
 amount of padding for the filter (has to be 0,1 or 2)
 
int num_segments_to_combine
 number of segments to combine (with SSRB) before starting 2D reconstruction More...
 
int display_level
 potentially display data More...
 
- Protected Attributes inherited from stir::AnalyticReconstruction
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 More...
 
shared_ptr< ProjDataproj_data_ptr
 points to the object for the total input projection data
 
ParseAndCreateFrom< TargetT, ProjDatatarget_parameter_parser
 
- Protected Attributes inherited from stir::Reconstruction< DiscretisedDensity< 3, float > >
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 More...
 
int _verbosity
 Verbosity level.
 
- Protected Attributes inherited from stir::ParsingObject
KeyParser parser
 

Additional Inherited Members

- Public Types inherited from stir::AnalyticReconstruction
typedef DiscretisedDensity< 3, float > TargetT
 
- Static Public Member Functions inherited from stir::RegisteredParsingObject< FBP2DReconstruction, 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. More...
 
- 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. More...
 
static Reconstruction< DiscretisedDensity< 3, float > > * ask_type_and_parameters ()
 ask the user for the type, and then calls read_registered_object(0, type) More...
 
static void list_registered_names (std::ostream &stream)
 List all possible registered names to the stream. More...
 
- 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.
 
- Protected Member Functions inherited from stir::AnalyticReconstruction
virtual Succeeded actual_reconstruct (shared_ptr< TargetT > const &target_image_sptr)=0
 executes the reconstruction storing result in target_image_sptr More...
 
bool post_processing () override
 used to check acceptable parameter ranges, etc...
 
void set_defaults () override
 Set defaults before parsing.
 
void initialise_keymap () override
 Initialise all keywords.
 
- Protected Member Functions inherited from stir::Reconstruction< DiscretisedDensity< 3, float > >
virtual void check (DiscretisedDensity< 3, float > const &target_data) const
 do consistency checks More...
 
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). More...
 
void set_defaults () override
 Set defaults before parsing.
 
void initialise_keymap () override
 Initialise all keywords.
 
bool post_processing () override
 used to check acceptable parameters after parsing More...
 
- Protected Member Functions inherited from stir::ParsingObject
virtual void set_key_values ()
 This will be called before parsing or parameter_info is called. More...
 
- Static Protected Member Functions inherited from stir::RegisteredObject< Reconstruction< DiscretisedDensity< 3, float > > >
static RegistryTyperegistry ()
 Static function returning the registry. More...
 

Detailed Description

Reconstruction class for 2D Filtered Back Projection.

Parameters
fbp2dparameters :=

input file := input.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) := 180

; 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

; filter parameters, default to pure ramp
alpha parameter for ramp filter := 1
cut-off for ramp filter (in cycles) := 0.5

; allow less padding. DO NOT USE
; (unless you're sure that the object occupies only half the FOV)
;Transaxial extension for FFT:=1

; back projector that could be used (defaults to interpolating backprojector)
; Back projector type:= some type

; display data during processing for debugging purposes
; Display level := 0
end :=

alpha specifies the usual Hamming window (although I'm not so sure about the terminology here). So, for the "ramp filter" alpha =1. In frequency space, something like (from RampFilter.cxx)

(alpha + (1 - alpha) * cos(_PI * f / fc))

Member Function Documentation

◆ set_up()

Succeeded stir::FBP2DReconstruction::set_up ( shared_ptr< TargetT > const &  target_data_sptr)
overridevirtual

operations prior to the reconstruction

Will do various consistency checks and return Succeeded::no if something is wrong.

Todo:
Currently, set_up() is called by reconstruct(). This is in contrast with some other class hierarchies in STIR where set_up() has to be called before any actual processing. Maybe this should be made consistent.

Reimplemented from stir::Reconstruction< DiscretisedDensity< 3, float > >.

References stir::error(), and stir::warning().

Referenced by stir::TestFBP2D::run_tests().

Member Data Documentation

◆ num_segments_to_combine

int stir::FBP2DReconstruction::num_segments_to_combine
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

◆ display_level

int stir::FBP2DReconstruction::display_level
protected

potentially display data

allowed values: display_level=0 (no display), 1 (only final image), 2 (filtered-viewgrams). Defaults to 0.


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