![]() |
CASToR
1.0
Tomographic Reconstruction (PET/SPECT)
|
00001 00008 #ifndef OANALYTICPROJECTION_HH 00009 #define OANALYTICPROJECTION_HH 1 00010 00011 #include "oImageDimensionsAndQuantification.hh" 00012 #include "oProjectorManager.hh" 00013 #include "oImageConvolverManager.hh" 00014 #include "oImageSpace.hh" 00015 #include "oComputeProjection.hh" 00016 #include "vScanner.hh" 00017 00018 00028 class oAnalyticProjection 00029 { 00030 // Constructor & Destructor 00031 public: 00032 00037 oAnalyticProjection(); 00038 00042 ~oAnalyticProjection(); 00043 00044 00045 // ------------------------------------------------------------------- 00046 // Public member functions 00047 public: 00053 int Launch(); 00054 int LaunchCPU(); 00055 00056 #ifdef CASTOR_GPU 00057 int LaunchGPU(); 00058 #endif 00059 00060 void InitOptimizer(oImageDimensionsAndQuantification* ap_ImageDimensionsAndQuantification) 00061 {mp_ComputeProjection = new oComputeProjection(ap_ImageDimensionsAndQuantification);}; 00062 00063 int InitNoiseModel(string aNoiseModel) 00064 {return mp_ComputeProjection->InitNoiseModel(aNoiseModel);}; 00065 00071 inline void SetImageDimensionsAndQuantification(oImageDimensionsAndQuantification* ap_ImageDimensionsAndQuantification) {mp_ID = ap_ImageDimensionsAndQuantification;}; 00072 00078 inline void SetImageSpace(oImageSpace* ap_ImageSpace) {mp_ImageSpace = ap_ImageSpace;}; 00079 00085 inline void SetProjectorManager(oProjectorManager* ap_ProjectorManager) {mp_ProjectorManager = ap_ProjectorManager;}; 00086 00092 inline void SetImageConvolverManager(oImageConvolverManager* ap_ImageConvolverManager) {mp_ImageConvolverManager = ap_ImageConvolverManager;} 00093 00099 inline void SetDataFile(vDataFile** a2p_DataFile) {m2p_DataFile = a2p_DataFile;}; 00100 00106 inline void SetGPUflag(bool a_flagGPU) {m_flagGPU = a_flagGPU;}; 00107 00113 inline void SetVerbose(int a_verboseLevel) {m_verbose = a_verboseLevel;}; 00114 00120 inline void SetNbBeds(int a_nbBeds) {m_nbBeds = a_nbBeds;}; 00121 00127 inline void SetPathInitImage(string a_pathToInitialImage) {m_pathToInitialImg = a_pathToInitialImage;}; 00128 00134 inline void SetPathAtnImage(string a_pathToAtnImg) {m_pathToAtnImg = a_pathToAtnImg;}; 00135 00141 inline void SetScanner(vScanner* ap_Scanner) {mp_Scanner = ap_Scanner;} 00142 00143 00144 // ------------------------------------------------------------------- 00145 // Private member functions 00146 private: 00147 00148 // Data members 00149 private: 00150 int m_verbose; 00151 bool m_flagGPU; 00152 oImageDimensionsAndQuantification* mp_ID; 00153 vDataFile** m2p_DataFile; 00154 oProjectorManager* mp_ProjectorManager; 00155 oImageConvolverManager* mp_ImageConvolverManager; 00156 oImageSpace* mp_ImageSpace; 00157 oComputeProjection* mp_ComputeProjection; 00158 int m_nbBeds; 00159 string m_pathToInitialImg; 00160 string m_pathToAtnImg; 00161 vScanner* mp_Scanner; 00162 }; 00163 00164 #endif 00165 00166 00167 00168 00169 00170 00171 00172 00173 00174 00175 00176 00177