18#ifndef itkNormalVectorDiffusionFunction_h
19#define itkNormalVectorDiffusionFunction_h
59template <
typename TSparseImageType>
75 static constexpr unsigned int ImageDimension = Superclass::ImageDimension;
87 using typename Superclass::SparseImageType;
88 using typename Superclass::NodeType;
89 using typename Superclass::NodeValueType;
90 using typename Superclass::NormalVectorType;
99 m_NormalProcessType = npt;
106 return m_NormalProcessType;
117 m_ConductanceParameter = cp +
static_cast<NodeValueType>(0.001);
120 m_FluxStopConstant =
static_cast<NodeValueType>(-1.0 / (m_ConductanceParameter * m_ConductanceParameter));
128 return m_ConductanceParameter;
135 return m_FluxStopConstant;
167 return static_cast<NodeValueType>(std::exp(m_FluxStopConstant * v));
181 int m_NormalProcessType{};
185#ifndef ITK_MANUAL_INSTANTIATION
186# include "itkNormalVectorDiffusionFunction.hxx"
Const version of NeighborhoodIterator, defining iteration of a local N-dimensional neighborhood of pi...
typename ConstNeighborhoodIterator< TSparseImageType >::RadiusType RadiusType
Control indentation during Print() invocation.
Light weight base class for most itk classes.
This class defines all the necessary functionality for performing isotropic and anisotropic diffusion...
void SetConductanceParameter(NodeValueType cp)
NodeValueType FluxStopFunction(const NodeValueType v) const
NormalVectorType ComputeSparseUpdate(NeighborhoodType &it, void *globalData, const FloatOffsetType &offset) const override
NodeValueType GetConductanceParameter() const
~NormalVectorDiffusionFunction() override=default
void SetNormalProcessType(int npt)
int GetNormalProcessType() const
void PrecomputeSparseUpdate(NeighborhoodType &it) const override
NormalVectorDiffusionFunction()
NodeValueType GetFluxStopConstant() const
void PrintSelf(std::ostream &os, Indent indent) const override
This class defines the common functionality for Sparse Image neighborhoods of unit vectors.
typename NodeType::NodeValueType NodeValueType
typename NodeType::NodeDataType NormalVectorType
A templated class holding a n-Dimensional vector.
ImageBaseType::IndexType IndexType
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....