18#ifndef itkLevelSetEvolution_h
19#define itkLevelSetEvolution_h
47template <
typename TEquationContainer,
typename TLevelSet>
51template <
typename TEquationContainer,
typename TImage>
71 using typename Superclass::EquationContainerType;
72 using typename Superclass::EquationContainerPointer;
73 using typename Superclass::TermContainerType;
74 using typename Superclass::TermContainerPointer;
76 using typename Superclass::TermType;
77 using typename Superclass::TermPointer;
79 using typename Superclass::InputImageType;
80 using typename Superclass::InputImagePixelType;
81 using typename Superclass::InputImageConstPointer;
82 using typename Superclass::InputImageRegionType;
83 using typename Superclass::InputPixelRealType;
85 static constexpr unsigned int ImageDimension = Superclass::ImageDimension;
87 using typename Superclass::LevelSetContainerType;
89 using typename Superclass::LevelSetIdentifierType;
93 using typename Superclass::LevelSetOutputType;
94 using typename Superclass::LevelSetOutputRealType;
95 using typename Superclass::LevelSetDataType;
97 using typename Superclass::IdListType;
98 using typename Superclass::IdListIterator;
99 using typename Superclass::IdListConstIterator;
100 using typename Superclass::IdListImageType;
101 using typename Superclass::CacheImageType;
102 using typename Superclass::DomainMapImageFilterType;
104 using typename Superclass::StoppingCriterionType;
105 using typename Superclass::StoppingCriterionPointer;
164 ThreadedImageRegionPartitioner<TImage::ImageDimension>,
180 ThreadedImageRegionPartitioner<TImage::ImageDimension>,
189template <
typename TEquationContainer,
typename TOutput,
unsigned int VDimension>
209 using typename Superclass::EquationContainerType;
210 using typename Superclass::EquationContainerPointer;
211 using typename Superclass::TermContainerType;
212 using typename Superclass::TermContainerPointer;
214 using typename Superclass::TermType;
215 using typename Superclass::TermPointer;
217 using typename Superclass::InputImageType;
218 using typename Superclass::InputImagePixelType;
219 using typename Superclass::InputImageConstPointer;
220 using typename Superclass::InputImageRegionType;
221 using typename Superclass::InputPixelRealType;
223 static constexpr unsigned int ImageDimension = Superclass::ImageDimension;
225 using typename Superclass::LevelSetContainerType;
226 using typename Superclass::LevelSetIdentifierType;
228 using typename Superclass::LevelSetInputType;
229 using typename Superclass::LevelSetOutputType;
230 using typename Superclass::LevelSetOutputRealType;
231 using typename Superclass::LevelSetDataType;
239 using typename Superclass::IdListType;
240 using typename Superclass::IdListIterator;
241 using typename Superclass::IdListImageType;
242 using typename Superclass::CacheImageType;
243 using typename Superclass::DomainMapImageFilterType;
245 using typename Superclass::StoppingCriterionType;
246 using typename Superclass::StoppingCriterionPointer;
269 std::map<IdentifierType, LevelSetLayerType *> m_UpdateBuffer{};
290 UpdateEquations()
override;
301template <
typename TEquationContainer,
unsigned int VDimension>
321 using typename Superclass::EquationContainerType;
322 using typename Superclass::EquationContainerPointer;
323 using typename Superclass::TermContainerType;
324 using typename Superclass::TermContainerPointer;
326 using typename Superclass::TermType;
327 using typename Superclass::TermPointer;
329 using typename Superclass::InputImageType;
330 using typename Superclass::InputImagePixelType;
331 using typename Superclass::InputImageConstPointer;
332 using typename Superclass::InputImageRegionType;
333 using typename Superclass::InputPixelRealType;
335 static constexpr unsigned int ImageDimension = Superclass::ImageDimension;
337 using typename Superclass::LevelSetContainerType;
338 using typename Superclass::LevelSetIdentifierType;
340 using typename Superclass::LevelSetInputType;
341 using typename Superclass::LevelSetOutputType;
342 using typename Superclass::LevelSetOutputRealType;
343 using typename Superclass::LevelSetDataType;
351 using typename Superclass::IdListType;
352 using typename Superclass::IdListIterator;
353 using typename Superclass::IdListImageType;
354 using typename Superclass::CacheImageType;
355 using typename Superclass::DomainMapImageFilterType;
357 using typename Superclass::StoppingCriterionType;
358 using typename Superclass::StoppingCriterionPointer;
379template <
typename TEquationContainer,
unsigned int VDimension>
399 using typename Superclass::EquationContainerType;
400 using typename Superclass::EquationContainerPointer;
401 using typename Superclass::TermContainerType;
402 using typename Superclass::TermContainerPointer;
404 using typename Superclass::TermType;
405 using typename Superclass::TermPointer;
407 using typename Superclass::InputImageType;
408 using typename Superclass::InputImagePixelType;
409 using typename Superclass::InputImageConstPointer;
410 using typename Superclass::InputImageRegionType;
411 using typename Superclass::InputPixelRealType;
413 static constexpr unsigned int ImageDimension = Superclass::ImageDimension;
415 using typename Superclass::LevelSetContainerType;
416 using typename Superclass::LevelSetIdentifierType;
418 using typename Superclass::LevelSetInputType;
419 using typename Superclass::LevelSetOutputType;
420 using typename Superclass::LevelSetOutputRealType;
421 using typename Superclass::LevelSetDataType;
430 using typename Superclass::IdListType;
431 using typename Superclass::IdListIterator;
432 using typename Superclass::IdListImageType;
433 using typename Superclass::CacheImageType;
434 using typename Superclass::DomainMapImageFilterType;
436 using typename Superclass::StoppingCriterionType;
437 using typename Superclass::StoppingCriterionPointer;
455#ifndef ITK_MANUAL_INSTANTIATION
456# include "itkLevelSetEvolution.hxx"
Pixel-wise addition of two images.
Binarize an input image by thresholding.
A multi-dimensional iterator templated over image type that walks an image region and is specialized ...
A multi-dimensional iterator templated over image type that walks pixels within a region and is speci...
Templated n-dimensional image to store labeled objects.
Base class for the "dense" representation of a level-set function on one image.
Class for iterating and evolving the dense level-set function.
typename LevelSetContainerType::IdListType IdListType
Thread the ComputeIteration method.
Thread the UpdateLevelSets method.
void UpdateLevelSets() override
ThreadIdType GetNumberOfWorkUnits() const
void AllocateUpdateBuffer() override
void ComputeIteration() override
typename MaurerType::Pointer MaurerPointer
typename DomainMapImageFilterType::DomainMapType::const_iterator DomainMapConstIteratorType
typename LevelSetType::ImageType LevelSetImageType
void ComputeTimeStepForNextIteration() override
typename ThresholdFilterType::Pointer ThresholdFilterPointer
~LevelSetEvolution() override=default
void ReinitializeToSignedDistance()
void SetNumberOfWorkUnits(const ThreadIdType numberOfThreads)
void UpdateEquations() override
typename LevelSetType::LabelMapPointer LevelSetLabelMapPointer
typename LevelSetType::LayerType LevelSetLayerType
typename UpdateLevelSetFilterType::Pointer UpdateLevelSetFilterPointer
~LevelSetEvolution() override=default
void UpdateEquations() override
LevelSetEvolution()=default
typename LevelSetType::LabelMapType LevelSetLabelMapType
void UpdateLevelSets() override
typename LevelSetType::LayerIterator LevelSetLayerIterator
typename LevelSetType::LabelMapPointer LevelSetLabelMapPointer
void UpdateEquations() override
void UpdateLevelSets() override
LevelSetEvolution()=default
typename LevelSetType::LayerType LevelSetLayerType
typename UpdateLevelSetFilterType::Pointer UpdateLevelSetFilterPointer
typename LevelSetType::LabelMapType LevelSetLabelMapType
~LevelSetEvolution() override=default
void SetNumberOfWorkUnits(const ThreadIdType numberOfThreads)
std::pair< LevelSetInputType, LevelSetOutputType > NodePairType
typename LevelSetType::LayerType LevelSetLayerType
~LevelSetEvolution() override
void ComputeTimeStepForNextIteration() override
ThreadIdType GetNumberOfWorkUnits() const
void AllocateUpdateBuffer() override
void ComputeIteration() override
typename LevelSetType::LabelMapPointer LevelSetLabelMapPointer
typename UpdateLevelSetFilterType::Pointer UpdateLevelSetFilterPointer
void UpdateLevelSets() override
typename LevelSetType::LabelMapType LevelSetLabelMapType
Class for iterating and evolving the level-set function.
std::map< InputType, OutputType, Functor::LexicographicCompare > LayerType
typename LayerType::iterator LayerIterator
typename LabelMapType::Pointer LabelMapPointer
Light weight base class for most itk classes.
Derived class for the Malcolm representation of level-set function.
Derived class for the shi representation of level-set function.
This filter calculates the Euclidean distance transform of a binary image in linear time for arbitrar...
Class for partitioning of an ImageRegion.
Partitions an iterator range for threading.
Base class for updating the Malcolm representation of level-set function.
Base class for updating the Shi representation of level-set function.
Base class for updating the level-set function.
Derived class for the sparse-field representation of level-set function.
SmartPointer< Self > Pointer
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
unsigned int ThreadIdType