MeVisLabToolboxReference
MeVisLab/Standard/Sources/ML/MLKernel/mlSigmaFilter.h
Go to the documentation of this file.
00001 // **InsertLicense** code
00002 //-------------------------------------------------------------------------
00004 
00009 //-------------------------------------------------------------------------
00011 #if !defined(__mlSigmaFilter_H)
00012 #define __mlSigmaFilter_H
00013 
00014 
00015 #ifndef __mlKernelModule_H
00016 #include "mlKernelModule.h"
00017 #endif
00018 
00019 // ML-includes
00020 // Include dll-specific settings.
00021 #ifndef __mlInitSystemKernel_H
00022 #include "mlInitSystemKernel.h"
00023 #endif
00024 
00025 // Include module programming stuff from ML
00026 #ifndef __mlModuleIncludes_H
00027 #include <mlModuleIncludes.h> 
00028 #endif
00029 
00030 ML_START_NAMESPACE
00031 
00033 class MLKERNELEXPORT SigmaFilter : public KernelModule{
00034 
00035 public: 
00036 
00037   //-------------------------------------------------------------------
00055   //-------------------------------------------------------------------
00056   SigmaFilter();
00057 
00058   inline DoubleField &getSigmaFld() const { return *_sigmaFld;  }
00059 
00060   inline DoubleField &getStdDevMaxFld() const { return *_stdDevMaxFld;  }
00061 
00062   inline BoolField &getMultSigmaWithLocalStdDevFld() const { return *_multSigmaWithLocalStdDevFld; }
00063 
00064 protected:
00065 
00067   virtual void calculateOutputImageProperties(int outIndex);   
00068 
00070   virtual void handleNotification(Field* field);
00071 
00073   virtual void activateAttachments();
00074 
00080   CALC_ROW_H();
00081 
00084   template <typename DATATYPE>                                            
00085     void calcRow(MLsoffset    *indexTab,                   
00086                  size_t       indexTabSize,                          
00087                  MLsoffset    srcVoxelOffset,                        
00088                  size_t       numVox,                                
00089                  DATATYPE     *inCursor,                             
00090                  DATATYPE     *outCursor,
00091                  const ImageVector &/*rowStart*/);                          
00092 
00097   ML_MODULE_CLASS_HEADER(SigmaFilter);
00098 
00099 private:
00100 
00102   DoubleField *_sigmaFld;
00103 
00106   DoubleField *_stdDevMaxFld;
00107 
00112   IntField* _minNumValidKernelVoxelsInIntervalFld;
00113 
00117   BoolField* _multSigmaWithLocalStdDevFld;
00118 
00121   BoolField* _useMedianAsReferenceFld;
00122 
00125   BoolField* _useTriangleWeightingFld;
00126 
00127 };
00128 
00129 ML_END_NAMESPACE
00130  
00131 #endif //of __mlSigmaFilter_H
00132