27 #ifndef __stir_OSMAPOSL_OSMAPOSLReconstruction_h__ 28 # define __stir_OSMAPOSL_OSMAPOSLReconstruction_h__ 35 template <
typename TargetT>
36 class PoissonLogLikelihoodWithLinearModelForMean;
74 template <
typename TargetT>
76 :
public RegisteredParsingObject<OSMAPOSLReconstruction<TargetT>, Reconstruction<TargetT>, IterativeReconstruction<TargetT>>
102 std::string method_info()
const override;
116 void set_inter_update_filter_interval(
const int);
123 void set_maximum_relative_change(
const double);
126 void set_minimum_relative_change(
const double);
128 void set_enforce_initial_positivity(
const bool);
131 void set_write_update_image(
const int);
134 void set_MAP_model(
const std::string&);
138 void ask_parameters()
override;
141 Succeeded set_up(shared_ptr<TargetT>
const& target_image_ptr)
override;
144 void update_estimate(TargetT& current_image_estimate)
override;
179 void set_defaults()
override;
180 void initialise_keymap()
override;
183 bool post_processing()
override;
186 compute_sub_gradient_without_penalty_plus_sensitivity(TargetT& gradient,
const TargetT& current_estimate,
const int subset_num);
188 virtual const TargetT& get_subset_sensitivity(
const int subset_num);
190 virtual void apply_multiplicative_update(TargetT& current_image_estimate,
const TargetT& multiplicative_update_image);
193 friend void do_sensitivity(
const char*
const par_filename);
202 unique_ptr<TargetT> multiplicative_update_image_ptr;
static const char *const registered_name
Name which will be used when parsing a OSMAPOSLReconstruction object.
Definition: OSMAPOSLReconstruction.h:85
shared_ptr< DataProcessor< TargetT > > inter_update_filter_ptr
inter-update filter object
Definition: OSMAPOSLReconstruction.h:163
double minimum_relative_change
restrict updates (smaller relative updates will be thresholded)
Definition: OSMAPOSLReconstruction.h:171
bool enforce_initial_positivity
operations prior to the iterations
Definition: OSMAPOSLReconstruction.h:151
bool do_rim_truncation
determines wether voxels outside a circular FOV will be set to 0 or not
Definition: OSMAPOSLReconstruction.h:157
OSMAPOSLReconstruction & get_parameters()
accessor for the external parameters
Definition: OSMAPOSLReconstruction.h:96
const OSMAPOSLReconstruction & get_parameters() const
accessor for the external parameters
Definition: OSMAPOSLReconstruction.h:99
double maximum_relative_change
restrict updates (larger relative updates will be thresholded)
Definition: OSMAPOSLReconstruction.h:168
int write_update_image
boolean value to determine if the update images have to be written to disk
Definition: OSMAPOSLReconstruction.h:174
base class for all ReconstructionsAs there is not a lot of commonality between different reconstructi...
Definition: Reconstruction.h:69
declares the stir::IterativeReconstruction class
Parent class for all leaves in a RegisteredObject hierarchy that do parsing of parameter files...
Definition: RegisteredParsingObject.h:77
std::string MAP_model
should be either additive or multiplicative
Definition: OSMAPOSLReconstruction.h:177
base class for iterative reconstruction objectsThis is the base class for all iterative reconstructio...
Definition: IterativeReconstruction.h:81
a class containing an enumeration type that can be used by functions to signal successful operation o...
Definition: Succeeded.h:43
Implementation of the Ordered Subsets version of Green's MAP One Step Late algorithm.
Definition: OSMAPOSLReconstruction.h:75
Declaration of class stir::RegisteredParsingObject.
int inter_update_filter_interval
subiteration interval at which to apply inter-update filters
Definition: OSMAPOSLReconstruction.h:160