Orfeo Toolbox
3.16
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
OTB
Utilities
ITK
Code
Algorithms
itkMinMaxCurvatureFlowFunction.h
Go to the documentation of this file.
1
/*=========================================================================
2
3
Program: Insight Segmentation & Registration Toolkit
4
Module: $RCSfile: itkMinMaxCurvatureFlowFunction.h,v $
5
Language: C++
6
Date: $Date: 2009-01-24 20:03:00 $
7
Version: $Revision: 1.16 $
8
9
Copyright (c) Insight Software Consortium. All rights reserved.
10
See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
11
12
This software is distributed WITHOUT ANY WARRANTY; without even
13
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14
PURPOSE. See the above copyright notices for more information.
15
16
=========================================================================*/
17
#ifndef __itkMinMaxCurvatureFlowFunction_h
18
#define __itkMinMaxCurvatureFlowFunction_h
19
20
#include "
itkCurvatureFlowFunction.h
"
21
#include "
itkMacro.h
"
22
#include "
itkNeighborhoodOperator.h
"
23
24
namespace
itk {
25
40
template
<
class
TImage>
41
class
ITK_EXPORT
MinMaxCurvatureFlowFunction
:
42
public
CurvatureFlowFunction
<TImage>
43
{
44
public
:
46
typedef
MinMaxCurvatureFlowFunction
Self
;
47
typedef
CurvatureFlowFunction<TImage>
Superclass
;
48
typedef
SmartPointer<Self>
Pointer
;
49
typedef
SmartPointer<const Self>
ConstPointer
;
50
52
itkNewMacro(
Self
);
53
55
itkTypeMacro(
MinMaxCurvatureFlowFunction
,
56
CurvatureFlowFunction
);
57
59
typedef
typename
Superclass::ImageType
ImageType
;
60
typedef
typename
Superclass::PixelType
PixelType
;
61
typedef
typename
Superclass::RadiusType
RadiusType
;
62
typedef
typename
Superclass::NeighborhoodType
NeighborhoodType
;
63
typedef
typename
Superclass::FloatOffsetType
FloatOffsetType
;
64
66
itkStaticConstMacro(ImageDimension,
unsigned
int
,
67
Superclass::ImageDimension);
68
70
typedef
typename
RadiusType::SizeValueType
RadiusValueType
;
71
73
void
SetStencilRadius(
const
RadiusValueType
radius );
74
const
RadiusValueType
&GetRadiusValueType()
const
75
{
return
m_StencilRadius; }
76
79
virtual
PixelType ComputeUpdate(
const
NeighborhoodType &neighborhood,
80
void
* globalData,
81
const
FloatOffsetType& offset = FloatOffsetType(0.0)
82
);
83
84
protected
:
85
MinMaxCurvatureFlowFunction
();
86
~MinMaxCurvatureFlowFunction
() {}
87
88
typedef
Neighborhood<PixelType,itkGetStaticConstMacro(ImageDimension)>
StencilOperatorType
;
89
StencilOperatorType
m_StencilOperator
;
90
93
void
InitializeStencilOperator();
94
95
96
private
:
97
MinMaxCurvatureFlowFunction
(
const
Self
&);
//purposely not implemented
98
void
operator=(
const
Self
&);
//purposely not implemented
99
100
RadiusValueType
m_StencilRadius
;
101
102
// To control overloaded versions of ComputeThreshold
103
struct
DispatchBase
{};
104
template
<
signed
int
VDimension>
105
struct
Dispatch
:
DispatchBase
{};
106
109
virtual
PixelType
ComputeThreshold(
const
Dispatch<2>
&,
110
const
NeighborhoodType
& neighborhood )
const
;
111
virtual
PixelType
ComputeThreshold(
const
Dispatch<3>
&,
112
const
NeighborhoodType
& neighborhood )
const
;
113
virtual
PixelType
ComputeThreshold(
const
DispatchBase
&,
114
const
NeighborhoodType
& neighborhood )
const
;
115
};
116
117
}
// end namespace itk
118
119
#ifndef ITK_MANUAL_INSTANTIATION
120
#include "
itkMinMaxCurvatureFlowFunction.txx
"
121
#endif
122
123
#endif
Generated at Sat Feb 2 2013 23:52:51 for
Orfeo Toolbox
with
doxygen 1.8.1.1