MeVisLabToolboxReference
|
00001 // **InsertLicense** code 00002 //------------------------------------------------------------------------- 00006 00011 //------------------------------------------------------------------------- 00012 // Prevent multiple including of this file. 00013 #if !defined(__mlLoGFilter_H) 00014 #define __mlLoGFilter_H 00015 00016 // ML-includes 00017 #ifndef __mlInitSystemKernel_H 00018 #include "mlInitSystemKernel.h" 00019 #endif 00020 #ifndef __mlKernel_H 00021 #include "mlKernel.h" 00022 #endif 00023 #ifndef __mlKernelModule_H 00024 #include "mlKernelModule.h" 00025 #endif 00026 00027 ML_START_NAMESPACE 00028 00029 //------------------------------------------------------------------- 00037 //------------------------------------------------------------------- 00038 class MLKERNELEXPORT LoGFilter : public KernelModule{ 00039 00040 public: 00041 00042 //------------------------------------------------------------------- 00056 //------------------------------------------------------------------- 00057 LoGFilter(); 00058 00061 DoubleField *sigmaFld; 00062 00064 IntField *getKernelExtFld() { return _kernelExtFld; } 00065 00066 protected: 00068 virtual void handleNotification(Field* field); 00069 00071 virtual void calculateOutputImageProperties(int outIndex); 00072 00074 virtual void _updateKernel(); 00075 00076 00078 MLdouble _calculateLoGfirstPart(int axisIdx); 00079 00081 MLdouble _calculateLoGsecondPart(int axisIdx); 00082 00084 void _setKernel(); 00085 00086 00092 CALC_ROW_H(); 00093 00096 template <typename DATATYPE> 00097 void calcRow(MLsoffset *indexTab, 00098 size_t indexTabSize, 00099 MLsoffset srcVoxelOffset, 00100 size_t numVox, 00101 DATATYPE *inCursor, 00102 DATATYPE *outCursor, 00103 const ImageVector &/*rowStart*/); 00104 00105 private: 00107 00108 static const KernelDataType _LoGI[9]; 00109 static const KernelDataType _LoGII[9]; 00110 static const KernelDataType _LoGIII[25]; 00112 00114 IntField *_kernelExtFld; 00115 00120 ML_MODULE_CLASS_HEADER(LoGFilter); 00121 }; 00122 00123 ML_END_NAMESPACE 00124 00125 #endif //of __mlLoGFilter_H 00126 00127