18 #ifndef itkCurvatureFlowFunction_h
19 #define itkCurvatureFlowFunction_h
42 template<
typename TImage >
74 static constexpr
unsigned int ImageDimension = Superclass::ImageDimension;
86 TimeStepType ComputeGlobalTimeStep(
void *GlobalData)
const override;
95 auto * ans =
new GlobalDataStruct();
106 {
delete (GlobalDataStruct *)GlobalData; }
114 {
return m_TimeStep; }
118 PixelType ComputeUpdate(
const NeighborhoodType & neighborhood,
120 const FloatOffsetType & offset = FloatOffsetType(0.0)
129 struct GlobalDataStruct {
135 ~GlobalDataStruct() =
default;
137 ScalarValueType m_MaxChange;
141 CurvatureFlowFunction();
142 ~CurvatureFlowFunction()
override =
default;
149 #ifndef ITK_MANUAL_INSTANTIATION
150 #include "itkCurvatureFlowFunction.hxx"
Light weight base class for most itk classes.
void * GetGlobalDataPointer() const override
Define numeric traits for std::vector.
typename Superclass::NeighborhoodType NeighborhoodType
typename Superclass::TimeStepType TimeStepType
Const version of NeighborhoodIterator, defining iteration of a local N-dimensional neighborhood of pi...
typename Superclass::ImageType ImageType
typename ImageType::PixelType PixelType
typename Superclass::PixelRealType PixelRealType
typename ConstNeighborhoodIterator< TImage >::RadiusType RadiusType
typename Superclass::RadiusType RadiusType
A templated class holding a n-Dimensional vector.
void SetTimeStep(const TimeStepType &t)
typename Superclass::FloatOffsetType FloatOffsetType
void ReleaseGlobalDataPointer(void *GlobalData) const override
This class encapsulate the finite difference equation which drives a curvature flow denoising algorit...
const TimeStepType & GetTimeStep() const
typename Superclass::PixelType PixelType
PixelType ScalarValueType
typename Superclass::NeighborhoodScalesType NeighborhoodScalesType