MeVisLab Toolbox Reference
mlSigmaFilter.h
Go to the documentation of this file.
1 /*************************************************************************************
2 **
3 ** Copyright 2007, MeVis Medical Solutions AG
4 **
5 ** The user may use this file in accordance with the license agreement provided with
6 ** the Software or, alternatively, in accordance with the terms contained in a
7 ** written agreement between the user and MeVis Medical Solutions AG.
8 **
9 ** For further information use the contact form at https://www.mevislab.de/contact
10 **
11 **************************************************************************************/
12 
13 
15 
16 #if !defined(__mlSigmaFilter_H)
17 #define __mlSigmaFilter_H
19 
20 #include "mlKernelModule.h"
21 
22 // ML-includes
23 // Include dll-specific settings.
24 #include "mlInitSystemKernel.h"
25 
26 // Include module programming stuff from ML
27 #include <mlModuleIncludes.h>
28 
29 ML_START_NAMESPACE
30 
33 
34 public:
35 
36  //-------------------------------------------------------------------
54  //-------------------------------------------------------------------
56 
57  inline DoubleField &getSigmaFld() const { return *_sigmaFld; }
58 
59  inline DoubleField &getStdDevMaxFld() const { return *_stdDevMaxFld; }
60 
61  inline BoolField &getMultSigmaWithLocalStdDevFld() const { return *_multSigmaWithLocalStdDevFld; }
62 
63 protected:
64 
66  void calculateOutputImageProperties(int outputIndex, PagedImage* outputImage) override;
67 
69  void handleNotification(Field* field) override;
70 
72  void activateAttachments() override;
73 
80 
83  template <typename DATATYPE>
84  void calcRow(MLsoffset *indexTab,
85  size_t indexTabSize,
86  MLsoffset srcVoxelOffset,
87  size_t numVox,
88  DATATYPE *inCursor,
89  DATATYPE *outCursor,
90  const ImageVector &/*rowStart*/);
91 
97 
98 private:
99 
101  DoubleField *_sigmaFld;
102 
105  DoubleField *_stdDevMaxFld;
106 
111  IntField* _minNumValidKernelVoxelsInIntervalFld;
112 
116  BoolField* _multSigmaWithLocalStdDevFld;
117 
120  BoolField* _useMedianAsReferenceFld;
121 
124  BoolField* _useTriangleWeightingFld;
125 
126 };
127 
128 ML_END_NAMESPACE
129 
130 #endif //of __mlSigmaFilter_H
131 
Field to encapsulate a boolean value.
Definition: mlFields.h:62
Field to encapsulate a double value.
Definition: mlFields.h:806
Base class for all fields used in the ML.
Definition: mlField.h:73
Field to encapsulate an integer value.
Definition: mlFields.h:161
The typically used convenience class to apply a kernel to an image.
Class which represents an image, which manages properties of an image and image data which is located...
Definition: mlPagedImage.h:70
A sigma filter class.
Definition: mlSigmaFilter.h:32
void calcRow(MLsoffset *indexTab, size_t indexTabSize, MLsoffset srcVoxelOffset, size_t numVox, DATATYPE *inCursor, DATATYPE *outCursor, const ImageVector &)
In this virtual template method the filtering of one row needs to be implemented.
void handleNotification(Field *field) override
Handle field changes.
DoubleField & getStdDevMaxFld() const
Definition: mlSigmaFilter.h:59
CALC_ROW_H()
The implementation of the calculateOutputSubImage() method overloaded from Module is done in this mac...
DoubleField & getSigmaFld() const
Definition: mlSigmaFilter.h:57
BoolField & getMultSigmaWithLocalStdDevFld() const
Definition: mlSigmaFilter.h:61
void calculateOutputImageProperties(int outputIndex, PagedImage *outputImage) override
Computes the output image properties for output outIndex.
void activateAttachments() override
Update internal state after loading.
ML_MODULE_CLASS_HEADER(SigmaFilter)
Macro to declare methods/functions of the runtime system interface of this class.
SigmaFilter()
Constructor.
#define MLKERNELEXPORT
Includes files used in many parts of the dll, defined dll-specific macros and controls any system dep...
MLint MLsoffset
Signed ML offset type which is a 32 bit signed integer on 32 bit platforms and a 64 bit integer on 64...
Definition: mlTypeDefs.h:650