CASToR  1.0
Tomographic Reconstruction (PET/SPECT)
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
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
[legend]

List of all members.

Public Member Functions

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

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.

Private Member Functions

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

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 32 of file oImageConvolverManager.hh.


Constructor & Destructor Documentation

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 26 of file oImageConvolverManager.cc.

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 51 of file oImageConvolverManager.cc.


Member Function Documentation

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 66 of file oImageConvolverManager.cc.

Here is the caller graph for this function:

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 389 of file oImageConvolverManager.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

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 342 of file oImageConvolverManager.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

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 468 of file oImageConvolverManager.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

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 563 of file oImageConvolverManager.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

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 515 of file oImageConvolverManager.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

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 127 of file oImageConvolverManager.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

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 160 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 173 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 180 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 166 of file oImageConvolverManager.hh.

Here is the caller graph for this function:

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 91 of file oImageConvolverManager.cc.

Here is the caller graph for this function:


Member Data Documentation

The actual convolvers (as many as m_nbImageConvolvers)

Definition at line 209 of file oImageConvolverManager.hh.

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

Definition at line 214 of file oImageConvolverManager.hh.

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

Definition at line 215 of file oImageConvolverManager.hh.

The number of convolvers managed by this manager

Definition at line 208 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 207 of file oImageConvolverManager.hh.

The verbose level associated to this class

Definition at line 216 of file oImageConvolverManager.hh.

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

Definition at line 211 of file oImageConvolverManager.hh.

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

Definition at line 210 of file oImageConvolverManager.hh.

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

Definition at line 212 of file oImageConvolverManager.hh.

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

Definition at line 213 of file oImageConvolverManager.hh.

The image dimensions

Definition at line 206 of file oImageConvolverManager.hh.


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