CASToR
2.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... | |
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 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 |
int16_t * | mp_curPatMotIdx |
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 73 of file oDeformationManager.hh.
oDeformationManager::oDeformationManager | ( | ) |
Constructor of oDeformationManager. Simply set all data members to default values.
Definition at line 42 of file oDeformationManager.cc.
oDeformationManager::~oDeformationManager | ( | ) |
Destructor of oDeformationManager. Free memory from all allocated tabs.
Definition at line 79 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 424 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 583 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 126 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 364 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 170 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 389 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 341 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 224 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 483 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 99 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 658 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 313 of file oDeformationManager.hh.
|
private |
Current gate for the motion
Definition at line 302 of file oDeformationManager.hh.
|
private |
Data mode (list-mode (=0), histogram (=1)). Recovered from the datafile
Definition at line 311 of file oDeformationManager.hh.
|
private |
Boolean indicating whether the manager was initialized or not
Definition at line 315 of file oDeformationManager.hh.
|
private |
Number of image-based transformations/deformations
Definition at line 306 of file oDeformationManager.hh.
|
private |
The string containing options for the motion correction
Definition at line 293 of file oDeformationManager.hh.
|
private |
Flag indicating that transformation for cardiac motion is enabled
Definition at line 298 of file oDeformationManager.hh.
|
private |
Flag indicating that transformation for involuntary patient motion is enabled
Definition at line 299 of file oDeformationManager.hh.
|
private |
Flag indicating that transformation for respiratory motion is enabled
Definition at line 297 of file oDeformationManager.hh.
|
private |
The verbose level
Definition at line 309 of file oDeformationManager.hh.
|
private |
Current index for the ip motion by frame
Definition at line 303 of file oDeformationManager.hh.
|
private |
Deformation object for image-based motion
Definition at line 296 of file oDeformationManager.hh.
|
private |
Pointer to the oImageDimensionsAndQuantification object in use
Definition at line 291 of file oDeformationManager.hh.