18#ifndef itkLevelSetFunction_h
19#define itkLevelSetFunction_h
22#include "vnl/vnl_matrix_fixed.h"
61template <
typename TImageType>
109 vnl_matrix_fixed<ScalarValueType, Self::ImageDimension, Self::ImageDimension>
m_dxy;
129 virtual ScalarValueType
137 virtual ScalarValueType
145 virtual ScalarValueType
266 virtual ScalarValueType
388#ifndef ITK_MANUAL_INSTANTIATION
389# include "itkLevelSetFunction.hxx"
ConstNeighborhoodIterator< TImageType, DefaultBoundaryConditionType > NeighborhoodType
static constexpr unsigned int ImageDimension
Vector< float, Self::ImageDimension > FloatOffsetType
typename ImageType::PixelType PixelType
Vector< PixelRealType, Self::ImageDimension > NeighborhoodScalesType
typename ConstNeighborhoodIterator< TImageType >::RadiusType RadiusType
FiniteDifferenceFunction()
Simulate a standard C array with copy semantics.
Control indentation during Print() invocation.
virtual void Initialize(const RadiusType &r)
static double GetMaximumPropagationTimeStep()
ConstNeighborhoodIterator< TImageType, DefaultBoundaryConditionType > NeighborhoodType
virtual ScalarValueType ComputeMinimalCurvature(const NeighborhoodType &, const FloatOffsetType &, GlobalDataStruct *gd=0)
ScalarValueType GetAdvectionWeight() const
virtual ScalarValueType ComputeCurvatureTerm(const NeighborhoodType &, const FloatOffsetType &, GlobalDataStruct *gd=0)
SmartPointer< const Self > ConstPointer
FixedArray< ScalarValueType, Self::ImageDimension > VectorType
ScalarValueType GetLaplacianSmoothingWeight() const
virtual void SetAdvectionWeight(const ScalarValueType a)
bool m_UseMinimalCurvature
void ReleaseGlobalDataPointer(void *GlobalData) const override
void SetEpsilonMagnitude(const ScalarValueType e)
virtual VectorType AdvectionField(const NeighborhoodType &, const FloatOffsetType &, GlobalDataStruct *=0) const
virtual ScalarValueType PropagationSpeed(const NeighborhoodType &, const FloatOffsetType &, GlobalDataStruct *=0) const
virtual ScalarValueType CurvatureSpeed(const NeighborhoodType &, const FloatOffsetType &, GlobalDataStruct *=nullptr) const
~LevelSetFunction() override=default
static VectorType InitializeZeroVectorConstant()
static void SetMaximumPropagationTimeStep(double n)
std::slice x_slice[Self::ImageDimension]
PixelType ComputeUpdate(const NeighborhoodType &it, void *globalData, const FloatOffsetType &=FloatOffsetType(0.0)) override
OffsetValueType m_xStride[Self::ImageDimension]
static double GetMaximumCurvatureTimeStep()
ScalarValueType GetPropagationWeight() const
void UseMinimalCurvatureOn()
void UseMinimalCurvatureOff()
ScalarValueType m_PropagationWeight
virtual ScalarValueType LaplacianSmoothingSpeed(const NeighborhoodType &, const FloatOffsetType &, GlobalDataStruct *=0) const
void * GetGlobalDataPointer() const override
virtual ScalarValueType Compute3DMinimalCurvature(const NeighborhoodType &, const FloatOffsetType &, GlobalDataStruct *gd=0)
void SetLaplacianSmoothingWeight(const ScalarValueType c)
void PrintSelf(std::ostream &os, Indent indent) const override
TimeStepType ComputeGlobalTimeStep(void *GlobalData) const override
Vector< float, Self::ImageDimension > FloatOffsetType
ScalarValueType GetCurvatureWeight() const
typename ImageType::PixelType PixelType
static VectorType m_ZeroVectorConstant
static constexpr unsigned int ImageDimension
SmartPointer< Self > Pointer
ScalarValueType GetEpsilonMagnitude() const
virtual void SetPropagationWeight(const ScalarValueType p)
typename ConstNeighborhoodIterator< TImageType >::RadiusType RadiusType
FiniteDifferenceFunction< TImageType > Superclass
virtual ScalarValueType ComputeMeanCurvature(const NeighborhoodType &, const FloatOffsetType &, GlobalDataStruct *gd=0)
void SetUseMinimalCurvature(bool b)
bool GetUseMinimalCurvature() const
virtual void SetCurvatureWeight(const ScalarValueType c)
ScalarValueType m_CurvatureWeight
ScalarValueType m_AdvectionWeight
PixelType ScalarValueType
ScalarValueType m_LaplacianSmoothingWeight
static void SetMaximumCurvatureTimeStep(double n)
ScalarValueType m_EpsilonMagnitude
Implements transparent reference counting.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
ScalarValueType m_MaxAdvectionChange
vnl_matrix_fixed< ScalarValueType, Self::ImageDimension, Self::ImageDimension > m_dxy
ScalarValueType m_MaxPropagationChange
ScalarValueType m_GradMagSqr
ScalarValueType m_dx_backward[Self::ImageDimension]
ScalarValueType m_MaxCurvatureChange
ScalarValueType m_dx_forward[Self::ImageDimension]
ScalarValueType m_dx[Self::ImageDimension]