CASToR  3.2
Tomographic Reconstruction (PET/SPECT/CT)
include/image/oImageConvolverManager.hh
Go to the documentation of this file.
1 
8 #ifndef OIMAGECONVOLVERMANAGER_HH
9 #define OIMAGECONVOLVERMANAGER_HH 1
10 
11 #include "gVariables.hh"
12 #include "oImageSpace.hh"
13 #include "vImageConvolver.hh"
14 
32 {
33  // -----------------------------------------------------------------------------------------
34  // Constructor & Destructor
35  public:
50 
51 
52  // -----------------------------------------------------------------------------------------
53  // Public member functions for initialization
54  public:
62  int CheckParameters();
72  int Initialize();
79  static void ShowCommonHelp();
80 
81 
82  // -----------------------------------------------------------------------------------------
83  // Public member functions for actions
84  public:
95  inline int ApplyConvolution(FLTNB* ap_image)
96  {return m2p_ImageConvolvers[0]->ApplyConvolution(ap_image);}
109  int ConvolveForward(oImageSpace* ap_ImageSpace);
125  int ConvolveBackward(oImageSpace* ap_ImageSpace);
138  int ConvolveSensitivity(oImageSpace* ap_ImageSpace);
152  int ConvolveIntra(oImageSpace* ap_ImageSpace);
166  int ConvolvePost(oImageSpace* ap_ImageSpace);
167 
168 
169  // -----------------------------------------------------------------------------------------
170  // Public Get & Set functions
171  public:
177  inline void SetVerbose(int a_verboseLevel)
178  {m_verbose = a_verboseLevel;}
184  inline void SetImageDimensionsAndQuantification(oImageDimensionsAndQuantification* ap_ImageDimensionsAndQuantification)
185  {mp_ImageDimensionsAndQuantification = ap_ImageDimensionsAndQuantification;}
191  inline void SetOptions(vector<string> a_options)
192  {m_options = a_options;}
193 
194 
195  // -----------------------------------------------------------------------------------------
196  // Private member functions
197  private:
211 
212 
213  // -----------------------------------------------------------------------------------------
214  // Data members
215  private:
218  vector<string> m_options;
219  int m_nbImageConvolvers;
221  bool* mp_applyForward;
222  bool* mp_applyBackward;
223  bool* mp_applyIntra;
224  bool* mp_applyPost;
225  bool m_checked;
226  bool m_initialized;
227  int m_verbose;
228 };
229 
230 #endif
int ParseOptionsAndInitializeImageConvolvers()
A function used to parse options and initialize image convolvers.
Declaration of class oImageSpace.
void SetImageDimensionsAndQuantification(oImageDimensionsAndQuantification *ap_ImageDimensionsAndQuantification)
int ConvolveForward(oImageSpace *ap_ImageSpace)
int CheckParameters()
A function used to check the parameters settings.
oImageConvolverManager()
The constructor of oImageConvolverManager.
int ApplyConvolution(FLTNB *ap_image)
A function that simply calls the eponym function from the vImageConvolver.
int ConvolvePost(oImageSpace *ap_ImageSpace)
int ConvolveIntra(oImageSpace *ap_ImageSpace)
oImageDimensionsAndQuantification * mp_ImageDimensionsAndQuantification
Declaration of class vImageConvolver.
int ConvolveBackward(oImageSpace *ap_ImageSpace)
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.
int ApplyConvolution(FLTNB *ap_image)
This class holds all the matrices in the image domain that can be used in the algorithm: image...
void SetOptions(vector< string > a_options)
This class is designed to manage all dimensions and quantification related stuff. ...
int ConvolveSensitivity(oImageSpace *ap_ImageSpace)
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.