18#ifndef itkImplicitManifoldNormalVectorFilter_h
19#define itkImplicitManifoldNormalVectorFilter_h
72template <
typename TInputImage,
typename TSparseOutputImage>
93 static constexpr unsigned int ImageDimension = Superclass::ImageDimension;
96 using typename Superclass::InputImageType;
99 using typename Superclass::NodeValueType;
100 using typename Superclass::FiniteDifferenceFunctionType;
102 using typename Superclass::SparseOutputImageType;
104 using typename Superclass::NodeListType;
120 itkSetMacro(MaxIteration,
unsigned int);
121 itkGetConstMacro(MaxIteration,
unsigned int);
128 itkSetMacro(UnsharpMaskingFlag,
bool);
129 itkGetConstMacro(UnsharpMaskingFlag,
bool);
163 if (this->GetElapsedIterations() == m_MaxIteration)
179 return (data / (m_MinVectorNorm + data.GetNorm()));
193 unsigned int m_MaxIteration{};
203 bool m_UnsharpMaskingFlag{};
210 unsigned long m_Indicator[Self::ImageDimension]{};
211 unsigned int m_NumVertex{};
218#ifndef ITK_MANUAL_INSTANTIATION
219# include "itkImplicitManifoldNormalVectorFilter.hxx"
Const version of NeighborhoodIterator, defining iteration of a local N-dimensional neighborhood of pi...
typename ConstNeighborhoodIterator< TImageType >::RadiusType RadiusType
This class implements a multi-threaded base class for Image to SparseImage finite difference processe...
typename OutputNodeType::NodeValueType NodeValueType
This class implements the filter for computing the normal vectors from a scalar implicit function (i....
typename Superclass::NodeDataType NormalVectorType
void InitializeNormalBandNode(NormalBandNodeType *node, const InputImageIteratorType &it)
void Initialize() override
void CopyInputToOutput() override
typename FiniteDifferenceFunctionType::RadiusType RadiusType
ImplicitManifoldNormalVectorFilter()
typename Superclass::OutputNodeType NormalBandNodeType
NormalVectorType DataConstraint(const NormalVectorType &data) const override
void SetNormalFunction(NormalFunctionType *nf)
void PostProcessOutput() override
~ImplicitManifoldNormalVectorFilter() override=default
void PrintSelf(std::ostream &os, Indent indent) const override
Control indentation during Print() invocation.
Light weight base class for most itk classes.
This class defines the common functionality for Sparse Image neighborhoods of unit vectors.
ImageBaseType::IndexType IndexType
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....