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
//--------------------------------------------------
34
class
MLKERNELEXPORT
RobertsFilter
:
public
KernelModule
{
35
36
public
:
37
38
//-------------------------------------------------------------------
40
//-------------------------------------------------------------------
41
enum
RCrossOperators
{
42
RCROSS_ONE_DIRECTION_X = 0,
43
RCROSS_ONE_DIRECTION_Y
,
44
RCROSS_NORMAL
,
45
RCROSS_ABS
,
46
RCROSS_SQUARE
,
47
RCROSS_6_ABS
,
48
RCROSS_6_SQUARE
,
49
50
NUM_RCROSS_OPERATORS
51
};
52
53
//-------------------------------------------------------------------------------------------
55
//-------------------------------------------------------------------------------------------
56
static
const
char
*
const
RCrossOperatorNames[];
57
58
59
//-------------------------------------------------------------------
72
//-------------------------------------------------------------------
73
RobertsFilter
();
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
120
ML_MODULE_CLASS_HEADER
(
RobertsFilter
);
121
};
122
123
ML_END_NAMESPACE
124
125
#endif
//of __mlRobertsFilter_H
126
127
ml::EnumField
Field to encapsulate an enumerated value.
Definition:
mlFields.h:173
ml::Field
Base class for all fields used in the ML.
Definition:
mlField.h:73
ml::KernelModule
The typically used convenience class to apply a kernel to an image.
Definition:
mlKernelModule.h:37
ml::PagedImage
The class PagedImage, representing a fragmented image that manages properties and data of an image lo...
Definition:
mlPagedImage.h:66
ml::RobertsFilter
Class to apply a kernel based roberts filtering to an image.
Definition:
mlRobertsFilter.h:34
ml::RobertsFilter::calculateOutputImageProperties
void calculateOutputImageProperties(int outputIndex, PagedImage *outputImage) override
Computes the output image properties from the input image properties.
ml::RobertsFilter::handleNotification
void handleNotification(Field *field) override
Called when a parameter field is changed.
ml::RobertsFilter::getWhichRobertsOperatorFld
EnumField * getWhichRobertsOperatorFld()
Enum field to select between different roberts cross kernels operators.
Definition:
mlRobertsFilter.h:76
ml::RobertsFilter::RCrossOperators
RCrossOperators
Modes which Roberts Cross operator should be used.
Definition:
mlRobertsFilter.h:41
ml::RobertsFilter::RCROSS_ONE_DIRECTION_Y
@ RCROSS_ONE_DIRECTION_Y
Definition:
mlRobertsFilter.h:43
ml::RobertsFilter::RCROSS_ABS
@ RCROSS_ABS
Definition:
mlRobertsFilter.h:45
ml::RobertsFilter::RCROSS_6_SQUARE
@ RCROSS_6_SQUARE
Definition:
mlRobertsFilter.h:48
ml::RobertsFilter::RCROSS_6_ABS
@ RCROSS_6_ABS
Definition:
mlRobertsFilter.h:47
ml::RobertsFilter::RCROSS_NORMAL
@ RCROSS_NORMAL
Definition:
mlRobertsFilter.h:44
ml::RobertsFilter::RCROSS_SQUARE
@ RCROSS_SQUARE
Definition:
mlRobertsFilter.h:46
ml::RobertsFilter::RobertsFilter
RobertsFilter()
Constructor.
ml::TImageVector< MLint >
ML_MODULE_CLASS_HEADER
#define ML_MODULE_CLASS_HEADER(className)
Similar to ML_CLASS_HEADER for the usage of derived classes from Module.
Definition:
mlRuntimeSubClass.h:235
mlInitSystemKernel.h
MLKERNELEXPORT
#define MLKERNELEXPORT
Includes files used in many parts of the dll, defined dll-specific macros and controls any system dep...
Definition:
mlInitSystemKernel.h:42
CALC_ROW_H
#define CALC_ROW_H()
This file contains macros CALC_ROW_H() and CALC_ROW_CPP() used in classes derived from KernelBaseOp a...
Definition:
mlKernelMacros.h:34
mlKernelModule.h
mlKernel.h
MLsoffset
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:562
ml::KernelDataType
MLdouble KernelDataType
Define the standard data type for kernel elements to be used in this library.
Definition:
mlKernel.h:2180
MeVisLab
Standard
Sources
ML
MLKernel
mlRobertsFilter.h
Generated by
1.9.1