![]() |
CASToR
1.0
Tomographic Reconstruction (PET/SPECT)
|
00001 00002 /* 00003 Implementation of class iImageConvolverTemplate 00004 00005 - separators: done 00006 - doxygen: done 00007 - default initialization: done 00008 - CASTOR_DEBUG: 00009 - CASTOR_VERBOSE: 00010 */ 00011 00018 #include "vImageConvolver.hh" 00019 #include "oImageDimensionsAndQuantification.hh" 00020 #include "oImageSpace.hh" 00021 #include "iImageConvolverTemplate.hh" 00022 00023 // ===================================================================== 00024 // --------------------------------------------------------------------- 00025 // --------------------------------------------------------------------- 00026 // ===================================================================== 00027 00028 iImageConvolverTemplate::iImageConvolverTemplate() : vImageConvolver() 00029 { 00030 // Affect default values to the parameters specific to this convolver 00031 } 00032 00033 // ===================================================================== 00034 // --------------------------------------------------------------------- 00035 // --------------------------------------------------------------------- 00036 // ===================================================================== 00037 00038 iImageConvolverTemplate::~iImageConvolverTemplate() 00039 { 00040 // Delete or free all structures specific to this convolver that were allocated by this convolver 00041 } 00042 00043 // ===================================================================== 00044 // --------------------------------------------------------------------- 00045 // --------------------------------------------------------------------- 00046 // ===================================================================== 00047 00048 int iImageConvolverTemplate::ReadConfigurationFile(const string& a_configurationFile) 00049 { 00050 // Implement here the reading of any options specific to this image convolver, through a configuration file 00051 00052 // Normal end 00053 return 0; 00054 } 00055 00056 // ===================================================================== 00057 // --------------------------------------------------------------------- 00058 // --------------------------------------------------------------------- 00059 // ===================================================================== 00060 00061 int iImageConvolverTemplate::ReadOptionsList(const string& a_optionsList) 00062 { 00063 // Implement here the reading of any options specific to this image convolver, through a list of options separated by commas 00064 00065 // Normal end 00066 return 0; 00067 } 00068 00069 // ===================================================================== 00070 // --------------------------------------------------------------------- 00071 // --------------------------------------------------------------------- 00072 // ===================================================================== 00073 00074 void iImageConvolverTemplate::ShowHelp() 00075 { 00076 // Here, display some help and guidance to how to use this image convolver module and what it does. 00077 // Also describes the form of the configuration file or the list of options that parameterize your module. 00078 cout << "This image convolver is a template class dedicated to add your own custom image convolver." << endl; 00079 } 00080 00081 // ===================================================================== 00082 // --------------------------------------------------------------------- 00083 // --------------------------------------------------------------------- 00084 // ===================================================================== 00085 00086 int iImageConvolverTemplate::CheckSpecificParameters() 00087 { 00088 // Implement here all mandatory checks specific to this image convolver needed for a nice use 00089 00090 // Normal end 00091 return 0; 00092 } 00093 00094 // ===================================================================== 00095 // --------------------------------------------------------------------- 00096 // --------------------------------------------------------------------- 00097 // ===================================================================== 00098 00099 int iImageConvolverTemplate::BuildConvolutionKernel() 00100 { 00101 // Here you must build the convolution kernels. This means first specifying the number of kernels: m_nbKernels. 00102 // If it is stationary (i.e. m_nbKernels=1), then the m_stationary boolean should be set to true, as the Convolve 00103 // function implemented by the mother vImageConvolver will be used. Otherwise, this function Convolve(), as well 00104 // as ConvolveTranspose() must be overloaded by this class in order to properly use the convolution kernels. 00105 // Second, the dimensions of the kernels mp_dimKernelX, mp_dimKernelY and mp_dimKernelZ must first be allocated 00106 // with respect to the number of kernels, and then be specified. Finally, the kernels values m2p_kernel must also be 00107 // allocated with respect to the number of kernels and their dimensions, and then be specified. It is assumed that 00108 // the normalization of the kernels is made in this function. 00109 00110 // Normal end 00111 return 0; 00112 } 00113 00114 // ===================================================================== 00115 // --------------------------------------------------------------------- 00116 // --------------------------------------------------------------------- 00117 // =====================================================================