STIR  6.2.0
Public Member Functions | Protected Attributes | List of all members
stir::SqrtHessianRowSum< TargetT > Class Template Reference

Implementations of two square root Hessian row sum computation methods, as proposed by Tsai et al. (2020). More...

#include "stir/recon_buildblock/SqrtHessianRowSum.h"

Inheritance diagram for stir::SqrtHessianRowSum< TargetT >:
Inheritance graph
[legend]

Public Member Functions

 SqrtHessianRowSum ()
 Default constructor. More...
 
 SqrtHessianRowSum (const std::string &)
 
void set_defaults () override
 sets default values More...
 
void process_data ()
 The main function to compute and save the sqrt of the Hessian row sum volume. More...
 
shared_ptr< TargetT > get_output_target_sptr ()
 get method for returning the sqrt row sum image
 
void set_up ()
 
void compute_Hessian_row_sum ()
 Computes the objective function Hessian row sum at the current image estimate. Can compute the penalty's Hessian if it exists for the selected prior.
 
void compute_approximate_Hessian_row_sum ()
 Computes the approximate Hessian of the objective function. Cannot use penalty's approximate Hessian, see compute_with_penalty.
 
get and set methods for the objective function sptr
GeneralisedObjectiveFunction< TargetT > const & get_objective_function_sptr ()
 
void set_objective_function_sptr (const shared_ptr< GeneralisedObjectiveFunction< TargetT >> &obj_fun)
 
get and set methods for the input image
shared_ptr< TargetT > get_input_image_sptr ()
 
void set_input_image_sptr (shared_ptr< TargetT > const &image)
 
get and set methods for use approximate hessian bool
bool get_use_approximate_hessian () const
 
void set_use_approximate_hessian (bool use_approximate)
 
get and set methods for the compute with penalty bool
bool get_compute_with_penalty () const
 
void set_compute_with_penalty (bool with_penalty)
 
- Public Member Functions inherited from stir::ParsingObject
 ParsingObject (const ParsingObject &)
 
ParsingObjectoperator= (const ParsingObject &)
 
void ask_parameters ()
 
virtual std::string parameter_info ()
 
bool parse (std::istream &f)
 
bool parse (const char *const filename)
 

Protected Attributes

bool _already_setup = false
 
- Protected Attributes inherited from stir::ParsingObject
KeyParser parser
 

Additional Inherited Members

- Protected Member Functions inherited from stir::ParsingObject
virtual void set_key_values ()
 This will be called before parsing or parameter_info is called. More...
 

Detailed Description

template<typename TargetT>
class stir::SqrtHessianRowSum< TargetT >

Implementations of two square root Hessian row sum computation methods, as proposed by Tsai et al. (2020).

Two methods of computing the sqrt of the Hessian row sum images:

For more details, see: Tsai, Y.-J., Schramm, G., Ahn, S., Bousse, A., Arridge, S., Nuyts, J., Hutton, B. F., Stearns, C. W., & Thielemans, K. (2020). Benefits of Using a Spatially-Variant Penalty Strength With Anatomical Priors in PET Reconstruction. IEEE Transactions on Medical Imaging, 39(1), 11-22. https://doi.org/10.1109/TMI.2019.2913889

Constructor & Destructor Documentation

◆ SqrtHessianRowSum()

template<typename TargetT >
stir::SqrtHessianRowSum< TargetT >::SqrtHessianRowSum ( )

Default constructor.

calls set_defaults().

Member Function Documentation

◆ set_defaults()

template<typename TargetT >
void stir::SqrtHessianRowSum< TargetT >::set_defaults ( )
overridevirtual

sets default values

Sets use_approximate_hessian to true and compute_with_penalty to false

Reimplemented from stir::ParsingObject.

References stir::error().

◆ process_data()

template<typename TargetT >
void stir::SqrtHessianRowSum< TargetT >::process_data ( )

The main function to compute and save the sqrt of the Hessian row sum volume.

Different Hessian row sum methods can be used, see compute_Hessian_row_sum() and compute_approximate_Hessian_row_sum().


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