CASToR
1.1
Tomographic Reconstruction (PET/SPECT)
|
This class is designed to manage the image-based deformation part of the reconstruction. More...
#include <oDeformationManager.hh>
Public Member Functions | |
oDeformationManager () | |
Constructor of oDeformationManager. Simply set all data members to default values. More... | |
~oDeformationManager () | |
Destructor of oDeformationManager. Free memory from all allocated tabs. More... | |
int | CheckParameters () |
This function is used to check parameters after the latter have been all set using Set functions. More... | |
int | Initialize () |
Set the flags for the different motion types and instanciate/initialize deformation objects through the ParseOptionsAndInitializeDeformations() private function. More... | |
void | InstantiateImageForDeformation (oImageSpace *ap_Image) |
If deformation is enabled, ask the Image Space to Instantiate the temporary backward image for deformation If reconstruction is in histogram mode, the temporal sensitivity image is instanciated as well. More... | |
void | DeallocateImageForDeformation (oImageSpace *ap_Image) |
If deformation is enabled, ask the Image Space to free memory of the temporary backward image for deformation If reconstruction is in histogram mode, the temporal sensitivity image is deallocated as well. More... | |
void | InitImageForDeformation (oImageSpace *ap_Image) |
If deformation is enabled, ask the Image Space to initialize the temporary backward image for deformation If reconstruction is in histogram mode, the temporal sensitivity image is initialized as well. More... | |
void | SetVerbose (int a_verboseLevel) |
Set the verbose level. More... | |
void | SetDataMode (int a_dataMode) |
Set the mode of reconstruction. More... | |
void | SetImageDimensionsAndQuantification (oImageDimensionsAndQuantification *ap_ImageDimensionsAndQuantification) |
Set the image dimensions in use. More... | |
void | SetOptions (const string &a_options) |
Set the motion options contained in the provided string, and the related number of gates. More... | |
void | SetNbTransformations (int a_nbTransformations) |
Set the total number of transformations/deformations. More... | |
void | SetMotionType (int a_motionType) |
Set the nature of motion correction (Deformation type macro) More... | |
bool | UseDeformationResp () |
Indicate if the respiratory motion deformation is enabled. More... | |
bool | UseDeformationCard () |
Indicate if the cardiac motion deformation is enabled. More... | |
bool | UseDeformationInv () |
Indicate if the involuntary patient motion deformation is enabled. More... | |
int | GetNbSensImagesRespDeformation (int a_value) |
return the required number of respiratory images in the sensitivity image depending on the respiratory deformation model More... | |
int | GetNbSensImagesCardDeformation (int a_value) |
return the required number of cardiac images in the sensitivity image depending on the cardiac deformation model More... | |
int | ApplyDeformationForSensitivityGeneration (oImageSpace *ap_Image, int a_defDirection, int fr, int rg, int cg) |
Apply deformations during the list-mode sensitivity image generation. More... | |
int | ApplyDeformationsToBackwardImage (oImageSpace *ap_Image) |
Apply final backward deformations on the backward image. More... | |
int | PerformDeformation (oImageSpace *ap_Image) |
Apply deformations during reconstruction. More... | |
Private Member Functions | |
int | ParseOptionsAndInitializeDeformations () |
Parse respiratory/cardiac/involuntary patient motion options contained in the previously provided strings. This function is called inside the Initialize() function. More... | |
Private Attributes | |
oImageDimensionsAndQuantification * | mp_ID |
string | m_options |
vDeformation * | mp_Deformation |
bool | m_UseDeformationResp |
bool | m_UseDeformationCard |
bool | m_UseDeformationIPat |
int | m_curMotIdx |
int | m_nbTransformations |
int | m_verbose |
int | m_dataMode |
bool | m_checked |
bool | m_initialized |
This class is designed to manage the image-based deformation part of the reconstruction.
As each manager class, it is created in the main program, all parameters are then set, checked, and the manager is initialized.
The manager is then used by the algorithm itself, where the function PerformDeformation() is called each time the data belongs to a new "gate".
The deformation functions are not multithreaded, therefore the threads are synchronized (inside the main loop of the main algorithm) before performing any image transformation.
Definition at line 51 of file oDeformationManager.hh.
oDeformationManager::oDeformationManager | ( | ) |
Constructor of oDeformationManager. Simply set all data members to default values.
Definition at line 31 of file oDeformationManager.cc.
oDeformationManager::~oDeformationManager | ( | ) |
Destructor of oDeformationManager. Free memory from all allocated tabs.
Definition at line 66 of file oDeformationManager.cc.
int oDeformationManager::ApplyDeformationForSensitivityGeneration | ( | oImageSpace * | ap_Image, |
int | a_defDirection, | ||
int | fr, | ||
int | rg, | ||
int | cg | ||
) |
Apply deformations during the list-mode sensitivity image generation.
oImageSpace* | ap_Image : required to access oImageSpace image matrices |
int | a_defDirection : direction of the deformation (forward/backward) |
int | a_defType : Nature of the motion (Respiratory/Cardiac/Involuntary Patient) |
int | fr |
int | rg |
int | cg |
Perform deformation on the forward_image or the backward_image matrices corresponding to the current fr, rg, cg (if any), and depending on the defDirection.
Definition at line 398 of file oDeformationManager.cc.
int oDeformationManager::ApplyDeformationsToBackwardImage | ( | oImageSpace * | ap_Image | ) |
Apply final backward deformations on the backward image.
oImageSpace* | ap_Image : required to access oImageSpace image matrices |
Call the eponym function for the deformation object, as well as >ApplyDeformationsToHistoSensitivityImage() if data mode is histogram.
Then reinitialize the temporary backup deformation images (the backward image, and the sensitivity image if data mode is histogram)
Definition at line 532 of file oDeformationManager.cc.
int oDeformationManager::CheckParameters | ( | ) |
This function is used to check parameters after the latter have been all set using Set functions.
Definition at line 111 of file oDeformationManager.cc.
void oDeformationManager::DeallocateImageForDeformation | ( | oImageSpace * | ap_Image | ) |
If deformation is enabled, ask the Image Space to free memory of the temporary backward image for deformation
If reconstruction is in histogram mode, the temporal sensitivity image is deallocated as well.
oImageSpace* | ap_Image : required to call oImageSpace deallocation functions |
Definition at line 345 of file oDeformationManager.cc.
|
inline |
return the required number of cardiac images in the sensitivity image depending on the cardiac deformation model
a_value | : default number of cardiac images |
Definition at line 192 of file oDeformationManager.hh.
|
inline |
return the required number of respiratory images in the sensitivity image depending on the respiratory deformation model
a_value | : default number of cardiac images |
Definition at line 184 of file oDeformationManager.hh.
int oDeformationManager::Initialize | ( | ) |
Set the flags for the different motion types and instanciate/initialize deformation objects through the ParseOptionsAndInitializeDeformations() private function.
Definition at line 155 of file oDeformationManager.cc.
void oDeformationManager::InitImageForDeformation | ( | oImageSpace * | ap_Image | ) |
If deformation is enabled, ask the Image Space to initialize the temporary backward image for deformation
If reconstruction is in histogram mode, the temporal sensitivity image is initialized as well.
oImageSpace* | ap_Image : required to call oImageSpace initialization functions |
Definition at line 368 of file oDeformationManager.cc.
void oDeformationManager::InstantiateImageForDeformation | ( | oImageSpace * | ap_Image | ) |
If deformation is enabled, ask the Image Space to Instantiate the temporary backward image for deformation
If reconstruction is in histogram mode, the temporal sensitivity image is instanciated as well.
oImageSpace* | ap_Image : required to call oImageSpace instanciation functions |
Definition at line 322 of file oDeformationManager.cc.
|
private |
Parse respiratory/cardiac/involuntary patient motion options contained in the previously provided strings. This function is called inside the Initialize() function.
Manage the options reading and initialize specific vDeformation
Options are a string containing first the name of the deformation, then either a ':' and a configuration file specific to the deformation
Definition at line 205 of file oDeformationManager.cc.
int oDeformationManager::PerformDeformation | ( | oImageSpace * | ap_Image | ) |
Apply deformations during reconstruction.
oImageSpace* | ap_Image : required to access oImageSpace image matrices |
Call the eponym function for the deformation object, as well as PerformHistoSensitivityDeformation() if data mode is histogram.
Definition at line 460 of file oDeformationManager.cc.
|
inline |
Set the mode of reconstruction.
a_dataMode | : (histogram/list-mode) |
required to enable/disable sensitivity image deformation in histogram mode
Definition at line 124 of file oDeformationManager.hh.
|
inline |
Set the image dimensions in use.
ap_ImageDimensionsAndQuantification |
Definition at line 131 of file oDeformationManager.hh.
void oDeformationManager::SetMotionType | ( | int | a_motionType | ) |
Set the nature of motion correction (Deformation type macro)
a_motionType |
Definition at line 84 of file oDeformationManager.cc.
|
inline |
Set the total number of transformations/deformations.
a_nbTransformations |
Definition at line 147 of file oDeformationManager.hh.
|
inline |
Set the motion options contained in the provided string, and the related number of gates.
a_options | |
a_nbGates |
Definition at line 139 of file oDeformationManager.hh.
|
inline |
Set the verbose level.
a_verboseLevel |
Definition at line 116 of file oDeformationManager.hh.
|
inline |
Indicate if the cardiac motion deformation is enabled.
Definition at line 169 of file oDeformationManager.hh.
|
inline |
Indicate if the involuntary patient motion deformation is enabled.
Definition at line 176 of file oDeformationManager.hh.
|
inline |
Indicate if the respiratory motion deformation is enabled.
Definition at line 162 of file oDeformationManager.hh.
|
private |
Boolean indicating whether the parameters were checked or not
Definition at line 277 of file oDeformationManager.hh.
|
private |
Current gate for the motion
Definition at line 267 of file oDeformationManager.hh.
|
private |
Data mode (list-mode (=0), histogram (=1)). Recovered from the datafile
Definition at line 275 of file oDeformationManager.hh.
|
private |
Boolean indicating whether the manager was initialized or not
Definition at line 279 of file oDeformationManager.hh.
|
private |
Number of image-based transformations/deformations
Definition at line 270 of file oDeformationManager.hh.
|
private |
The string containing options for the motion correction
Definition at line 258 of file oDeformationManager.hh.
|
private |
Flag indicating that transformation for cardiac motion is enabled
Definition at line 263 of file oDeformationManager.hh.
|
private |
Flag indicating that transformation for involuntary patient motion is enabled
Definition at line 264 of file oDeformationManager.hh.
|
private |
Flag indicating that transformation for respiratory motion is enabled
Definition at line 262 of file oDeformationManager.hh.
|
private |
The verbose level
Definition at line 273 of file oDeformationManager.hh.
|
private |
Deformation object for image-based motion
Definition at line 261 of file oDeformationManager.hh.
|
private |
Pointer to the oImageDimensionsAndQuantification object in use
Definition at line 256 of file oDeformationManager.hh.