18#ifndef itkNarrowBandLevelSetImageFilter_h
19#define itkNarrowBandLevelSetImageFilter_h
143template <
typename TInputImage,
144 typename TFeatureImage,
145 typename TOutputPixelType = float,
187 virtual FeatureImageType *
201 virtual const typename SegmentationFunctionType::ImageType *
207 virtual const typename SegmentationFunctionType::VectorImageType *
220 <<
"SetUseNegativeFeaturesOn has been deprecated. Please use ReverseExpansionDirectionOn() instead");
229 <<
"SetUseNegativeFeaturesOff has been deprecated. Please use ReverseExpansionDirectionOff() instead");
238 itkWarningMacro(
"SetUseNegativeFeatures has been deprecated. Please use SetReverseExpansionDirection instead");
254 <<
"GetUseNegativeFeatures has been deprecated. Please use GetReverseExpansionDirection() instead");
271 itkSetMacro(ReverseExpansionDirection,
bool);
272 itkGetConstMacro(ReverseExpansionDirection,
bool);
273 itkBooleanMacro(ReverseExpansionDirection);
366 itkWarningMacro(
"SetMaximumIterations is deprecated. Please use SetNumberOfIterations instead.");
374 itkWarningMacro(
"GetMaximumIterations is deprecated. Please use GetNumberOfIterations instead.");
381 itkWarningMacro(
"The current implementation of this solver does not compute maximum RMS change. The maximum RMS "
382 "error value will not be set or used.");
436#ifndef ITK_MANUAL_INSTANTIATION
437# include "itkNarrowBandLevelSetImageFilter.hxx"
This class compute the signed (positive and negative) chamfer distance in a narrow band.
SmartPointer< Self > Pointer
virtual const IdentifierType & GetNumberOfIterations() const
virtual const IdentifierType & GetElapsedIterations() const
virtual void SetNumberOfIterations(IdentifierType _arg)
virtual void SetInput(const InputImageType *input)
Templated n-dimensional image class.
Control indentation during Print() invocation.
Compute an approximate distance from an interpolated isocontour to the close grid points.
SmartPointer< Self > Pointer
typename FiniteDifferenceFunctionType::TimeStepType TimeStepType
typename OutputImageType::IndexType IndexType
typename OutputImageType::ValueType ValueType
NarrowBandImageFilterBase()
TInputImage InputImageType
void InitializeIteration() override
TFeatureImage FeatureImageType
void CreateNarrowBand() override
virtual void SetFeatureImage(const FeatureImageType *f)
virtual void SetReverseExpansionDirection(bool _arg)
virtual const SegmentationFunctionType::ImageType * GetSpeedImage() const
bool m_ReverseExpansionDirection
virtual void SetInitialImage(InputImageType *f)
SmartPointer< const Self > ConstPointer
virtual bool GetReverseExpansionDirection() const
virtual void SetSegmentationFunction(SegmentationFunctionType *s)
NarrowBandLevelSetImageFilter Self
void PrintSelf(std::ostream &os, Indent indent) const override
SmartPointer< Self > Pointer
NarrowBandLevelSetImageFilter()
typename OutputImageType::ValueType ValueType
ValueType GetAdvectionScaling() const
void SetMaximumRMSError(const double) override
ValueType GetCurvatureScaling() const
void SetPropagationScaling(ValueType v)
void SetUseNegativeFeaturesOff()
bool GetUseNegativeFeatures() const
virtual const SegmentationFunctionType::VectorImageType * GetAdvectionImage() const
virtual SegmentationFunctionType * GetSegmentationFunction()
virtual void ReverseExpansionDirectionOn()
virtual void ReverseExpansionDirectionOff()
ValueType GetPropagationScaling() const
typename SegmentationFunctionType::VectorImageType VectorImageType
FastChamferDistanceImageFilter< OutputImageType, OutputImageType > ChamferFilterType
void SetAdvectionScaling(ValueType v)
void SetMaximumIterations(unsigned int i)
IsoContourDistanceImageFilter< OutputImageType, OutputImageType > IsoFilterType
ChamferFilterType::Pointer m_ChamferFilter
virtual FeatureImageType * GetFeatureImage()
void SetUseNegativeFeaturesOn()
TInputImage InputImageType
NarrowBandImageFilterBase< TInputImage, Image< TOutputPixelType, TInputImage::ImageDimension > > Superclass
Image< TOutputPixelType, TInputImage::ImageDimension > OutputImageType
void SetCurvatureScaling(ValueType v)
void SetUseNegativeFeatures(bool u)
void GenerateData() override
IsoFilterType::Pointer m_IsoFilter
void InitializeIteration() override
void SetFeatureScaling(ValueType v)
SegmentationLevelSetFunction< OutputImageType, FeatureImageType > SegmentationFunctionType
unsigned int GetMaximumIterations()
~NarrowBandLevelSetImageFilter() override=default
SegmentationFunctionType * m_SegmentationFunction
virtual void SetNthInput(DataObjectPointerArraySizeType idx, DataObject *input)
void UpdateProgress(float progress)
Update the progress of the process object.
DataObject * GetInput(const DataObjectIdentifierType &key)
Return an input.
Image< VectorType, Self::ImageDimension > VectorImageType
Implements transparent reference counting.
#define itkConceptMacro(name, concept)
bool NotExactlyEquals(const TInput1 &x1, const TInput2 &x2)
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....