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)
271 itkSetMacro(ReverseExpansionDirection,
bool);
272 itkGetConstMacro(ReverseExpansionDirection,
bool);
273 itkBooleanMacro(ReverseExpansionDirection);
283 if (v != m_SegmentationFunction->GetPropagationWeight())
285 this->SetPropagationScaling(v);
287 if (v != m_SegmentationFunction->GetAdvectionWeight())
289 this->SetAdvectionScaling(v);
301 m_SegmentationFunction->SetPropagationWeight(v);
309 return m_SegmentationFunction->GetPropagationWeight();
319 m_SegmentationFunction->SetAdvectionWeight(v);
327 return m_SegmentationFunction->GetAdvectionWeight();
339 m_SegmentationFunction->SetCurvatureWeight(v);
347 return m_SegmentationFunction->GetCurvatureWeight();
353 SetSegmentationFunction(SegmentationFunctionType * s);
355 virtual SegmentationFunctionType *
358 return m_SegmentationFunction;
366 itkWarningMacro(
"SetMaximumIterations is deprecated. Please use SetNumberOfIterations instead.");
367 this->SetNumberOfIterations(i);
374 itkWarningMacro(
"GetMaximumIterations is deprecated. Please use GetNumberOfIterations instead.");
375 return this->GetNumberOfIterations();
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.");
385 #ifdef ITK_USE_CONCEPT_CHECKING
396 PrintSelf(std::ostream & os,
Indent indent)
const override;
403 Superclass::InitializeIteration();
405 this->UpdateProgress(static_cast<float>(this->GetElapsedIterations()) /
406 static_cast<float>(this->GetNumberOfIterations()));
414 CreateNarrowBand()
override;
419 GenerateData()
override;
423 bool m_ReverseExpansionDirection{};
440 #ifndef ITK_MANUAL_INSTANTIATION
441 # include "itkNarrowBandLevelSetImageFilter.hxx"