CASToR  2.0
Tomographic Reconstruction (PET/SPECT/CT)
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
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-2018 all CASToR contributors listed below:
18 
19  --> current contributors: Thibaut MERLIN, Simon STUTE, Didier BENOIT, Claude COMTAT, Marina FILIPOVIC, Mael MILLARDET
20  --> past contributors: Valentin VIELZEUF
21 
22 This is CASToR version 2.0.
23 */
24 
31 #ifndef OIMAGEPROCESSINGMANAGER_HH
32 #define OIMAGEPROCESSINGMANAGER_HH 1
33 
34 #include "gVariables.hh"
35 #include "oImageSpace.hh"
37 
53 {
54  // -----------------------------------------------------------------------------------------
55  // Constructor & Destructor
56  public:
71 
72  // -----------------------------------------------------------------------------------------
73  // Public member functions for initialization
74  public:
82  int CheckParameters();
92  int Initialize();
99  static void ShowCommonHelp();
100 
101 
102  // -----------------------------------------------------------------------------------------
103  // Public member functions for actions
104  public:
115  int ApplyProcessingForward(oImageSpace* ap_ImageSpace);
127  int ApplyProcessingIntra(oImageSpace* ap_ImageSpace);
140  int ApplyProcessingPost(oImageSpace* ap_ImageSpace);
141 
142 
143  // -----------------------------------------------------------------------------------------
144  // Public Get & Set functions
145  public:
151  inline void SetVerbose(int a_verboseLevel)
152  {m_verbose = a_verboseLevel;}
158  inline void SetImageDimensionsAndQuantification(oImageDimensionsAndQuantification* ap_ImageDimensionsAndQuantification)
159  {mp_ImageDimensionsAndQuantification = ap_ImageDimensionsAndQuantification;}
165  inline void SetOptions(vector<string> a_options)
166  {m_options = a_options;}
167 
168 
169  // -----------------------------------------------------------------------------------------
170  // Private member functions
171  private:
185 
186 
187  // -----------------------------------------------------------------------------------------
188  // Data members
189  private:
192  vector<string> m_options;
198  bool* mp_applyPost;
199  bool m_checked;
201  int m_verbose;
202 };
203 
204 #endif
int ApplyProcessingForward(oImageSpace *ap_ImageSpace)
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)
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)
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:61
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.