CASToR  2.0
Tomographic Reconstruction (PET/SPECT/CT)
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
oImageConvolverManager Class Reference

This class is designed to manage the different image convolvers and to apply them. More...

#include <oImageConvolverManager.hh>

Collaboration diagram for oImageConvolverManager:
Collaboration graph

Public Member Functions

 oImageConvolverManager ()
 The constructor of oImageConvolverManager. More...
 
 ~oImageConvolverManager ()
 The destructor of oImageConvolverManager. More...
 
int CheckParameters ()
 A function used to check the parameters settings. More...
 
int Initialize ()
 A function used to initialize the manager and all image convolvers it manages. More...
 
int ConvolveForward (oImageSpace *ap_ImageSpace)
 A function used to apply convolvers onto the forward image of the oImageSpace. More...
 
int ConvolveBackward (oImageSpace *ap_ImageSpace)
 A function used to apply convolvers onto the backward images of the oImageSpace. More...
 
int ConvolveSensitivity (oImageSpace *ap_ImageSpace)
 A function used to apply convolvers onto the sensitivity image of the oImageSpace. More...
 
int ConvolveIntra (oImageSpace *ap_ImageSpace)
 A function used to apply convolvers onto the current image of the oImageSpace. More...
 
int ConvolvePost (oImageSpace *ap_ImageSpace)
 A function used to apply convolvers onto the output image of the oImageSpace. More...
 
void SetVerbose (int a_verboseLevel)
 Set the member m_verboseLevel to the provided value. More...
 
void SetImageDimensionsAndQuantification (oImageDimensionsAndQuantification *ap_ImageDimensionsAndQuantification)
 Set the member mp_ImageDimensionsAndQuantification to the provided value. More...
 
void SetOptions (vector< string > a_options)
 Set the member m_options to the provided value. More...
 

Static Public Member Functions

static void ShowCommonHelp ()
 This function does not take any parameter and is used to display some help about the syntax of the options describing the image convolvers that should be used. It is static so that it can be called without any object initialization. More...
 

Private Member Functions

int ParseOptionsAndInitializeImageConvolvers ()
 A function used to parse options and initialize image convolvers. More...
 

Private Attributes

oImageDimensionsAndQuantificationmp_ImageDimensionsAndQuantification
 
vector< string > m_options
 
int m_nbImageConvolvers
 
vImageConvolver ** m2p_ImageConvolvers
 
bool * mp_applyForward
 
bool * mp_applyBackward
 
bool * mp_applyIntra
 
bool * mp_applyPost
 
bool m_checked
 
bool m_initialized
 
int m_verbose
 

Detailed Description

This class is designed to manage the different image convolvers and to apply them.

This manager class is supposed to be created and initialized in the main program. To do so, the following steps must be used:
(i) The empty constructor is called which affect all members with default values.
(ii) All parameters are set through the use of SetXXX() functions.
(iii) The CheckParameters() function is called to check that everything mandatory has been set.
(iv) The Initialize() function is called to initialize everything.
(v) Now the action functions of the manager can be called to apply the different image convolvers.
In a few words, based on supplied options, the manager will create children of the abstract vImageConvolver class which are specific image convolver modules. As an example, see the iImageConvolverTemplate child class that illustrates how a specific image convolver module should be implemented.

Definition at line 54 of file oImageConvolverManager.hh.

Constructor & Destructor Documentation

oImageConvolverManager::oImageConvolverManager ( )

The constructor of oImageConvolverManager.

This is the default and unique constructor. It does not take any parameter and its role is only to affect default values to each member of the class.

Definition at line 39 of file oImageConvolverManager.cc.

oImageConvolverManager::~oImageConvolverManager ( )

The destructor of oImageConvolverManager.

This is the default and unique destructor. It does not take any parameter and its role is only to free or delete all structures that were build by this class.

Definition at line 64 of file oImageConvolverManager.cc.

Member Function Documentation

int oImageConvolverManager::CheckParameters ( )

A function used to check the parameters settings.

This function does not take any parameter and is used to check that all mandatory members were correctly parameterized.

Returns
An integer reflecting the check status; 0 if no problem, another value otherwise.

Definition at line 79 of file oImageConvolverManager.cc.

Here is the caller graph for this function:

int oImageConvolverManager::ConvolveBackward ( oImageSpace ap_ImageSpace)

A function used to apply convolvers onto the backward images of the oImageSpace.

Parameters
oImageSpace*ap_ImageSpace

Based on the different mp_applyBackward of all managed convolvers, it will apply them or not onto the backward images of the provided oImageSpace. The convolvers are applied on all dynamic dimensions. This function is typically used when image-based PSF modeling is part of the iterative reconstruction process, so that the convolution is applied onto the correction images after the backward projection. Note that in the case of histogram-based reconstruction, the convolution will also be applied to the sensitivity image that is computed in synchronization with the backward images containing the correction terms.

Returns
An integer reflecting the convolution status; 0 if no problem, another value otherwise.

Definition at line 402 of file oImageConvolverManager.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

int oImageConvolverManager::ConvolveForward ( oImageSpace ap_ImageSpace)

A function used to apply convolvers onto the forward image of the oImageSpace.

Parameters
oImageSpace*ap_ImageSpace

Based on the different mp_applyForward of all managed convolvers, it will apply them or not onto the forward image of the provided oImageSpace. The convolvers are applied on all dynamic dimensions. This function is typically used when image-based PSF modeling is part of the iterative reconstruction process, so that the convolution is applied onto the image to be forward projected.

Returns
An integer reflecting the convolution status; 0 if no problem, another value otherwise.

Definition at line 355 of file oImageConvolverManager.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

int oImageConvolverManager::ConvolveIntra ( oImageSpace ap_ImageSpace)

A function used to apply convolvers onto the current image of the oImageSpace.

Parameters
oImageSpace*ap_ImageSpace

Based on the different mp_applyIntra of all managed convolvers, it will apply them or not onto the current estimated image of the provided oImageSpace. The convolvers are applied on all dynamic dimensions. This function can be used when one wants to apply convolution onto the current estimated image right after it has been updated within the iterative process. The convolved image is thus put back as the current estimate for the next update.

Returns
An integer reflecting the convolution status; 0 if no problem, another value otherwise.

Definition at line 481 of file oImageConvolverManager.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

int oImageConvolverManager::ConvolvePost ( oImageSpace ap_ImageSpace)

A function used to apply convolvers onto the output image of the oImageSpace.

Parameters
oImageSpace*ap_ImageSpace

Based on the different mp_applyPost of all managed convolvers, it will apply them or not onto the output image of the provided oImageSpace. The convolvers are applied on all dynamic dimensions. This function can be used when one wants to apply convolution onto the image as a post-processing step, right before being saved. The convolved image is only used to be saved and is not put back into the iterative process.

Returns
An integer reflecting the convolution status; 0 if no problem, another value otherwise.

Definition at line 576 of file oImageConvolverManager.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

int oImageConvolverManager::ConvolveSensitivity ( oImageSpace ap_ImageSpace)

A function used to apply convolvers onto the sensitivity image of the oImageSpace.

Parameters
oImageSpace*ap_ImageSpace

Based on the different mp_applyBackward of all managed convolvers, it will apply them or not onto the sensitivity image of the provided oImageSpace. The convolvers are applied on all dynamic dimensions. This function is typically used when image-based PSF modeling is part of the iterative listmode-based reconstruction process so that the convolution is applied onto the first-computed sensitivity image.

Returns
An integer reflecting the convolution status; 0 if no problem, another value otherwise.

Definition at line 528 of file oImageConvolverManager.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

int oImageConvolverManager::Initialize ( )

A function used to initialize the manager and all image convolvers it manages.

This function does not take any parameter and is used to initialize everything that should be initialized. In a few words, it parses the options, then creates and initializes all image convolvers based on the provided options.

Returns
An integer reflecting the initialization status; 0 if no problem, another value otherwise.

Definition at line 140 of file oImageConvolverManager.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

int oImageConvolverManager::ParseOptionsAndInitializeImageConvolvers ( )
private

A function used to parse options and initialize image convolvers.

This function first parses the options contained in the member m_options. Each string of the vector describes an image convolver to be used. Based on a specific syntax, the options are parsed to get the name of the convolver module, its associated parameters and the steps of application. Based on this, the image convolvers are initialized. This function is private because it is called by the Initialize() function.

Returns
An integer reflecting the parsing and initialization status; 0 if no problem, another value otherwise.

Definition at line 173 of file oImageConvolverManager.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

public inline void oImageConvolverManager::SetImageDimensionsAndQuantification ( oImageDimensionsAndQuantification ap_ImageDimensionsAndQuantification)
inline

Set the member mp_ImageDimensionsAndQuantification to the provided value.

Parameters
oImageDimensionsAndQuantification*ap_ImageDimensionsAndQuantification

Definition at line 195 of file oImageConvolverManager.hh.

Here is the caller graph for this function:

public inline void oImageConvolverManager::SetOptions ( vector< string >  a_options)
inline

Set the member m_options to the provided value.

Parameters
vector<string>a_options

Definition at line 202 of file oImageConvolverManager.hh.

Here is the caller graph for this function:

public inline void oImageConvolverManager::SetVerbose ( int  a_verboseLevel)
inline

Set the member m_verboseLevel to the provided value.

Parameters
inta_verboseLevel

Definition at line 188 of file oImageConvolverManager.hh.

Here is the caller graph for this function:

void oImageConvolverManager::ShowCommonHelp ( )
static

This function does not take any parameter and is used to display some help about the syntax of the options describing the image convolvers that should be used. It is static so that it can be called without any object initialization.

Definition at line 104 of file oImageConvolverManager.cc.

Here is the caller graph for this function:

Member Data Documentation

vImageConvolver** oImageConvolverManager::m2p_ImageConvolvers
private

The actual convolvers (as many as m_nbImageConvolvers)

Definition at line 231 of file oImageConvolverManager.hh.

bool oImageConvolverManager::m_checked
private

A boolean that says if the function CheckParameters() has been called

Definition at line 236 of file oImageConvolverManager.hh.

bool oImageConvolverManager::m_initialized
private

A boolean that says if the function Initialize() has been called

Definition at line 237 of file oImageConvolverManager.hh.

int oImageConvolverManager::m_nbImageConvolvers
private

The number of convolvers managed by this manager

Definition at line 230 of file oImageConvolverManager.hh.

vector<string> oImageConvolverManager::m_options
private

A vector containing strings of options, each string is associated to a convolver

Definition at line 229 of file oImageConvolverManager.hh.

int oImageConvolverManager::m_verbose
private

The verbose level associated to this class

Definition at line 238 of file oImageConvolverManager.hh.

bool* oImageConvolverManager::mp_applyBackward
private

As many booleans as m_nbImageConvolvers specifying if each convolver should be apply within the ConvolveBackward function

Definition at line 233 of file oImageConvolverManager.hh.

bool* oImageConvolverManager::mp_applyForward
private

As many booleans as m_nbImageConvolvers specifying if each convolver should be apply within the ConvolveForward function

Definition at line 232 of file oImageConvolverManager.hh.

bool* oImageConvolverManager::mp_applyIntra
private

As many booleans as m_nbImageConvolvers specifying if each convolver should be apply within the ConvolveIntra function

Definition at line 234 of file oImageConvolverManager.hh.

bool* oImageConvolverManager::mp_applyPost
private

As many booleans as m_nbImageConvolvers specifying if each convolver should be apply within the ConvolvePost function

Definition at line 235 of file oImageConvolverManager.hh.

oImageDimensionsAndQuantification* oImageConvolverManager::mp_ImageDimensionsAndQuantification
private

The image dimensions

Definition at line 228 of file oImageConvolverManager.hh.


The documentation for this class was generated from the following files: