CASToR
3.0
Tomographic Reconstruction (PET/SPECT/CT)
|
This class implements the One Step Late algorithm. More...
#include <iOptimizerOneStepLate.hh>
Public Member Functions | |
iOptimizerOneStepLate () | |
The constructor of iOptimizerOneStepLate. More... | |
~iOptimizerOneStepLate () | |
The destructor of iOptimizerOneStepLate. More... | |
int | ReadConfigurationFile (const string &a_configurationFile) |
A function used to read options from a configuration file. More... | |
int | ReadOptionsList (const string &a_optionsList) |
A function used to read options from a list of options. More... | |
Public Member Functions inherited from vOptimizer | |
vOptimizer () | |
The constructor of vOptimizer. More... | |
virtual | ~vOptimizer () |
The destructor of vOptimizer. More... | |
void | ShowHelp () |
A function used to show help about the optimizer. More... | |
int | CheckParameters () |
A public function used to check the parameters settings. More... | |
int | Initialize () |
A public function used to initialize the optimizer. More... | |
int | UpdateVisitedVoxels () |
A public function used to update the 'visited' voxels after each subset. More... | |
int | PreDataUpdateStep () |
A public function used to do stuff that need to be done at the beginning of a subset (before the data update step; i.e. the loop over all events) More... | |
int | PreImageUpdateStep () |
A public function used to do stuff that need to be done between the loop over events and the image update step. More... | |
virtual int | DataStep1ForwardProjectModel (oProjectionLine *ap_Line, vEvent *ap_Event, int a_bed, int a_timeFrame, int a_respGate, int a_cardGate, int a_thread) |
A public function used to compute the model: forward projection of the provided event. More... | |
virtual int | DataStep2Optional (oProjectionLine *ap_Line, vEvent *ap_Event, int a_bed, int a_timeFrame, int a_respGate, int a_cardGate, int a_thread) |
A public function which does nothing but being virtual. More... | |
virtual int | DataStep3BackwardProjectSensitivity (oProjectionLine *ap_Line, vEvent *ap_Event, int a_bed, int a_timeFrame, int a_respGate, int a_cardGate, int a_thread) |
A public function used to back-project the sensitivity terms for the provided event. More... | |
virtual int | DataStep4Optional (oProjectionLine *ap_Line, vEvent *ap_Event, int a_bed, int a_timeFrame, int a_respGate, int a_cardGate, int a_thread) |
A public function which does nothing but being virtual. More... | |
virtual int | DataStep5ComputeCorrections (oProjectionLine *ap_Line, vEvent *ap_Event, int a_bed, int a_timeFrame, int a_respGate, int a_cardGate, int a_thread) |
A public function used to compute the correction terms in the data space, for the provided event. More... | |
virtual int | DataStep6Optional (oProjectionLine *ap_Line, vEvent *ap_Event, int a_bed, int a_timeFrame, int a_respGate, int a_cardGate, int a_thread) |
A public function which does nothing but being virtual. More... | |
virtual int | DataStep7BackwardProjectCorrections (oProjectionLine *ap_Line, vEvent *ap_Event, int a_bed, int a_timeFrame, int a_respGate, int a_cardGate, int a_thread) |
A public function used to back-project the correction terms into the backward correction image. More... | |
virtual int | DataStep8ComputeFOM (oProjectionLine *ap_Line, vEvent *ap_Event, int a_timeFrame, int a_respGate, int a_cardGate, int a_thread) |
A public function used to update the computation of figures-of-merit in the data space. More... | |
virtual int | ImageUpdateStep () |
A public function used to perform the image update step of the optimizer. More... | |
void | SetVerbose (int a_verbose) |
Set the verbose level. More... | |
void | SetImageDimensionsAndQuantification (oImageDimensionsAndQuantification *ap_ImageDimensionsAndQuantification) |
Set the pointer to the image dimensions in use. More... | |
void | SetImageSpace (oImageSpace *ap_ImageSpace) |
Set the pointer to the image space in use. More... | |
void | SetNbTOFBins (int a_nbTOFBins) |
Set the number of TOF bins in use. More... | |
void | SetDataMode (int a_dataMode) |
Set the data mode in use. More... | |
void | SetDataType (int a_dataType) |
Set the data type in use. More... | |
void | SetDataSpec (int a_dataSpec) |
Set the data physical specificity in use. More... | |
void | SetAttenuationImage (FLTNB *ap_attenuationImage, int a_thread) |
Set the attenuation image corresponding to the current thread and current event. More... | |
void | SetFOMFlag (bool a_optimizerFOMFlag) |
Set the FOM flag specifying if figures-of-merit will be computed or not. More... | |
void | SetImageStatFlag (bool a_optimizerImageStatFlag) |
Set the image stat flag specifying if basic statistics about image udpate will be computed or not. More... | |
void | SetNumbersOfIterationsAndSubsets (int a_nbIterations, int *ap_nbSubsets) |
Set these numbers of iterations and subsets. More... | |
void | SetCurrentIteration (int a_currentIteration) |
Set the current iteration. More... | |
void | SetCurrentSubset (int a_currentSubset) |
Set the current subset. More... | |
int | GetNbBackwardImages () |
Get the number of backward images used by the specific optimizer. More... | |
FLTNB | GetInitialValue () |
Get the initial image value (for initialization) More... | |
void | SetOptimizerID (const string &a_optimizerID) |
Set the optimizer ID. More... | |
const string & | GetOptimizerID () |
int | GetRequiredPenaltyDerivativesOrder () |
Get the penalty derivative order needed for this algorithm. More... | |
bool | GetAcceptPenalty () |
Get the boolean saying if the optimizer accepts penalties. More... | |
void | SetPenalty (vPenalty *ap_penalty) |
Set the penalty of the optimizer. More... | |
bool | GetNeedGlobalSensitivity () |
Get the boolean saying if the sensitivity has to be computed globally for all data channels and not per subset. More... | |
Private Member Functions | |
int | PreImageUpdateSpecificStep () |
A private function used to compute the penalty term of the OneStepLate algorithm. More... | |
void | ShowHelpSpecific () |
A function used to show help about the child optimizer. More... | |
int | CheckSpecificParameters () |
A private function used to check the parameters settings specific to the child optimizer. More... | |
int | InitializeSpecific () |
This function is used to initialize specific stuff to the child optimizer. More... | |
int | SensitivitySpecificOperations (FLTNB a_data, FLTNB a_forwardModel, FLTNB *ap_weight, FLTNB a_multiplicativeCorrections, FLTNB a_additiveCorrections, FLTNB a_blankValue, FLTNB a_quantificationFactor, oProjectionLine *ap_Line) |
This function compute the weight associated to the provided event (for sensitivity computation) More... | |
int | DataSpaceSpecificOperations (FLTNB a_data, FLTNB a_forwardModel, FLTNB *ap_backwardValues, FLTNB a_multiplicativeCorrections, FLTNB a_additiveCorrections, FLTNB a_blankValue, FLTNB a_quantificationFactor, oProjectionLine *ap_Line) |
This function performs the data space operations specific to the optimizer (computes the values to be backprojected) More... | |
int | ImageSpaceSpecificOperations (FLTNB a_currentImageValue, FLTNB *ap_newImageValue, FLTNB a_sensitivity, FLTNB *ap_correctionValues, INTNB a_voxel, int a_tbf=-1, int a_rbf=-1, int a_cbf=-1) |
This function perform the image update step specific to the optimizer. More... | |
Private Attributes | |
FLTNB | m_dataSpaceDenominatorThreshold |
FLTNB | m_minimumImageUpdateFactor |
FLTNB | m_maximumImageUpdateFactor |
FLTNB **** | m4p_firstDerivativePenaltyImage |
bool | m_displayWarningFlag |
This class implements the One Step Late algorithm.
This class inherits from vOptimizer and implements the classical OneStepLate (for One Step Late) algorithm.
Definition at line 44 of file iOptimizerOneStepLate.hh.
iOptimizerOneStepLate::iOptimizerOneStepLate | ( | ) |
The constructor of iOptimizerOneStepLate.
This is the default and unique constructor. It does not take any parameter and its role is only to affect default values to each member of the class.
Definition at line 38 of file iOptimizerOneStepLate.cc.
iOptimizerOneStepLate::~iOptimizerOneStepLate | ( | ) |
The destructor of iOptimizerOneStepLate.
This is the default and unique destructor. It does not take any parameter and its role is only to free or delete all structures that were built by this class.
Definition at line 73 of file iOptimizerOneStepLate.cc.
|
privatevirtual |
A private function used to check the parameters settings specific to the child optimizer.
This function is used to check that all parameters specific to the optimizer are correctly set within allowed values. It is called by the CheckParameters() function of the mother class. It is the implementation of the pure virtual function inherited from the abstract mother class vOptimizer.
Implements vOptimizer.
Definition at line 210 of file iOptimizerOneStepLate.cc.
|
privatevirtual |
This function performs the data space operations specific to the optimizer (computes the values to be backprojected)
FLTNB | a_data |
FLTNB | a_forwardModel |
FLTNB* | ap_backwardValues |
FLTNB | a_multiplicativeCorrections |
FLTNB | a_additiveCorrections |
FLTNB | a_quantificationFactor |
oProjectionLine* | ap_Line |
It is the implementation of the pure virtual function from vOptimizer. The results to be backprojected is put at ap_backwardValues location.
Implements vOptimizer.
Definition at line 372 of file iOptimizerOneStepLate.cc.
|
privatevirtual |
This function perform the image update step specific to the optimizer.
FLTNB | a_currentImageValue |
FLTNB* | ap_newImageValue |
FLTNB | a_sensitivity |
FLTNB* | ap_correctionValues |
INTNB | a_voxel |
int | a_tbf |
int | a_rbf |
int | a_cbf |
It is the implementation of the pure virtual function from vOptimizer. The new image value is put at the ap_newImageValue location.
Implements vOptimizer.
Definition at line 415 of file iOptimizerOneStepLate.cc.
|
privatevirtual |
This function is used to initialize specific stuff to the child optimizer.
It is called by the public Initialize() function from the mother.
Implements vOptimizer.
Definition at line 245 of file iOptimizerOneStepLate.cc.
|
privatevirtual |
A private function used to compute the penalty term of the OneStepLate algorithm.
This function implements the virtual eponym function of vOptimizer. It computes the penalty term of the OneStepLate algorithm.
Reimplemented from vOptimizer.
Definition at line 291 of file iOptimizerOneStepLate.cc.
|
virtual |
A function used to read options from a configuration file.
const | string& a_configurationFile |
This function implements the reading of all options associated to the child optimizer, from a configuration file. It is the implementation of the pure virtual function inherited from the abstract class vOptimizer. It checks the reading status but not the options values that will be checked by the CheckSpecificParameters() function.
Implements vOptimizer.
Definition at line 145 of file iOptimizerOneStepLate.cc.
|
virtual |
A function used to read options from a list of options.
const | string& a_configurationFile |
This function implements the reading of all options associated to the child optimizer, from a list of options. It is the implementation of the pure virtual function inherited from the abstract class vOptimizer. It checks the reading status but not the options values that will be checked by the CheckSpecificParameters() function.
Implements vOptimizer.
Definition at line 185 of file iOptimizerOneStepLate.cc.
|
privatevirtual |
This function compute the weight associated to the provided event (for sensitivity computation)
FLTNB | a_data |
FLTNB | a_forwardModel |
FLTNB* | ap_weight |
FLTNB | a_multiplicativeCorrections |
FLTNB | a_additiveCorrections |
FLTNB | a_quantificationFactor |
oProjectionLine* | ap_Line |
It is the implementation of the pure virtual function from vOptimizer. The result is put at ap_weight location.
Implements vOptimizer.
Definition at line 358 of file iOptimizerOneStepLate.cc.
|
privatevirtual |
A function used to show help about the child optimizer.
This function must describe what the module does and how to use it. It describes in details the different parameters of the optimizer, and how to set them through the use of a configuration file or a list of options. It is the implementation of the pure virtual function inherited from the abstract class vOptimizer. It is called by the public ShowHelp() function.
Implements vOptimizer.
Definition at line 125 of file iOptimizerOneStepLate.cc.
|
private |
Image containing the penalty terms of the algorithm
Definition at line 198 of file iOptimizerOneStepLate.hh.
|
private |
Threshold applied to the denominator of the data space operation to avoid 0-divisions or too high ratios
Definition at line 195 of file iOptimizerOneStepLate.hh.
|
private |
Simple variable used to display the warning in ImageSpaceSpecificOperations about negative/null sensitivity+penalty term of OSL only once
Definition at line 199 of file iOptimizerOneStepLate.hh.
|
private |
Maximum allowed image update factor (null or negative values mean no restriction)
Definition at line 197 of file iOptimizerOneStepLate.hh.
|
private |
Minimum allowed image update factor, useful to avoid voxels trapped in 0 value (null or negative values mean no restriction)
Definition at line 196 of file iOptimizerOneStepLate.hh.