18 #ifndef itkNarrowBandLevelSetImageFilter_h
19 #define itkNarrowBandLevelSetImageFilter_h
143 template <
typename TInputImage,
144 typename TFeatureImage,
145 typename TOutputPixelType = float,
146 typename TOutputImage = Image<TOutputPixelType, TInputImage::ImageDimension>>
159 using typename Superclass::ValueType;
161 using typename Superclass::TimeStepType;
162 using typename Superclass::InputImageType;
183 m_SegmentationFunction->SetFeatureImage(f);
187 virtual FeatureImageType *
201 virtual const typename SegmentationFunctionType::ImageType *
204 return m_SegmentationFunction->GetSpeedImage();
207 virtual const typename SegmentationFunctionType::VectorImageType *
210 return m_SegmentationFunction->GetAdvectionImage();
220 <<
"SetUseNegativeFeaturesOn has been deprecated. Please use ReverseExpansionDirectionOn() instead");
221 this->ReverseExpansionDirectionOn();
229 <<
"SetUseNegativeFeaturesOff has been deprecated. Please use ReverseExpansionDirectionOff() instead");
230 this->ReverseExpansionDirectionOff();
238 itkWarningMacro(
"SetUseNegativeFeatures has been deprecated. Please use SetReverseExpansionDirection instead");
241 this->SetReverseExpansionDirection(
false);
245 this->SetReverseExpansionDirection(
true);
254 <<
"GetUseNegativeFeatures has been deprecated. Please use GetReverseExpansionDirection() instead");
255 if (this->GetReverseExpansionDirection() ==
false)
273 itkSetMacro(ReverseExpansionDirection,
bool);
274 itkGetConstMacro(ReverseExpansionDirection,
bool);
275 itkBooleanMacro(ReverseExpansionDirection);
285 if (v != m_SegmentationFunction->GetPropagationWeight())
287 this->SetPropagationScaling(v);
289 if (v != m_SegmentationFunction->GetAdvectionWeight())
291 this->SetAdvectionScaling(v);
303 m_SegmentationFunction->SetPropagationWeight(v);
311 return m_SegmentationFunction->GetPropagationWeight();
321 m_SegmentationFunction->SetAdvectionWeight(v);
329 return m_SegmentationFunction->GetAdvectionWeight();
341 m_SegmentationFunction->SetCurvatureWeight(v);
349 return m_SegmentationFunction->GetCurvatureWeight();
355 SetSegmentationFunction(SegmentationFunctionType * s);
357 virtual SegmentationFunctionType *
360 return m_SegmentationFunction;
368 itkWarningMacro(
"SetMaximumIterations is deprecated. Please use SetNumberOfIterations instead.");
369 this->SetNumberOfIterations(i);
376 itkWarningMacro(
"GetMaximumIterations is deprecated. Please use GetNumberOfIterations instead.");
377 return this->GetNumberOfIterations();
383 itkWarningMacro(
"The current implementation of this solver does not compute maximum RMS change. The maximum RMS "
384 "error value will not be set or used.");
387 #ifdef ITK_USE_CONCEPT_CHECKING
398 PrintSelf(std::ostream & os,
Indent indent)
const override;
405 Superclass::InitializeIteration();
407 this->UpdateProgress(static_cast<float>(this->GetElapsedIterations()) /
408 static_cast<float>(this->GetNumberOfIterations()));
416 CreateNarrowBand()
override;
421 GenerateData()
override;
425 bool m_ReverseExpansionDirection{};
442 #ifndef ITK_MANUAL_INSTANTIATION
443 # include "itkNarrowBandLevelSetImageFilter.hxx"