MeVisLabToolboxReference
|
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