MeVisLab Toolbox Reference
mlRobertsFilter.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(__mlRobertsFilter_H)
17#define __mlRobertsFilter_H
18
19// ML-includes
20#include "mlInitSystemKernel.h"
21#include "mlKernel.h"
22#include "mlKernelModule.h"
23
24ML_START_NAMESPACE
25
26 //--------------------------------------------------
33 //--------------------------------------------------
35
36 public:
37
38 //-------------------------------------------------------------------
40 //-------------------------------------------------------------------
52
53 //-------------------------------------------------------------------------------------------
55 //-------------------------------------------------------------------------------------------
56 static const char* const RCrossOperatorNames[];
57
58
59 //-------------------------------------------------------------------
72 //-------------------------------------------------------------------
74
76 EnumField *getWhichRobertsOperatorFld() { return _whichRobertsOperatorFld; }
77
78 protected:
80 void handleNotification(Field* field) override;
81
83 void calculateOutputImageProperties(int outputIndex, PagedImage* outputImage) override;
84
85 private:
86
89 static KernelDataType _X[4];
90 static KernelDataType _Y[4];
91 static KernelDataType _RobertsCrossNormal[4];
92 static KernelDataType _IndexKernel[4];
94
96 EnumField *_whichRobertsOperatorFld;
97
103 CALC_ROW_H();
104
107 template <typename DATATYPE>
108 void calcRow(MLsoffset *indexTab,
109 size_t indexTabSize,
110 MLsoffset srcVoxelOffset,
111 size_t numVox,
112 DATATYPE *inCursor,
113 DATATYPE *outCursor,
114 const ImageVector &/*rowStart*/);
115
121 };
122
123ML_END_NAMESPACE
124
125#endif //of __mlRobertsFilter_H
126
127
KernelModule(int inputNum=1, int outputNum=1)
void calculateOutputImageProperties(int outputIndex, PagedImage *outputImage) override
Computes the output image properties from the input image properties.
void handleNotification(Field *field) override
Called when a parameter field is changed.
RCrossOperators
Modes which Roberts Cross operator should be used.
static const char *const RCrossOperatorNames[]
Strings for operator names.
EnumField * getWhichRobertsOperatorFld()
Enum field to select between different roberts cross kernels operators.
#define ML_MODULE_CLASS_HEADER(className)
#define MLKERNELEXPORT
#define CALC_ROW_H()
MLint MLsoffset
Signed ML offset type that is a 32-bit signed integer on 32-bit platforms and a 64-bit integer on 64-...
Definition mlTypeDefs.h:561
MLdouble KernelDataType
Define the standard data type for kernel elements to be used in this library.
Definition mlKernel.h:2180
TImageVector< MLint > ImageVector
Defines the standard ImageVector type that is used by the ML for indexing and coordinates.