CASToR  1.0
Tomographic Reconstruction (PET/SPECT)
Public Member Functions | Private Member Functions | Private Attributes
oDeformationManager Class Reference

This class is designed to manage the image-based deformation part of the reconstruction. More...

#include <oDeformationManager.hh>

Collaboration diagram for oDeformationManager:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 oDeformationManager ()
 Constructor of oDeformationManager. Simply set all data members to default values.
 ~oDeformationManager ()
 Destructor of oDeformationManager. Free memory from all allocated tabs.
int CheckParameters ()
 This function is used to check parameters after the latter have been all set using Set functions.
int Initialize ()
 Set the flags for the different motion types and instanciate/initialize deformation objects through the ParseOptionsAndInitializeDeformations() private function.
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.
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.
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.
void SetVerbose (int a_verboseLevel)
 Set the verbose level.
void SetDataMode (int a_dataMode)
 Set the mode of reconstruction.
void SetImageDimensionsAndQuantification (oImageDimensionsAndQuantification *ap_ImageDimensionsAndQuantification)
 Set the image dimensions in use.
void SetOptionsResp (const string &a_optionsResp, int a_nbGates)
 Set the respiratory motion options contained in the provided string, and the related number of gates.
void SetOptionsCard (const string &a_optionsCard, int a_nbGates)
 Set the cardiac motion options contained in the provided string, and the related number of gates.
void SetOptionsInv (const string &a_optionsInv)
 Set the involuntary patient motion options contained in the provided string.
bool UseDeformationResp ()
 Indicate if the respiratory motion deformation is enabled.
bool UseDeformationCard ()
 Indicate if the cardiac motion deformation is enabled.
bool UseDeformationInv ()
 Indicate if the involuntary patient motion deformation is enabled.
int GetNbSensImagesRespDeformation (int a_value)
 return the required number of respiratory images in the sensitivity image depending on the respiratory deformation model
int GetNbSensImagesCardDeformation (int a_value)
 return the required number of cardiac images in the sensitivity image depending on the cardiac deformation model
int ApplyDeformationForSensitivityGeneration (oImageSpace *ap_Image, int a_defDirection, int a_defType, int fr, int rg, int cg)
 Apply deformations during the list-mode sensitivity image generation.
int ApplyDeformationsToForwardImage (oImageSpace *ap_Image)
 Apply initial deformations on the forwardImage before loop on events.
int ApplyDeformationsToBackwardImage (oImageSpace *ap_Image)
 Apply final backward deformations on the backward image.
int PerformDeformation (oImageSpace *ap_Image)
 Apply deformations during reconstruction.

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.

Private Attributes

oImageDimensionsAndQuantificationmp_ID
string m_optionsResp
string m_optionsCard
string m_optionsInv
vDeformationmp_DeformationResp
vDeformationmp_DeformationCard
vDeformationmp_DeformationInv
bool m_UseDeformationResp
bool m_UseDeformationCard
bool m_UseDeformationInv
int m_currentRespGate
int m_currentCardGate
int m_currentPMotionIndex
int m_nbRespGates
int m_nbCardGates
int m_verbose
int m_dataMode
bool m_checked
bool m_initialized

Detailed Description

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 47 of file oDeformationManager.hh.


Constructor & Destructor Documentation

Constructor of oDeformationManager. Simply set all data members to default values.

Definition at line 31 of file oDeformationManager.cc.

Destructor of oDeformationManager. Free memory from all allocated tabs.

Definition at line 71 of file oDeformationManager.cc.


Member Function Documentation

int oDeformationManager::ApplyDeformationForSensitivityGeneration ( oImageSpace ap_Image,
int  a_defDirection,
int  a_defType,
int  fr,
int  rg,
int  cg 
)

Apply deformations during the list-mode sensitivity image generation.

Parameters:
oImageSpace*ap_Image : required to access oImageSpace image matrices
inta_defDirection : direction of the deformation (forward/backward)
inta_defType : Nature of the motion (Respiratory/Cardiac/Involuntary Patient)
intfr
intrg
intcg

Perform deformation of type 'a_defType' on the forward_image or the backward_image matrices corresponding to the current fr, rg, cg (if any), and depending on the defDirection.

Returns:
0 if success, positive value otherwise

Definition at line 561 of file oDeformationManager.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

Apply final backward deformations on the backward image.

Parameters:
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)

Returns:
0 if success, positive value otherwise

Definition at line 802 of file oDeformationManager.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

Apply initial deformations on the forwardImage before loop on events.

Parameters:
oImageSpace*ap_Image : required to access oImageSpace image matrices
Returns:
0 if success, positive value otherwise

Definition at line 633 of file oDeformationManager.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

This function is used to check parameters after the latter have been all set using Set functions.

Returns:
0 if success, positive value otherwise.

Definition at line 158 of file oDeformationManager.cc.

Here is the caller graph for this function:

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.

Parameters:
oImageSpace*ap_Image : required to call oImageSpace deallocation functions

Definition at line 115 of file oDeformationManager.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

return the required number of cardiac images in the sensitivity image depending on the cardiac deformation model

Parameters:
a_value: default number of cardiac images
Returns:
a number of images

Definition at line 187 of file oDeformationManager.hh.

Here is the call graph for this function:

Here is the caller graph for this function:

return the required number of respiratory images in the sensitivity image depending on the respiratory deformation model

Parameters:
a_value: default number of cardiac images
Returns:
a number of images

Definition at line 179 of file oDeformationManager.hh.

Here is the call graph for this function:

Here is the caller graph for this function:

Set the flags for the different motion types and instanciate/initialize deformation objects through the ParseOptionsAndInitializeDeformations() private function.

Returns:
0 if success, positive value otherwise.

Definition at line 207 of file oDeformationManager.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

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.

Parameters:
oImageSpace*ap_Image : required to call oImageSpace initialization functions

Definition at line 138 of file oDeformationManager.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

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.

Parameters:
oImageSpace*ap_Image : required to call oImageSpace instanciation functions

Definition at line 92 of file oDeformationManager.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

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

  • or - as many ',' as needed parameters for this deformation.
    Specific pure virtual functions of the vDeformation are used to read parameters and initialize them.
    Returns:
    0 if success, positive value otherwise

Definition at line 269 of file oDeformationManager.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

Apply deformations during reconstruction.

Parameters:
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.

Returns:
0 if success, positive value otherwise

Definition at line 703 of file oDeformationManager.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

oDeformationManager::SetDataMode ( int  a_dataMode) [inline]

Set the mode of reconstruction.

Parameters:
a_dataMode: (histogram/list-mode)

required to enable/disable sensitivity image deformation in histogram mode

Definition at line 120 of file oDeformationManager.hh.

Here is the caller graph for this function:

Set the image dimensions in use.

Parameters:
ap_ImageDimensionsAndQuantification

Definition at line 127 of file oDeformationManager.hh.

Here is the caller graph for this function:

oDeformationManager::SetOptionsCard ( const string &  a_optionsCard,
int  a_nbGates 
) [inline]

Set the cardiac motion options contained in the provided string, and the related number of gates.

Parameters:
a_optionsCard
a_nbGates

Definition at line 143 of file oDeformationManager.hh.

Here is the caller graph for this function:

oDeformationManager::SetOptionsInv ( const string &  a_optionsInv) [inline]

Set the involuntary patient motion options contained in the provided string.

Parameters:
a_optionsInv

Definition at line 150 of file oDeformationManager.hh.

Here is the caller graph for this function:

oDeformationManager::SetOptionsResp ( const string &  a_optionsResp,
int  a_nbGates 
) [inline]

Set the respiratory motion options contained in the provided string, and the related number of gates.

Parameters:
a_optionsResp
a_nbGates

Definition at line 135 of file oDeformationManager.hh.

Here is the caller graph for this function:

oDeformationManager::SetVerbose ( int  a_verboseLevel) [inline]

Set the verbose level.

Parameters:
a_verboseLevel

Definition at line 112 of file oDeformationManager.hh.

Here is the caller graph for this function:

Indicate if the cardiac motion deformation is enabled.

Returns:
true if enabled, false otherwise

Definition at line 164 of file oDeformationManager.hh.

Here is the caller graph for this function:

Indicate if the involuntary patient motion deformation is enabled.

Returns:
true if enabled, false otherwise

Definition at line 171 of file oDeformationManager.hh.

Indicate if the respiratory motion deformation is enabled.

Returns:
true if enabled, false otherwise

Definition at line 157 of file oDeformationManager.hh.

Here is the caller graph for this function:


Member Data Documentation

Boolean indicating whether the parameters were checked or not

Definition at line 283 of file oDeformationManager.hh.

Current gate for the cardiac motion

Definition at line 273 of file oDeformationManager.hh.

Current gate for the involuntary patient motion

Definition at line 274 of file oDeformationManager.hh.

Current gate for the respiratory motion

Definition at line 272 of file oDeformationManager.hh.

Data mode (list-mode (=0), histogram (=1)). Recovered from the datafile

Definition at line 281 of file oDeformationManager.hh.

Boolean indicating whether the manager was initialized or not

Definition at line 285 of file oDeformationManager.hh.

Number of cardiac gates

Definition at line 277 of file oDeformationManager.hh.

Number of respiratory gates

Definition at line 276 of file oDeformationManager.hh.

The string containing options for the cardiac motion correction

Definition at line 262 of file oDeformationManager.hh.

The string containing options for the involuntary patient motion correction

Definition at line 263 of file oDeformationManager.hh.

The string containing options for the respiratory motion correction

Definition at line 261 of file oDeformationManager.hh.

Flag indicating that transformation for cardiac motion is enabled

Definition at line 269 of file oDeformationManager.hh.

Flag indicating that transformation for involuntary patient motion is enabled

Definition at line 270 of file oDeformationManager.hh.

Flag indicating that transformation for respiratory motion is enabled

Definition at line 268 of file oDeformationManager.hh.

The verbose level

Definition at line 279 of file oDeformationManager.hh.

Deformation object for cardiac motion

Definition at line 266 of file oDeformationManager.hh.

Deformation object for involuntary patient motion

Definition at line 267 of file oDeformationManager.hh.

Deformation object for respiratory motion

Definition at line 265 of file oDeformationManager.hh.

Pointer to the oImageDimensionsAndQuantification object in use

Definition at line 259 of file oDeformationManager.hh.


The documentation for this class was generated from the following files:
 All Classes Files Functions Variables Typedefs Defines