CASToR  3.0
Tomographic Reconstruction (PET/SPECT/CT)
oImageProcessingManager.hh
Go to the documentation of this file.
1 /*
2 This file is part of CASToR.
3 
4  CASToR is free software: you can redistribute it and/or modify it under the
5  terms of the GNU General Public License as published by the Free Software
6  Foundation, either version 3 of the License, or (at your option) any later
7  version.
8 
9  CASToR is distributed in the hope that it will be useful, but WITHOUT ANY
10  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11  FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
12  details.
13 
14  You should have received a copy of the GNU General Public License along with
15  CASToR (in file GNU_GPL.TXT). If not, see <http://www.gnu.org/licenses/>.
16 
17 Copyright 2017-2019 all CASToR contributors listed below:
18 
19  --> Didier BENOIT, Claude COMTAT, Marina FILIPOVIC, Thibaut MERLIN, Mael MILLARDET, Simon STUTE, Valentin VIELZEUF
20 
21 This is CASToR version 3.0.
22 */
23 
30 #ifndef OIMAGEPROCESSINGMANAGER_HH
31 #define OIMAGEPROCESSINGMANAGER_HH 1
32 
33 #include "gVariables.hh"
34 #include "oImageSpace.hh"
36 
52 {
53  // -----------------------------------------------------------------------------------------
54  // Constructor & Destructor
55  public:
70 
71  // -----------------------------------------------------------------------------------------
72  // Public member functions for initialization
73  public:
81  int CheckParameters();
91  int Initialize();
98  static void ShowCommonHelp();
99 
100 
101  // -----------------------------------------------------------------------------------------
102  // Public member functions for actions
103  public:
114  int ApplyProcessingForward(oImageSpace* ap_ImageSpace);
126  int ApplyProcessingIntra(oImageSpace* ap_ImageSpace);
139  int ApplyProcessingPost(oImageSpace* ap_ImageSpace);
140 
141 
142  // -----------------------------------------------------------------------------------------
143  // Public Get & Set functions
144  public:
150  inline void SetVerbose(int a_verboseLevel)
151  {m_verbose = a_verboseLevel;}
157  inline void SetImageDimensionsAndQuantification(oImageDimensionsAndQuantification* ap_ImageDimensionsAndQuantification)
158  {mp_ImageDimensionsAndQuantification = ap_ImageDimensionsAndQuantification;}
164  inline void SetOptions(vector<string> a_options)
165  {m_options = a_options;}
166 
167 
168  // -----------------------------------------------------------------------------------------
169  // Private member functions
170  private:
184 
185 
186  // -----------------------------------------------------------------------------------------
187  // Data members
188  private:
191  vector<string> m_options;
197  bool* mp_applyPost;
198  bool m_checked;
200  int m_verbose;
201 };
202 
203 #endif
int ApplyProcessingForward(oImageSpace *ap_ImageSpace)
A function used to apply image processing modules onto the forward image of the oImageSpace.
This header file is mainly used to declare some macro definitions and all includes needed from the st...
static void ShowCommonHelp()
This function does not take any parameter and is used to display some help about the syntax of the op...
void SetImageDimensionsAndQuantification(oImageDimensionsAndQuantification *ap_ImageDimensionsAndQuantification)
Set the member mp_ImageDimensionsAndQuantification to the provided value.
int Initialize()
A function used to initialize the manager and all image processing modules it manages.
~oImageProcessingManager()
The destructor of oImageProcessingManager.
int ApplyProcessingPost(oImageSpace *ap_ImageSpace)
A function used to apply convolvers onto the output image of the oImageSpace.
This abstract class is the generic image processing module class used by the oImageProcessingManager...
void SetOptions(vector< string > a_options)
Set the member m_options to the provided value.
int CheckParameters()
A function used to check the parameters settings.
oImageProcessingManager()
The constructor of oImageProcessingManager.
int ApplyProcessingIntra(oImageSpace *ap_ImageSpace)
A function used to apply image processing modules onto the current image of the oImageSpace.
Declaration of class oImageSpace.
This class is designed to manage the different image processing modules and to apply them...
oImageDimensionsAndQuantification * mp_ImageDimensionsAndQuantification
This class holds all the matrices in the image domain that can be used in the algorithm: image...
Definition: oImageSpace.hh:60
vImageProcessingModule ** m2p_ImageProcessingModules
This class is designed to manage all dimensions and quantification related stuff. ...
void SetVerbose(int a_verboseLevel)
Set the member m_verboseLevel to the provided value.
Declaration of class vImageProcessingModule.
int ParseOptionsAndInitializeImageProcessingModules()
A function used to parse options and initialize image processing modules.