18 #ifndef itkImplicitManifoldNormalVectorFilter_h
19 #define itkImplicitManifoldNormalVectorFilter_h
72 template<
typename TInputImage,
typename TSparseOutputImage >
95 itkStaticConstMacro(ImageDimension,
unsigned int, Superclass::ImageDimension);
102 typedef typename Superclass::FiniteDifferenceFunctionType
117 typedef typename FiniteDifferenceFunctionType::RadiusType
RadiusType;
122 itkSetMacro(MaxIteration,
unsigned int);
123 itkGetConstMacro(MaxIteration,
unsigned int);
130 itkSetMacro(UnsharpMaskingFlag,
bool);
131 itkGetConstMacro(UnsharpMaskingFlag,
bool);
138 void PrintSelf(std::ostream & os,
Indent indent)
const ITK_OVERRIDE;
141 virtual void Initialize() ITK_OVERRIDE;
144 void SetNormalBand();
148 void InitializeNormalBandNode(NormalBandNodeType *node,
149 const InputImageIteratorType & it);
153 virtual
void CopyInputToOutput() ITK_OVERRIDE {}
157 virtual bool Halt() ITK_OVERRIDE
159 if ( this->GetElapsedIterations() == m_MaxIteration )
174 return ( data / ( m_MinVectorNorm + data.GetNorm() ) );
180 virtual void PostProcessOutput() ITK_OVERRIDE;
189 unsigned int m_MaxIteration;
199 bool m_UnsharpMaskingFlag;
206 unsigned long m_Indicator[itkGetStaticConstMacro(ImageDimension)];
207 unsigned int m_NumVertex;
214 #ifndef ITK_MANUAL_INSTANTIATION
215 #include "itkImplicitManifoldNormalVectorFilter.hxx"
Superclass::NodeDataType NormalVectorType
Light weight base class for most itk classes.
ConstNeighborhoodIterator< InputImageType > InputImageIteratorType
Superclass::NodeListType NodeListType
This class defines the common functionality for Sparse Image neighborhoods of unit vectors...
This class implements the filter for computing the normal vectors from a scalar implicit function (i...
FiniteDifferenceSparseImageFilter< TInputImage, TSparseOutputImage > Superclass
NormalVectorFunctionBase< SparseOutputImageType > NormalFunctionType
Superclass::NodeValueType NodeValueType
Const version of NeighborhoodIterator, defining iteration of a local N-dimensional neighborhood of pi...
Superclass::FiniteDifferenceFunctionType FiniteDifferenceFunctionType
FiniteDifferenceFunctionType::RadiusType RadiusType
virtual NormalVectorType DataConstraint(const NormalVectorType &data) const override
Superclass::InputImageType InputImageType
Superclass::SparseOutputImageType SparseOutputImageType
SmartPointer< Self > Pointer
This class implements a multi-threaded base class for Image to SparseImage finite difference processe...
SmartPointer< const Self > ConstPointer
virtual bool Halt() override
Control indentation during Print() invocation.
Superclass::OutputNodeType NormalBandNodeType
ImplicitManifoldNormalVectorFilter Self
~ImplicitManifoldNormalVectorFilter() override
Superclass::IndexType IndexType
ImageBaseType::IndexType IndexType