CASToR  1.1
Tomographic Reconstruction (PET/SPECT)
 All Classes Files Functions Variables Typedefs Macros Groups Pages
oAnalyticProjection.hh
Go to the documentation of this file.
1 
8 #ifndef OANALYTICPROJECTION_HH
9 #define OANALYTICPROJECTION_HH 1
10 
12 #include "oProjectorManager.hh"
14 #include "oImageSpace.hh"
15 #include "oComputeProjection.hh"
16 #include "vScanner.hh"
17 
18 
29 {
30  // Constructor & Destructor
31  public:
32 
38 
43 
44 
45  // -------------------------------------------------------------------
46  // Public member functions
47  public:
53  int Launch();
54  int LaunchCPU();
55 
56  #ifdef CASTOR_GPU
57  int LaunchGPU();
58  #endif
59 
60  void InitOptimizer(oImageDimensionsAndQuantification* ap_ImageDimensionsAndQuantification)
61  {mp_ComputeProjection = new oComputeProjection(ap_ImageDimensionsAndQuantification);};
62 
63  int InitNoiseModel(string aNoiseModel)
64  {return mp_ComputeProjection->InitNoiseModel(aNoiseModel);};
65 
71  inline void SetImageDimensionsAndQuantification(oImageDimensionsAndQuantification* ap_ImageDimensionsAndQuantification) {mp_ID = ap_ImageDimensionsAndQuantification;};
72 
78  inline void SetImageSpace(oImageSpace* ap_ImageSpace) {mp_ImageSpace = ap_ImageSpace;};
79 
85  inline void SetProjectorManager(oProjectorManager* ap_ProjectorManager) {mp_ProjectorManager = ap_ProjectorManager;};
86 
92  inline void SetImageConvolverManager(oImageConvolverManager* ap_ImageConvolverManager) {mp_ImageConvolverManager = ap_ImageConvolverManager;}
93 
99  inline void SetDataFile(vDataFile** a2p_DataFile) {m2p_DataFile = a2p_DataFile;};
100 
106  inline void SetGPUflag(bool a_flagGPU) {m_flagGPU = a_flagGPU;};
107 
113  inline void SetVerbose(int a_verboseLevel) {m_verbose = a_verboseLevel;};
114 
120  inline void SetNbBeds(int a_nbBeds) {m_nbBeds = a_nbBeds;};
121 
127  inline void SetPathInitImage(string a_pathToInitialImage) {m_pathToInitialImg = a_pathToInitialImage;};
128 
134  inline void SetPathAtnImage(string a_pathToAtnImg) {m_pathToAtnImg = a_pathToAtnImg;};
135 
141  inline void SetScanner(vScanner* ap_Scanner) {mp_Scanner = ap_Scanner;}
142 
143 
144  // -------------------------------------------------------------------
145  // Private member functions
146  private:
147 
148  // Data members
149  private:
150  int m_verbose;
151  bool m_flagGPU;
158  int m_nbBeds;
160  string m_pathToAtnImg;
162 };
163 
164 #endif
165 
166 
167 
168 
169 
170 
171 
172 
173 
174 
175 
176 
177 
oImageConvolverManager * mp_ImageConvolverManager
This class is designed to be a mother virtual class for Datafile.
Definition: vDataFile.hh:67
Declaration of class oImageDimensionsAndQuantification.
void SetNbBeds(int a_nbBeds)
Set number of beds (bed positions)
oAnalyticProjection()
oAnalyticProjection constructor. Initialize the member variables to their default values...
This class manages the analytic projection of an image and the computation of the associated datafile...
void SetImageConvolverManager(oImageConvolverManager *ap_ImageConvolverManager)
Set the Image Convolver Manager Object.
void SetDataFile(vDataFile **a2p_DataFile)
Set the list of DataFile.
void SetPathAtnImage(string a_pathToAtnImg)
Set path to an attenuation image.
Class that manages the data update step of analytic projection.
void SetPathInitImage(string a_pathToInitialImage)
Set path to an initial image.
void SetImageDimensionsAndQuantification(oImageDimensionsAndQuantification *ap_ImageDimensionsAndQuantification)
Set the Image Dimensions and Quantification Object.
~oAnalyticProjection()
oAnalyticProjection destructor.
oComputeProjection * mp_ComputeProjection
Declaration of class oImageConvolverManager.
int InitNoiseModel(string aNoiseModel)
int InitNoiseModel(string aNoiseModel)
This is a premature implementation of noise model initialization for analytic simulator. Currently, only the Poisson noise can be selected.
void SetProjectorManager(oProjectorManager *ap_ProjectorManager)
Set the Projector Manager Object.
Declaration of class vScanner.
oImageDimensionsAndQuantification * mp_ID
This class is designed to manage the different image convolvers and to apply them.
int Launch()
Just call either the LaunchCPU or the LaunchGPU function as asked for.
void SetVerbose(int a_verboseLevel)
Set Verbosity.
void SetGPUflag(bool a_flagGPU)
Set the GPU flag.
Declaration of class oImageSpace.
oProjectorManager * mp_ProjectorManager
This class is designed to manage the projection part of the reconstruction.
This class holds all the matrices in the image domain that can be used in the algorithm: image...
Definition: oImageSpace.hh:41
This class is designed to manage all dimensions and quantification related stuff. ...
void SetScanner(vScanner *ap_Scanner)
Set the scanner in use.
void SetImageSpace(oImageSpace *ap_ImageSpace)
Set the Image Space Object.
Declaration of class oProjectorManager.
void InitOptimizer(oImageDimensionsAndQuantification *ap_ImageDimensionsAndQuantification)
Declaration of class oComputeProjection.
Generic class for scanner objects.
Definition: vScanner.hh:48