MeVisLabToolboxReference
|
00001 // **InsertLicense** code 00002 //---------------------------------------------------------------------------------- 00004 00011 //---------------------------------------------------------------------------------- 00012 00013 00014 #ifndef __mlCorrelation_H 00015 #define __mlCorrelation_H 00016 00017 // Local includes 00018 // ML-includes 00019 #ifndef __mlInitSystemKernel_H 00020 #include "mlInitSystemKernel.h" 00021 #endif 00022 00023 // ML kernel includes 00024 #ifndef __mlKernel_H 00025 #include "mlKernel.h" 00026 #endif 00027 #ifndef __mlKernelModule_H 00028 #include "mlKernelModule.h" 00029 #endif 00030 00031 ML_START_NAMESPACE 00032 00033 00035 class MLKERNELEXPORT Correlation : public KernelModule 00036 { 00037 public: 00038 00040 Correlation (void); 00041 00043 ~Correlation (void); 00044 00046 virtual void handleNotification (Field *field); 00047 00050 // SubImageBox calculateInputSubImageBox (int inIndex, const SubImageBox &outSubImgBox, int outIndex); 00051 00053 CALC_ROW_H(); 00054 00057 template <typename DATATYPE> 00058 void calcRow(MLsoffset *indexTab, 00059 size_t indexTabSize, 00060 MLsoffset /*srcVoxelOffset*/, 00061 size_t numVox, 00062 DATATYPE *inCursor, 00063 DATATYPE *outCursor, 00064 const ImageVector &/*rowStart*/); 00065 00066 private: 00068 bool _generateKernel(); 00069 00071 void _clearKernel(); 00072 00074 Field *kernelInputField; 00075 00077 ImageVector _extKernelImage; 00079 KernelDataType *_kernelImagePtr; 00080 00082 ML_MODULE_CLASS_HEADER(Correlation) 00083 }; 00084 00085 00086 ML_END_NAMESPACE 00087 00088 #endif // __mlCorrelation_H 00089 00090