18 #ifndef itkSparseFieldFourthOrderLevelSetImageFilter_h
19 #define itkSparseFieldFourthOrderLevelSetImageFilter_h
37 template<
typename TImageType >
49 typedef typename LevelSetImageType::IndexType
IndexType;
53 TImageType ::ImageDimension >
156 template<
typename TInputImage,
typename TOutputImage >
212 itkGetConstReferenceMacro(MaxRefitIteration,
unsigned int);
213 itkSetMacro(MaxRefitIteration,
unsigned int);
214 itkGetConstReferenceMacro(MaxNormalIteration,
unsigned int);
215 itkSetMacro(MaxNormalIteration,
unsigned int);
216 itkGetConstReferenceMacro(CurvatureBandWidth,
ValueType);
217 itkSetMacro(CurvatureBandWidth,
ValueType);
218 itkGetConstReferenceMacro(RMSChangeNormalProcessTrigger,
ValueType);
219 itkSetMacro(RMSChangeNormalProcessTrigger,
ValueType);
220 itkGetConstReferenceMacro(NormalProcessType,
int);
221 itkSetMacro(NormalProcessType,
int);
222 itkGetConstReferenceMacro(NormalProcessConductance,
ValueType);
223 itkSetMacro(NormalProcessConductance,
ValueType);
224 itkSetMacro(NormalProcessUnsharpFlag,
bool);
225 itkGetConstReferenceMacro(NormalProcessUnsharpFlag,
bool);
226 itkSetMacro(NormalProcessUnsharpWeight,
ValueType);
227 itkGetConstReferenceMacro(NormalProcessUnsharpWeight,
ValueType);
282 #ifdef ITK_USE_CONCEPT_CHECKING
292 virtual void PrintSelf(std::ostream & os,
Indent indent)
const ITK_OVERRIDE;
373 #ifndef ITK_MANUAL_INSTANTIATION
374 #include "itkSparseFieldFourthOrderLevelSetImageFilter.hxx"
Vector< NodeValueType, TImageType::ImageDimension > NodeDataType
void SetLevelSetFunction(LevelSetFunctionType *lsf)
ImplicitManifoldNormalVectorFilter< OutputImageType, SparseImageType > NormalVectorFilterType
Superclass::IndexType IndexType
Superclass::LayerType LayerType
void ComputeCurvatureTarget(const OutputImageType *distanceImage, SparseImageType *sparseImage) const
SparseFieldLevelSetImageFilter< TInputImage, TOutputImage > Superclass
NeighborhoodIterator< SparseImageType > SparseImageIteratorType
virtual void PrintSelf(std::ostream &os, Indent indent) const override
NodeType::NodeDataType NormalVectorType
NormalBandNode< OutputImageType > NodeType
SmartPointer< Self > Pointer
LevelSetFunctionType * m_LevelSetFunction
Superclass::OutputImageType OutputImageType
unsigned int m_MaxNormalIteration
ValueType m_CurvatureBandWidth
This class implements the filter for computing the normal vectors from a scalar implicit function (i...
Superclass::RadiusType RadiusType
TImageType LevelSetImageType
Superclass::RadiusType RadiusType
SparseImage< NodeType, itkGetStaticConstMacro(ImageDimension) > SparseImageType
Base class for all process objects that output image data.
ValueType ComputeCurvatureFromSparseImageNeighborhood(SparseImageIteratorType &neighborhood) const
OutputImageType::ValueType ValueType
ValueType m_NormalProcessConductance
unsigned long SizeValueType
virtual void SetNumberOfLayers(unsigned int _arg)
This class implements a finite difference partial differential equation solver for evolving surfaces ...
NodeDataType m_Flux[TImageType::ImageDimension]
LevelSetImageType::IndexType IndexType
A storage type for sparse image data.
Superclass::NeighborhoodScalesType NeighborhoodScalesType
This is a data storage class that can is used as the node type for the SparseImage class...
static const unsigned int ImageDimension
This class implements the fourth order level set PDE framework.
NormalVectorDiffusionFunction< SparseImageType > NormalVectorFunctionType
This class defines all the necessary functionality for performing isotropic and anisotropic diffusion...
virtual unsigned int GetNumberOfLayers() const
virtual void InitializeIteration()
A templated class holding a n-Dimensional vector.
static const unsigned int ImageDimension
TOutputImage OutputImageType
Superclass::ValueType ValueType
bool m_NormalProcessUnsharpFlag
LevelSetImageType::PixelType NodeValueType
OutputImageType::IndexType IndexType
virtual void Modified() const
bool ActiveLayerCheckBand() const
Superclass::NeighborhoodScalesType NeighborhoodScalesType
void operator=(const Self &)
SmartPointer< const Self > ConstPointer
SparseFieldFourthOrderLevelSetImageFilter()
NodeDataType m_ManifoldNormal[TImageType::ImageDimension]
LevelSetFunctionWithRefitTerm< OutputImageType, SparseImageType > LevelSetFunctionType
static const ValueType m_DimConst
unsigned int m_RefitIteration
~SparseFieldFourthOrderLevelSetImageFilter()
virtual void SetNumberOfLayers(const unsigned int n) override
This class extends the LevelSetFunction class by adding a grow term based on a target curvature store...
Control indentation during Print() invocation.
unsigned int m_MaxRefitIteration
unsigned int GetMinimumNumberOfLayers() const
static const SizeValueType m_NumVertex
ValueType m_NormalProcessUnsharpWeight
SparseFieldFourthOrderLevelSetImageFilter Self
virtual void InitializeIteration() override
NormalBandNode * Previous
virtual const IdentifierType & GetElapsedIterations() const
#define itkConceptMacro(name, concept)
SparseFieldLayer< LayerNodeType > LayerType
virtual const double & GetRMSChange() const
Defines iteration of a local N-dimensional neighborhood of pixels across an itk::Image.
NodeValueType m_Curvature
ValueType m_RMSChangeNormalProcessTrigger