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 
24 ML_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 
123 ML_END_NAMESPACE
124 
125 #endif //of __mlRobertsFilter_H
126 
127 
Field to encapsulate an enumerated value.
Definition: mlFields.h:363
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.
Class which represents an image, which manages properties of an image and image data which is located...
Definition: mlPagedImage.h:70
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.
EnumField * getWhichRobertsOperatorFld()
Enum field to select between different roberts cross kernels operators.
RCrossOperators
Modes which Roberts Cross operator should be used.
RobertsFilter()
Constructor.
#define ML_MODULE_CLASS_HEADER(className)
Like 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 which is a 32 bit signed integer on 32 bit platforms and a 64 bit integer on 64...
Definition: mlTypeDefs.h:650
MLdouble KernelDataType
Define the standard data type for kernel elements to be used in this library.
Definition: mlKernel.h:2208