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 //-------------------------------------------------------------------
42 RCROSS_ONE_DIRECTION_X = 0,
49
50 NUM_RCROSS_OPERATORS
51 };
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
Field to encapsulate an enumerated value.
Definition mlFields.h:173
Base class for all fields used in the ML.
Definition mlField.h:73
The typically used convenience class to apply a kernel to an image.
The class PagedImage, representing a fragmented image that manages properties and data of an image lo...
Class to apply a kernel based roberts filtering to an image.
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.
EnumField * getWhichRobertsOperatorFld()
Enum field to select between different roberts cross kernels operators.
RobertsFilter()
Constructor.
#define ML_MODULE_CLASS_HEADER(className)
Similar to ML_CLASS_HEADER for the usage of derived classes from Module.
#define MLKERNELEXPORT
Includes files used in many parts of the dll, defined dll-specific macros and controls any system dep...
#define CALC_ROW_H()
This file contains macros CALC_ROW_H() and CALC_ROW_CPP() used in classes derived from KernelBaseOp a...
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