![]() |
CASToR
3.0
Tomographic Reconstruction (PET/SPECT/CT)
|
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... | |
int | 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 idx, 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... | |
int | TestDeformationOnImage (FLTNB *ap_inputImage, FLTNB *ap_outputImage, int a_direction, int a_defIdx) |
Apply deformation specified by arguments on provided input image, for testing purposes. 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 72 of file oDeformationManager.hh.
oDeformationManager::oDeformationManager | ( | ) |
Constructor of oDeformationManager. Simply set all data members to default values.
Definition at line 41 of file oDeformationManager.cc.
oDeformationManager::~oDeformationManager | ( | ) |
Destructor of oDeformationManager. Free memory from all allocated tabs.
Definition at line 81 of file oDeformationManager.cc.
int oDeformationManager::ApplyDeformationForSensitivityGeneration | ( | oImageSpace * | ap_Image, |
int | a_defDirection, | ||
int | idx, | ||
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 | idx |
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 454 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 594 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 130 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 370 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 216 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 206 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 174 of file oDeformationManager.cc.
int 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 392 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 347 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 230 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 511 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 146 of file oDeformationManager.hh.
|
inline |
Set the image dimensions in use.
ap_ImageDimensionsAndQuantification |
Definition at line 153 of file oDeformationManager.hh.
void oDeformationManager::SetMotionType | ( | int | a_motionType | ) |
Set the nature of motion correction (Deformation type macro)
a_motionType |
Definition at line 103 of file oDeformationManager.cc.
|
inline |
Set the total number of transformations/deformations.
a_nbTransformations |
Definition at line 169 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 161 of file oDeformationManager.hh.
|
inline |
Set the verbose level.
a_verboseLevel |
Definition at line 138 of file oDeformationManager.hh.
int oDeformationManager::TestDeformationOnImage | ( | FLTNB * | ap_inputImage, |
FLTNB * | ap_outputImage, | ||
int | a_direction, | ||
int | a_defIdx | ||
) |
Apply deformation specified by arguments on provided input image, for testing purposes.
ap_inputImage | : input image to deform |
ap_outputImage | : image in which the output of the deformation should be recovered |
a_direction | : a direction for the deformation to perform (forward or backward) |
a_defIdx | : index of the deformation |
Definition at line 660 of file oDeformationManager.cc.
|
inline |
Indicate if the cardiac motion deformation is enabled.
Definition at line 191 of file oDeformationManager.hh.
|
inline |
Indicate if the involuntary patient motion deformation is enabled.
Definition at line 198 of file oDeformationManager.hh.
|
inline |
Indicate if the respiratory motion deformation is enabled.
Definition at line 184 of file oDeformationManager.hh.
|
private |
Boolean indicating whether the parameters were checked or not
Definition at line 340 of file oDeformationManager.hh.
|
private |
Current gate for the motion
Definition at line 330 of file oDeformationManager.hh.
|
private |
Data mode (list-mode (=0), histogram (=1)). Recovered from the datafile
Definition at line 338 of file oDeformationManager.hh.
|
private |
Boolean indicating whether the manager was initialized or not
Definition at line 342 of file oDeformationManager.hh.
|
private |
Number of image-based transformations/deformations
Definition at line 333 of file oDeformationManager.hh.
|
private |
The string containing options for the motion correction
Definition at line 321 of file oDeformationManager.hh.
|
private |
Flag indicating that transformation for cardiac motion is enabled
Definition at line 326 of file oDeformationManager.hh.
|
private |
Flag indicating that transformation for involuntary patient motion is enabled
Definition at line 327 of file oDeformationManager.hh.
|
private |
Flag indicating that transformation for respiratory motion is enabled
Definition at line 325 of file oDeformationManager.hh.
|
private |
The verbose level
Definition at line 336 of file oDeformationManager.hh.
|
private |
Deformation object for image-based motion
Definition at line 324 of file oDeformationManager.hh.
|
private |
Pointer to the oImageDimensionsAndQuantification object in use
Definition at line 319 of file oDeformationManager.hh.