MeVisLabToolboxReference
MeVisLab/Standard/Sources/ML/MLKernel/mlCorrelation.h
Go to the documentation of this file.
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