CASToR
3.0
Tomographic Reconstruction (PET/SPECT/CT)
|
This is the base class for reconstructions, containing a framework with iteration and data subset loops.
It contains all the managers and the images.
More...
#include <vAlgorithm.hh>
Public Member Functions | |
vAlgorithm () | |
vAlgorithm constructor. Initialize the member variables to their default values. More... | |
virtual | ~vAlgorithm () |
vAlgorithm destructor. More... | |
int | Run () |
Just call either the RunCPU or the RunGPU function as asked for. More... | |
int | RunCPU () |
Perform the iterative loop of the algorithm. Function designed to be executed on the CPU only. More... | |
void | SetSaveSensitivityHistoFlag (bool a_saveSensitivityHistoFlag) |
Set the flag that specifies if the sensitivity image in histogram mode has to be saved for each subset/iteration. More... | |
void | SetSaveSubsetImageFlag (bool a_saveImageAfterSubsets) |
Set the flag that specifies if the image has to be saved for each subset. More... | |
void | SetSaveDynamicBasisCoefficientImages (bool a_saveDynamicBasisCoefficients) |
Set the flag that specifies if the dynamic basis functions coefficients images have to be saved. More... | |
void | SetOptimizerManager (oOptimizerManager *ap_OptimizerManager) |
Set the Optimizer Manager Object. More... | |
void | SetImageDimensionsAndQuantification (oImageDimensionsAndQuantification *ap_ImageDimensionsAndQuantification) |
Set the Image Dimensions and Quantification Object. More... | |
void | SetImageSpace (oImageSpace *ap_ImageSpace) |
Set the Image Space Object. More... | |
void | SetProjectorManager (oProjectorManager *ap_ProjectorManager) |
Set the Projector Manager Object. More... | |
void | SetImageConvolverManager (oImageConvolverManager *ap_ImageConvolverManager) |
Set the Image Convolver Manager Object. More... | |
void | SetImageProcessingManager (oImageProcessingManager *ap_ImageProcessingManager) |
Set the Image Processing Manager Object. More... | |
void | SetDynamicModelManager (oDynamicModelManager *ap_DynamicModelManager) |
Set the Dynamic Model Manager Object. More... | |
void | SetDeformationManager (oDeformationManager *ap_DeformationManager) |
Set the Deformation Manager Object. More... | |
void | SetDataFile (vDataFile **a2p_DataFile) |
Set the list of DataFile. More... | |
void | SetGPUflag (bool a_flagGPU) |
Set the GPU flag. More... | |
void | SetVerbose (int a_verboseLevel) |
Set Verbosity. More... | |
void | SetNbBeds (int a_nbBeds) |
Set number of beds (bed positions) More... | |
void | SetPathInitImage (string a_pathToInitialImage) |
Set path to an initial image. More... | |
void | SetPathToAttenuationImage (string a_pathToAttenuationImage) |
This function is used to set the path to the attenuation image. More... | |
void | SetPathToSensitivityImage (string a_pathToSensitivityImage) |
Set path to the sensitivity image. More... | |
void | SetPathToMultiModalImage (vector< string > a_pathToMultiModalImage) |
Set path to multimodal images. More... | |
void | SetPathToMaskImage (string a_pathToMaskImage) |
Set path to a mask image. More... | |
int | SetNbIterationsAndSubsets (const string &a_nbIterationsSubsets) |
Set the number of iterations and subsets. More... | |
int | SetOutputIterations (const string &a_outputIterations) |
Set the selected output iterations. More... | |
virtual int | InitSpecificOptions (string a_specificOptions) |
virtual void | ShowHelpSpecific () |
Show help for the child algorithm. More... | |
Protected Member Functions | |
virtual int | StepBeforeIterationLoop () |
This function is called at the beginning of the RunCPU function. More... | |
virtual int | StepAfterIterationLoop () |
This function is called at the end of the RunCPU function. More... | |
virtual int | StepBeforeSubsetLoop (int a_iteration) |
This function is called before starting the data subset loop. More... | |
virtual int | StepAfterSubsetLoop (int a_iteration) |
This function is called after finishing the data subset loop. More... | |
virtual int | StepPreProcessInsideSubsetLoop (int a_iteration, int a_subset) |
This function is called right after starting the data subset loop. More... | |
virtual int | StepPostProcessInsideSubsetLoop (int a_iteration, int a_subset) |
virtual int | StepInnerLoopInsideSubsetLoop (int a_iteration, int a_subset, int a_bed)=0 |
This function is called inside the subset loop. It contains the core operations of the algorithm and must be implemented by child classes. More... | |
virtual int | StepImageOutput (int a_iteration, int a_subset=-1)=0 |
This function deals with everything about saving output images from the reconstruction. More... | |
Protected Attributes | |
int | m_nbIterations |
int * | mp_nbSubsets |
bool * | mp_outputIterations |
int | m_verbose |
bool | m_flagGPU |
oImageDimensionsAndQuantification * | mp_ID |
vDataFile ** | m2p_DataFile |
oProjectorManager * | mp_ProjectorManager |
oOptimizerManager * | mp_OptimizerManager |
oDeformationManager * | mp_DeformationManager |
oDynamicModelManager * | mp_DynamicModelManager |
oImageSpace * | mp_ImageSpace |
oImageConvolverManager * | mp_ImageConvolverManager |
oImageProcessingManager * | mp_ImageProcessingManager |
int | m_nbBeds |
string | m_pathToInitialImg |
string | m_pathToAtnImg |
string | m_pathToSensitivityImg |
vector< string > | m_pathToMultiModalImg |
string | m_pathToMaskImg |
bool | m_saveSensitivityHistoFlag |
bool | m_saveImageAfterSubsets |
bool | m_saveDynamicBasisCoefficients |
This is the base class for reconstructions, containing a framework with iteration and data subset loops.
It contains all the managers and the images.
Definition at line 51 of file vAlgorithm.hh.
vAlgorithm::vAlgorithm | ( | ) |
vAlgorithm constructor. Initialize the member variables to their default values.
Definition at line 39 of file vAlgorithm.cc.
|
virtual |
vAlgorithm destructor.
Definition at line 73 of file vAlgorithm.cc.
|
virtual |
a_specificOptions |
Reimplemented in iIterativeAlgorithm, and iRCPGSAlgorithm.
Definition at line 516 of file vAlgorithm.cc.
int vAlgorithm::Run | ( | ) |
Just call either the RunCPU or the RunGPU function as asked for.
Definition at line 233 of file vAlgorithm.cc.
int vAlgorithm::RunCPU | ( | ) |
Perform the iterative loop of the algorithm. Function designed to be executed on the CPU only.
Loops over the iterations, data subsets, bed positions
StepBeforeIterationLoop()
/ Loop on iterations
| StepBeforeSubsetLoop(iteration)
| / Loop on data subsets
| | StepPreProcessInsideSubsetLoop(iteration,subset)
| | / Loop on bed positions
| | | StepInnerLoopInsideSubsetLoop(iteration,subset,bed)
| | StepPostProcessInsideSubsetLoop(iteration,subset)
| StepAfterSubsetLoop(iteration)
StepAfterIterationLoop()
Definition at line 252 of file vAlgorithm.cc.
|
inline |
Set the list of DataFile.
a2p_DataFile |
Definition at line 190 of file vAlgorithm.hh.
|
inline |
Set the Deformation Manager Object.
ap_DeformationManager |
Definition at line 183 of file vAlgorithm.hh.
|
inline |
Set the Dynamic Model Manager Object.
ap_DynamicModelManager |
Definition at line 176 of file vAlgorithm.hh.
|
inline |
Set the GPU flag.
a_flagGPU |
Definition at line 197 of file vAlgorithm.hh.
|
inline |
Set the Image Convolver Manager Object.
ap_ImageConvolverManager |
Definition at line 162 of file vAlgorithm.hh.
|
inline |
Set the Image Dimensions and Quantification Object.
ap_ImageDimensionsAndQuantification |
Definition at line 141 of file vAlgorithm.hh.
|
inline |
Set the Image Processing Manager Object.
ap_ImageProcessingManager |
Definition at line 169 of file vAlgorithm.hh.
|
inline |
Set the Image Space Object.
ap_ImageSpace |
Definition at line 148 of file vAlgorithm.hh.
|
inline |
Set number of beds (bed positions)
a_nbBeds |
Definition at line 211 of file vAlgorithm.hh.
int vAlgorithm::SetNbIterationsAndSubsets | ( | const string & | a_nbIterationsSubsets | ) |
Set the number of iterations and subsets.
a_nbIterationsSubsets |
The provided string is a list of iteration:subset pairs separated by commas.
Definition at line 85 of file vAlgorithm.cc.
|
inline |
Set the Optimizer Manager Object.
ap_OptimizerManager |
Definition at line 134 of file vAlgorithm.hh.
int vAlgorithm::SetOutputIterations | ( | const string & | a_outputIterations | ) |
Set the selected output iterations.
a_outputIterations |
The provided string is a list of couple a:b separated by commas.
It means that we save one iteration over a until b is reached.
"b" must be incrementing for each successive couples. If the list is empty, we save all iterations by default.
If the list is equal to "-1", then we save only the last iteration.
Definition at line 144 of file vAlgorithm.cc.
|
inline |
Set path to an initial image.
a_pathToInitialImage |
Definition at line 218 of file vAlgorithm.hh.
|
inline |
This function is used to set the path to the attenuation image.
string | a_pathToAttenuationImage |
Definition at line 225 of file vAlgorithm.hh.
|
inline |
Set path to a mask image.
a_pathToMaskImage |
Definition at line 246 of file vAlgorithm.hh.
|
inline |
Set path to multimodal images.
a_pathToMultiModalImage |
Definition at line 239 of file vAlgorithm.hh.
|
inline |
Set path to the sensitivity image.
a_pathToSensitivityImage |
Definition at line 232 of file vAlgorithm.hh.
|
inline |
Set the Projector Manager Object.
ap_ProjectorManager |
Definition at line 155 of file vAlgorithm.hh.
|
inline |
Set the flag that specifies if the dynamic basis functions coefficients images have to be saved.
bool | a_saveDynamicBasisCoefficients |
Definition at line 127 of file vAlgorithm.hh.
|
inline |
Set the flag that specifies if the sensitivity image in histogram mode has to be saved for each subset/iteration.
bool | a_saveSensitivityHistoFlag |
Definition at line 113 of file vAlgorithm.hh.
|
inline |
Set the flag that specifies if the image has to be saved for each subset.
bool | a_saveImageAfterSubsets |
Definition at line 120 of file vAlgorithm.hh.
|
inline |
Set Verbosity.
a_verboseLevel |
Definition at line 204 of file vAlgorithm.hh.
|
inlinevirtual |
Show help for the child algorithm.
Reimplemented in iRCPGSAlgorithm.
Definition at line 279 of file vAlgorithm.hh.
|
protectedvirtual |
This function is called at the end of the RunCPU function.
Reimplemented in iIterativeAlgorithm, and iRCPGSAlgorithm.
Definition at line 483 of file vAlgorithm.cc.
|
protectedvirtual |
This function is called after finishing the data subset loop.
a_iteration | : iteration index |
Reimplemented in iIterativeAlgorithm, and iRCPGSAlgorithm.
Definition at line 472 of file vAlgorithm.cc.
|
protectedvirtual |
This function is called at the beginning of the RunCPU function.
Reimplemented in iIterativeAlgorithm, and iRCPGSAlgorithm.
Definition at line 388 of file vAlgorithm.cc.
|
protectedvirtual |
This function is called before starting the data subset loop.
a_iteration | : iteration index |
Reimplemented in iIterativeAlgorithm, and iRCPGSAlgorithm.
Definition at line 439 of file vAlgorithm.cc.
|
protectedpure virtual |
This function deals with everything about saving output images from the reconstruction.
Implemented in iIterativeAlgorithm, and iRCPGSAlgorithm.
Definition at line 505 of file vAlgorithm.cc.
|
protectedpure virtual |
This function is called inside the subset loop.
It contains the core operations of the algorithm and must be implemented by child classes.
a_iteration | : iteration index |
a_subset | : subset index |
a_bed | : bed position |
Implemented in iIterativeAlgorithm, and iRCPGSAlgorithm.
|
protectedvirtual |
Reimplemented in iIterativeAlgorithm, and iRCPGSAlgorithm.
Definition at line 461 of file vAlgorithm.cc.
|
protectedvirtual |
This function is called right after starting the data subset loop.
This function is called right after starting the subset loop.
.
a_iteration | : iteration index |
a_subset | : subset index |
Reimplemented in iIterativeAlgorithm, and iRCPGSAlgorithm.
Definition at line 450 of file vAlgorithm.cc.
|
protected |
Pointer to the array of vDataFile object
Definition at line 353 of file vAlgorithm.hh.
|
protected |
Do we use GPU or not (default=false)
Definition at line 351 of file vAlgorithm.hh.
|
protected |
number of bed FOVs (1 datafile by bed) (default=-1)
Definition at line 361 of file vAlgorithm.hh.
|
protected |
Number of iterations (default=1)
Definition at line 347 of file vAlgorithm.hh.
|
protected |
String of the path to the attenuation images
Definition at line 363 of file vAlgorithm.hh.
|
protected |
String containing the path to an initialization image
Definition at line 362 of file vAlgorithm.hh.
|
protected |
String containing the path to a mask image
Definition at line 366 of file vAlgorithm.hh.
|
protected |
String vector containing paths to multimodal images
Definition at line 365 of file vAlgorithm.hh.
|
protected |
String containing the path to a sensitivity image
Definition at line 364 of file vAlgorithm.hh.
|
protected |
Flag specifying that the dynamic basis coefficient images will be saved
Definition at line 369 of file vAlgorithm.hh.
|
protected |
Flag specifying that the image has to be saved after each subset
Definition at line 368 of file vAlgorithm.hh.
|
protected |
Flag specifying that the sensitivity image has to be saved for each subset/iteration in histogram mode
Definition at line 367 of file vAlgorithm.hh.
|
protected |
Verbosity (default=-1)
Definition at line 350 of file vAlgorithm.hh.
|
protected |
Pointer to the Deformation Manager object
Definition at line 356 of file vAlgorithm.hh.
|
protected |
Pointer to the Dynamic Model Manager object
Definition at line 357 of file vAlgorithm.hh.
|
protected |
Pointer to the oImageDimensionsAndQuantification object
Definition at line 352 of file vAlgorithm.hh.
|
protected |
Pointer to the Image Convolver Manager object
Definition at line 359 of file vAlgorithm.hh.
|
protected |
Pointer to the Image Processing Manager object
Definition at line 360 of file vAlgorithm.hh.
|
protected |
Pointer to the Image Space object
Definition at line 358 of file vAlgorithm.hh.
|
protected |
Number of subsets (default=1)
Definition at line 348 of file vAlgorithm.hh.
|
protected |
Pointer to the Optimizer Manager object
Definition at line 355 of file vAlgorithm.hh.
|
protected |
A boolean for each iteration saying if we save it or not
Definition at line 349 of file vAlgorithm.hh.
|
protected |
Pointer to the Projector Manager object
Definition at line 354 of file vAlgorithm.hh.