CASToR  1.1
Tomographic Reconstruction (PET/SPECT)
 All Classes Files Functions Variables Typedefs Macros Groups Pages
iImageProcessingTemplate.cc
Go to the documentation of this file.
1 
2 /*
3  Implementation of class iImageProcessingTemplate
4 
5  - separators: done
6  - doxygen: done
7  - default initialization: done
8  - CASTOR_DEBUG:
9  - CASTOR_VERBOSE:
10 */
11 
19 #include "sOutputManager.hh"
20 
21 // =====================================================================
22 // ---------------------------------------------------------------------
23 // ---------------------------------------------------------------------
24 // =====================================================================
25 
27 {
28  // Set the booleans that describe if this image processing module will affect each of the dynamic dimension.
29  // The boolean members m_affectXXXDimensionFlag are used to avoid any misuse of an image processing module due to the indexation
30  // on dynamic basis functions. Here is an example: if the module is acting on the time dynamics (1st pointer) and actually uses
31  // the time information to do some processing along this dimension, then the m_affectTimeDimensionFlag must be set to 'true' in
32  // the constructor. Doing that, the image processing manager will forbid any use of this processing module if time basis functions
33  // are being used. So this insures that when entering this function, the first pointer of the a4p_image will be frames and not
34  // generic time basis functions (i.e. there is an equivalence). The same reasoning applies to the respiratory and cardiac dimensions.
38  // Affect default values to the parameters specific to this module
39 }
40 
41 // =====================================================================
42 // ---------------------------------------------------------------------
43 // ---------------------------------------------------------------------
44 // =====================================================================
45 
47 {
48  // Delete or free all structures specific to this module that were allocated by this module
49 }
50 
51 // =====================================================================
52 // ---------------------------------------------------------------------
53 // ---------------------------------------------------------------------
54 // =====================================================================
55 
56 int iImageProcessingTemplate::ReadConfigurationFile(const string& a_configurationFile)
57 {
58  // Implement here the reading of any options specific to this image processing module, through a configuration file
59 
60  // Normal end
61  return 0;
62 }
63 
64 // =====================================================================
65 // ---------------------------------------------------------------------
66 // ---------------------------------------------------------------------
67 // =====================================================================
68 
69 int iImageProcessingTemplate::ReadOptionsList(const string& a_optionsList)
70 {
71  // Implement here the reading of any options specific to this image processing module, through a list of options separated by commas
72 
73  // Normal end
74  return 0;
75 }
76 
77 // =====================================================================
78 // ---------------------------------------------------------------------
79 // ---------------------------------------------------------------------
80 // =====================================================================
81 
83 {
84  // Here, display some help and guidance to how to use this image processing module and what it does.
85  // Also describes the form of the configuration file or the list of options that parameterize your module.
86  cout << "This image processing module is a template class dedicated to add your own custom image processing module." << endl;
87 }
88 
89 // =====================================================================
90 // ---------------------------------------------------------------------
91 // ---------------------------------------------------------------------
92 // =====================================================================
93 
95 {
96  // Implement here all mandatory checks specific to this image processing module needed for a nice use
97 
98  // Normal end
99  return 0;
100 }
101 
102 // =====================================================================
103 // ---------------------------------------------------------------------
104 // ---------------------------------------------------------------------
105 // =====================================================================
106 
108 {
109  // Implement here the initialization of whatever member variables specifically used by this image processing module
110 
111  return 0;
112 }
113 
114 // =====================================================================
115 // ---------------------------------------------------------------------
116 // ---------------------------------------------------------------------
117 // =====================================================================
118 
120 {
121  // Do the processing here.
122  // The input parameter is the image to be processed.
123  // For genericity purpose, the a4p_image is indexed using dynamic basis functions and not directly frames and gates indices.
124  // 1st pointer: time basis functions
125  // 2nd pointer: respiratory basis functions
126  // 3rd pointer: cardiac basis functions
127  // 4th pointer: voxels
128  // The boolean members m_affectXXXDimensionFlag are used to avoid any misuse of an image processing module due to the indexation
129  // on dynamic basis functions. Here is an example: if the module is acting on the time dynamics (1st pointer) and actually uses
130  // the time information to do some processing along this dimension, then the m_affectTimeDimensionFlag must be set to 'true' in
131  // the constructor. Doing that, the image processing manager will forbid any use of this processing module if time basis functions
132  // are being used. So this insures that when entering this function, the first pointer of the a4p_image will be frames and not
133  // generic time basis functions (i.e. there is an equivalence). The same reasoning applies to the respiratory and cardiac dimensions.
134  // All informations about frames, durations, gates, etc, can be accessed via the object member mp_ImageDimensionsAndQuantification.
135 
136  // Normal end
137  return 0;
138 }
139 
140 // =====================================================================
141 // ---------------------------------------------------------------------
142 // ---------------------------------------------------------------------
143 // =====================================================================
#define FLTNB
Definition: gVariables.hh:55
int CheckSpecificParameters()
A private function used to check the parameters settings specific to the child module.
int Process(FLTNB ****a4p_image)
A function used to actually perform the processing.
int ReadOptionsList(const string &a_optionsList)
A function used to read options from a list of options.
~iImageProcessingTemplate()
The destructor of iImageProcessingTemplate.
This abstract class is the generic image processing module class used by the oImageProcessingManager...
void ShowHelp()
A function used to show help about the child module.
int ReadConfigurationFile(const string &a_configurationFile)
A function used to read options from a configuration file.
iImageProcessingTemplate()
The constructor of iImageProcessingTemplate.
Declaration of class sOutputManager.
Declaration of class iImageProcessingTemplate.
int InitializeSpecific()
A private function used to initialize everything specific to the child module.