18#ifndef itkSparseFieldFourthOrderLevelSetImageFilter_h
19#define itkSparseFieldFourthOrderLevelSetImageFilter_h
37template <
typename TImageType>
49 using IndexType =
typename LevelSetImageType::IndexType;
153template <
typename TInputImage,
typename TOutputImage>
206 itkGetConstReferenceMacro(MaxRefitIteration,
unsigned int);
207 itkSetMacro(MaxRefitIteration,
unsigned int);
208 itkGetConstReferenceMacro(MaxNormalIteration,
unsigned int);
209 itkSetMacro(MaxNormalIteration,
unsigned int);
210 itkGetConstReferenceMacro(CurvatureBandWidth,
ValueType);
212 itkGetConstReferenceMacro(RMSChangeNormalProcessTrigger,
ValueType);
214 itkGetConstReferenceMacro(NormalProcessType,
int);
215 itkSetMacro(NormalProcessType,
int);
216 itkGetConstReferenceMacro(NormalProcessConductance,
ValueType);
218 itkSetMacro(NormalProcessUnsharpFlag,
bool);
219 itkGetConstReferenceMacro(NormalProcessUnsharpFlag,
bool);
220 itkBooleanMacro(NormalProcessUnsharpFlag);
222 itkGetConstReferenceMacro(NormalProcessUnsharpWeight,
ValueType);
362#ifndef ITK_MANUAL_INSTANTIATION
363# include "itkSparseFieldFourthOrderLevelSetImageFilter.hxx"
virtual void InitializeIteration()
virtual const double & GetRMSChange() const
virtual const IdentifierType & GetElapsedIterations() const
This class implements the filter for computing the normal vectors from a scalar implicit function (i....
Control indentation during Print() invocation.
This class extends the LevelSetFunction class by adding a grow term based on a target curvature store...
Defines iteration of a local N-dimensional neighborhood of pixels across an itk::Image.
This is a data storage class that can is used as the node type for the SparseImage class.
NodeDataType m_Flux[OutputImageType::ImageDimension]
NormalBandNode * Previous
Vector< NodeValueType, TImageType::ImageDimension > NodeDataType
NodeDataType m_ManifoldNormal[OutputImageType::ImageDimension]
TImageType LevelSetImageType
NodeValueType m_Curvature
typename LevelSetImageType::PixelType NodeValueType
typename LevelSetImageType::IndexType IndexType
This class defines all the necessary functionality for performing isotropic and anisotropic diffusion...
virtual void Modified() const
Implements transparent reference counting.
void PrintSelf(std::ostream &os, Indent indent) const override
NormalBandNode< OutputImageType > NodeType
~SparseFieldFourthOrderLevelSetImageFilter() override=default
SmartPointer< const Self > ConstPointer
ValueType m_NormalProcessUnsharpWeight
typename NodeType::NodeDataType NormalVectorType
NeighborhoodIterator< SparseImageType > SparseImageIteratorType
TOutputImage OutputImageType
unsigned int m_RefitIteration
unsigned int m_MaxNormalIteration
ValueType m_NormalProcessConductance
void SetLevelSetFunction(LevelSetFunctionType *lsf)
ValueType ComputeCurvatureFromSparseImageNeighborhood(SparseImageIteratorType &it) const
ValueType m_CurvatureBandWidth
bool ActiveLayerCheckBand() const
void InitializeIteration() override
ValueType m_RMSChangeNormalProcessTrigger
void SetNumberOfLayers(const unsigned int n) override
SmartPointer< Self > Pointer
unsigned int m_MaxRefitIteration
static const ValueType m_DimConst
static const SizeValueType m_NumVertex
SparseImage< NodeType, Self::ImageDimension > SparseImageType
static constexpr unsigned int ImageDimension
unsigned int GetMinimumNumberOfLayers() const
LevelSetFunctionType * m_LevelSetFunction
SparseFieldLevelSetImageFilter< TInputImage, TOutputImage > Superclass
SparseFieldFourthOrderLevelSetImageFilter Self
ImplicitManifoldNormalVectorFilter< OutputImageType, SparseImageType > NormalVectorFilterType
bool m_NormalProcessUnsharpFlag
void ComputeCurvatureTarget(const OutputImageType *distanceImage, SparseImageType *sparseImage) const
typename OutputImageType::ValueType ValueType
LevelSetFunctionWithRefitTerm< OutputImageType, SparseImageType > LevelSetFunctionType
NormalVectorDiffusionFunction< SparseImageType > NormalVectorFunctionType
SparseFieldFourthOrderLevelSetImageFilter()
SparseFieldLevelSetImageFilter()
typename OutputImageType::IndexType IndexType
virtual void SetNumberOfLayers(unsigned int _arg)
TOutputImage OutputImageType
typename FiniteDifferenceFunctionType::NeighborhoodScalesType NeighborhoodScalesType
static constexpr unsigned int ImageDimension
virtual unsigned int GetNumberOfLayers() const
SparseFieldLayer< LayerNodeType > LayerType
typename FiniteDifferenceFunctionType::RadiusType RadiusType
typename OutputImageType::ValueType ValueType
A storage type for sparse image data.
A templated class holding a n-Dimensional vector.
#define itkConceptMacro(name, concept)
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
unsigned long SizeValueType