CASToR  3.0
Tomographic Reconstruction (PET/SPECT/CT)
oImageConvolverManager.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 OIMAGECONVOLVERMANAGER_HH
31 #define OIMAGECONVOLVERMANAGER_HH 1
32 
33 #include "gVariables.hh"
34 #include "oImageSpace.hh"
35 #include "vImageConvolver.hh"
36 
54 {
55  // -----------------------------------------------------------------------------------------
56  // Constructor & Destructor
57  public:
72 
73 
74  // -----------------------------------------------------------------------------------------
75  // Public member functions for initialization
76  public:
84  int CheckParameters();
94  int Initialize();
101  static void ShowCommonHelp();
102 
103 
104  // -----------------------------------------------------------------------------------------
105  // Public member functions for actions
106  public:
119  int ConvolveForward(oImageSpace* ap_ImageSpace);
135  int ConvolveBackward(oImageSpace* ap_ImageSpace);
148  int ConvolveSensitivity(oImageSpace* ap_ImageSpace);
162  int ConvolveIntra(oImageSpace* ap_ImageSpace);
176  int ConvolvePost(oImageSpace* ap_ImageSpace);
177 
178 
179  // -----------------------------------------------------------------------------------------
180  // Public Get & Set functions
181  public:
187  inline void SetVerbose(int a_verboseLevel)
188  {m_verbose = a_verboseLevel;}
194  inline void SetImageDimensionsAndQuantification(oImageDimensionsAndQuantification* ap_ImageDimensionsAndQuantification)
195  {mp_ImageDimensionsAndQuantification = ap_ImageDimensionsAndQuantification;}
201  inline void SetOptions(vector<string> a_options)
202  {m_options = a_options;}
203 
204 
205  // -----------------------------------------------------------------------------------------
206  // Private member functions
207  private:
221 
222 
223  // -----------------------------------------------------------------------------------------
224  // Data members
225  private:
228  vector<string> m_options;
234  bool* mp_applyPost;
235  bool m_checked;
237  int m_verbose;
238 };
239 
240 #endif
int ParseOptionsAndInitializeImageConvolvers()
A function used to parse options and initialize image convolvers.
This header file is mainly used to declare some macro definitions and all includes needed from the st...
void SetImageDimensionsAndQuantification(oImageDimensionsAndQuantification *ap_ImageDimensionsAndQuantification)
Set the member mp_ImageDimensionsAndQuantification to the provided value.
void SetVerbose(int a_verboseLevel)
Set the member m_verboseLevel to the provided value.
int ConvolveForward(oImageSpace *ap_ImageSpace)
A function used to apply convolvers onto the forward image of the oImageSpace.
int CheckParameters()
A function used to check the parameters settings.
oImageConvolverManager()
The constructor of oImageConvolverManager.
int ConvolvePost(oImageSpace *ap_ImageSpace)
A function used to apply convolvers onto the output image of the oImageSpace.
int ConvolveIntra(oImageSpace *ap_ImageSpace)
A function used to apply convolvers onto the current image of the oImageSpace.
void SetOptions(vector< string > a_options)
Set the member m_options to the provided value.
int ConvolveBackward(oImageSpace *ap_ImageSpace)
A function used to apply convolvers onto the backward images of the oImageSpace.
This class is designed to manage the different image convolvers and to apply them.
static void ShowCommonHelp()
This function does not take any parameter and is used to display some help about the syntax of the op...
~oImageConvolverManager()
The destructor of oImageConvolverManager.
oImageDimensionsAndQuantification * mp_ImageDimensionsAndQuantification
Declaration of class oImageSpace.
This class holds all the matrices in the image domain that can be used in the algorithm: image...
Definition: oImageSpace.hh:60
This class is designed to manage all dimensions and quantification related stuff. ...
Declaration of class vImageConvolver.
int ConvolveSensitivity(oImageSpace *ap_ImageSpace)
A function used to apply convolvers onto the sensitivity image of the oImageSpace.
vImageConvolver ** m2p_ImageConvolvers
This abstract class is the generic image convolver class used by the oImageConvolverManager.
int Initialize()
A function used to initialize the manager and all image convolvers it manages.