CASToR  3.0
Tomographic Reconstruction (PET/SPECT/CT)
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
oImageProcessingManager Class Reference

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

#include <oImageProcessingManager.hh>

Collaboration diagram for oImageProcessingManager:
Collaboration graph

Public Member Functions

 oImageProcessingManager ()
 The constructor of oImageProcessingManager. More...
 
 ~oImageProcessingManager ()
 The destructor of oImageProcessingManager. More...
 
int CheckParameters ()
 A function used to check the parameters settings. More...
 
int Initialize ()
 A function used to initialize the manager and all image processing modules it manages. More...
 
int ApplyProcessingForward (oImageSpace *ap_ImageSpace)
 A function used to apply image processing modules onto the forward image of the oImageSpace. More...
 
int ApplyProcessingIntra (oImageSpace *ap_ImageSpace)
 A function used to apply image processing modules onto the current image of the oImageSpace. More...
 
int ApplyProcessingPost (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 processing module that should be used. It is static so that it can be called without any object initialization. More...
 

Private Member Functions

int ParseOptionsAndInitializeImageProcessingModules ()
 A function used to parse options and initialize image processing modules. More...
 

Private Attributes

oImageDimensionsAndQuantificationmp_ImageDimensionsAndQuantification
 
vector< string > m_options
 
int m_nbImageProcessingModules
 
vImageProcessingModule ** m2p_ImageProcessingModules
 
bool * mp_applyForward
 
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 processing modules 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 processing modules. In a few words, based on supplied options, the manager will create children of the abstract vImageProcessingModule class which are specific image processing modules. As an example, see the iImageProcessingTemplate child class that illustrates how a specific image processing module should be implemented.

Definition at line 51 of file oImageProcessingManager.hh.

Constructor & Destructor Documentation

◆ oImageProcessingManager()

oImageProcessingManager::oImageProcessingManager ( )

The constructor of oImageProcessingManager.

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 38 of file oImageProcessingManager.cc.

◆ ~oImageProcessingManager()

oImageProcessingManager::~oImageProcessingManager ( )

The destructor of oImageProcessingManager.

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 62 of file oImageProcessingManager.cc.

Member Function Documentation

◆ ApplyProcessingForward()

int oImageProcessingManager::ApplyProcessingForward ( oImageSpace ap_ImageSpace)

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

Parameters
oImageSpace*ap_ImageSpace

Based on the different mp_applyForward of all managed image processing modules, it will apply them or not onto the forward image of the provided oImageSpace.

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

Definition at line 352 of file oImageProcessingManager.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ApplyProcessingIntra()

int oImageProcessingManager::ApplyProcessingIntra ( oImageSpace ap_ImageSpace)

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

Parameters
oImageSpace*ap_ImageSpace

Based on the different mp_applyIntra of all managed image processing modules, it will apply them or not onto the current estimated image of the provided oImageSpace. The processed image is 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 385 of file oImageProcessingManager.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ApplyProcessingPost()

int oImageProcessingManager::ApplyProcessingPost ( 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 image processing modules, it will apply them or not onto the output image of the provided oImageSpace. This function can be used when one wants to apply processing onto the image as a post-processing step, right before being saved. The processed 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 418 of file oImageProcessingManager.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CheckParameters()

int oImageProcessingManager::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 77 of file oImageProcessingManager.cc.

Here is the caller graph for this function:

◆ Initialize()

int oImageProcessingManager::Initialize ( )

A function used to initialize the manager and all image processing modules 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 processing modules based on the provided options.

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

Definition at line 135 of file oImageProcessingManager.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ParseOptionsAndInitializeImageProcessingModules()

int oImageProcessingManager::ParseOptionsAndInitializeImageProcessingModules ( )
private

A function used to parse options and initialize image processing modules.

This function first parses the options contained in the member m_options. Each string of the vector describes an image processing module to be used. Based on a specific syntax, the options are parsed to get the name of the processing module, its associated parameters and the steps of application. Based on this, the image processing modules 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 168 of file oImageProcessingManager.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetImageDimensionsAndQuantification()

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

Set the member mp_ImageDimensionsAndQuantification to the provided value.

Parameters
oImageDimensionsAndQuantification*ap_ImageDimensionsAndQuantification

Definition at line 157 of file oImageProcessingManager.hh.

Here is the caller graph for this function:

◆ SetOptions()

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

Set the member m_options to the provided value.

Parameters
vector<string>a_options

Definition at line 164 of file oImageProcessingManager.hh.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetVerbose()

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

Set the member m_verboseLevel to the provided value.

Parameters
inta_verboseLevel

Definition at line 150 of file oImageProcessingManager.hh.

Here is the caller graph for this function:

◆ ShowCommonHelp()

void oImageProcessingManager::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 processing module that should be used. It is static so that it can be called without any object initialization.

Definition at line 102 of file oImageProcessingManager.cc.

Here is the caller graph for this function:

Member Data Documentation

◆ m2p_ImageProcessingModules

vImageProcessingModule** oImageProcessingManager::m2p_ImageProcessingModules
private

The actual image processing modules (as many as m_nbImageProcessingModules)

Definition at line 194 of file oImageProcessingManager.hh.

◆ m_checked

bool oImageProcessingManager::m_checked
private

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

Definition at line 198 of file oImageProcessingManager.hh.

◆ m_initialized

bool oImageProcessingManager::m_initialized
private

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

Definition at line 199 of file oImageProcessingManager.hh.

◆ m_nbImageProcessingModules

int oImageProcessingManager::m_nbImageProcessingModules
private

The number of image processing modules managed by this manager

Definition at line 192 of file oImageProcessingManager.hh.

◆ m_options

vector<string> oImageProcessingManager::m_options
private

A vector containing strings of options, each string is associated to an image processing module

Definition at line 191 of file oImageProcessingManager.hh.

◆ m_verbose

int oImageProcessingManager::m_verbose
private

The verbose level associated to this class

Definition at line 200 of file oImageProcessingManager.hh.

◆ mp_applyForward

bool* oImageProcessingManager::mp_applyForward
private

As many booleans as m_nbImageProcessingModules specifying if each module should be apply within the ConvolveForward function

Definition at line 195 of file oImageProcessingManager.hh.

◆ mp_applyIntra

bool* oImageProcessingManager::mp_applyIntra
private

As many booleans as m_nbImageProcessingModules specifying if each module should be apply within the ConvolveIntra function

Definition at line 196 of file oImageProcessingManager.hh.

◆ mp_applyPost

bool* oImageProcessingManager::mp_applyPost
private

As many booleans as m_nbImageProcessingModules specifying if each module should be apply within the ConvolvePost function

Definition at line 197 of file oImageProcessingManager.hh.

◆ mp_ImageDimensionsAndQuantification

oImageDimensionsAndQuantification* oImageProcessingManager::mp_ImageDimensionsAndQuantification
private

The image dimensions

Definition at line 190 of file oImageProcessingManager.hh.


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