CASToR  2.0
Tomographic Reconstruction (PET/SPECT/CT)
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
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-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 OIMAGECONVOLVERMANAGER_HH
32 #define OIMAGECONVOLVERMANAGER_HH 1
33 
34 #include "gVariables.hh"
35 #include "oImageSpace.hh"
36 #include "vImageConvolver.hh"
37 
55 {
56  // -----------------------------------------------------------------------------------------
57  // Constructor & Destructor
58  public:
73 
74 
75  // -----------------------------------------------------------------------------------------
76  // Public member functions for initialization
77  public:
85  int CheckParameters();
95  int Initialize();
102  static void ShowCommonHelp();
103 
104 
105  // -----------------------------------------------------------------------------------------
106  // Public member functions for actions
107  public:
120  int ConvolveForward(oImageSpace* ap_ImageSpace);
136  int ConvolveBackward(oImageSpace* ap_ImageSpace);
149  int ConvolveSensitivity(oImageSpace* ap_ImageSpace);
163  int ConvolveIntra(oImageSpace* ap_ImageSpace);
177  int ConvolvePost(oImageSpace* ap_ImageSpace);
178 
179 
180  // -----------------------------------------------------------------------------------------
181  // Public Get & Set functions
182  public:
188  inline void SetVerbose(int a_verboseLevel)
189  {m_verbose = a_verboseLevel;}
195  inline void SetImageDimensionsAndQuantification(oImageDimensionsAndQuantification* ap_ImageDimensionsAndQuantification)
196  {mp_ImageDimensionsAndQuantification = ap_ImageDimensionsAndQuantification;}
202  inline void SetOptions(vector<string> a_options)
203  {m_options = a_options;}
204 
205 
206  // -----------------------------------------------------------------------------------------
207  // Private member functions
208  private:
222 
223 
224  // -----------------------------------------------------------------------------------------
225  // Data members
226  private:
229  vector<string> m_options;
235  bool* mp_applyPost;
236  bool m_checked;
238  int m_verbose;
239 };
240 
241 #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:61
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.