18#ifndef itkLevelSetEvolution_h
19#define itkLevelSetEvolution_h
47template <
typename TEquationContainer,
typename TLevelSet>
50template <
typename TEquationContainer,
typename TImage>
70 using typename Superclass::EquationContainerType;
71 using typename Superclass::EquationContainerPointer;
72 using typename Superclass::TermContainerType;
73 using typename Superclass::TermContainerPointer;
75 using typename Superclass::TermType;
76 using typename Superclass::TermPointer;
78 using typename Superclass::InputImageType;
79 using typename Superclass::InputImagePixelType;
80 using typename Superclass::InputImageConstPointer;
81 using typename Superclass::InputImageRegionType;
82 using typename Superclass::InputPixelRealType;
84 static constexpr unsigned int ImageDimension = Superclass::ImageDimension;
86 using typename Superclass::LevelSetContainerType;
88 using typename Superclass::LevelSetIdentifierType;
92 using typename Superclass::LevelSetOutputType;
93 using typename Superclass::LevelSetOutputRealType;
94 using typename Superclass::LevelSetDataType;
96 using typename Superclass::IdListType;
97 using typename Superclass::IdListIterator;
98 using typename Superclass::IdListConstIterator;
99 using typename Superclass::IdListImageType;
100 using typename Superclass::CacheImageType;
101 using typename Superclass::DomainMapImageFilterType;
103 using typename Superclass::StoppingCriterionType;
104 using typename Superclass::StoppingCriterionPointer;
163 ThreadedImageRegionPartitioner<TImage::ImageDimension>,
179 ThreadedImageRegionPartitioner<TImage::ImageDimension>,
188template <
typename TEquationContainer,
typename TOutput,
unsigned int VDimension>
208 using typename Superclass::EquationContainerType;
209 using typename Superclass::EquationContainerPointer;
210 using typename Superclass::TermContainerType;
211 using typename Superclass::TermContainerPointer;
213 using typename Superclass::TermType;
214 using typename Superclass::TermPointer;
216 using typename Superclass::InputImageType;
217 using typename Superclass::InputImagePixelType;
218 using typename Superclass::InputImageConstPointer;
219 using typename Superclass::InputImageRegionType;
220 using typename Superclass::InputPixelRealType;
222 static constexpr unsigned int ImageDimension = Superclass::ImageDimension;
224 using typename Superclass::LevelSetContainerType;
225 using typename Superclass::LevelSetIdentifierType;
227 using typename Superclass::LevelSetInputType;
228 using typename Superclass::LevelSetOutputType;
229 using typename Superclass::LevelSetOutputRealType;
230 using typename Superclass::LevelSetDataType;
238 using typename Superclass::IdListType;
239 using typename Superclass::IdListIterator;
240 using typename Superclass::IdListImageType;
241 using typename Superclass::CacheImageType;
242 using typename Superclass::DomainMapImageFilterType;
244 using typename Superclass::StoppingCriterionType;
245 using typename Superclass::StoppingCriterionPointer;
268 std::map<IdentifierType, LevelSetLayerType *> m_UpdateBuffer{};
289 UpdateEquations()
override;
300template <
typename TEquationContainer,
unsigned int VDimension>
320 using typename Superclass::EquationContainerType;
321 using typename Superclass::EquationContainerPointer;
322 using typename Superclass::TermContainerType;
323 using typename Superclass::TermContainerPointer;
325 using typename Superclass::TermType;
326 using typename Superclass::TermPointer;
328 using typename Superclass::InputImageType;
329 using typename Superclass::InputImagePixelType;
330 using typename Superclass::InputImageConstPointer;
331 using typename Superclass::InputImageRegionType;
332 using typename Superclass::InputPixelRealType;
334 static constexpr unsigned int ImageDimension = Superclass::ImageDimension;
336 using typename Superclass::LevelSetContainerType;
337 using typename Superclass::LevelSetIdentifierType;
339 using typename Superclass::LevelSetInputType;
340 using typename Superclass::LevelSetOutputType;
341 using typename Superclass::LevelSetOutputRealType;
342 using typename Superclass::LevelSetDataType;
350 using typename Superclass::IdListType;
351 using typename Superclass::IdListIterator;
352 using typename Superclass::IdListImageType;
353 using typename Superclass::CacheImageType;
354 using typename Superclass::DomainMapImageFilterType;
356 using typename Superclass::StoppingCriterionType;
357 using typename Superclass::StoppingCriterionPointer;
378template <
typename TEquationContainer,
unsigned int VDimension>
398 using typename Superclass::EquationContainerType;
399 using typename Superclass::EquationContainerPointer;
400 using typename Superclass::TermContainerType;
401 using typename Superclass::TermContainerPointer;
403 using typename Superclass::TermType;
404 using typename Superclass::TermPointer;
406 using typename Superclass::InputImageType;
407 using typename Superclass::InputImagePixelType;
408 using typename Superclass::InputImageConstPointer;
409 using typename Superclass::InputImageRegionType;
410 using typename Superclass::InputPixelRealType;
412 static constexpr unsigned int ImageDimension = Superclass::ImageDimension;
414 using typename Superclass::LevelSetContainerType;
415 using typename Superclass::LevelSetIdentifierType;
417 using typename Superclass::LevelSetInputType;
418 using typename Superclass::LevelSetOutputType;
419 using typename Superclass::LevelSetOutputRealType;
420 using typename Superclass::LevelSetDataType;
429 using typename Superclass::IdListType;
430 using typename Superclass::IdListIterator;
431 using typename Superclass::IdListImageType;
432 using typename Superclass::CacheImageType;
433 using typename Superclass::DomainMapImageFilterType;
435 using typename Superclass::StoppingCriterionType;
436 using typename Superclass::StoppingCriterionPointer;
454#ifndef ITK_MANUAL_INSTANTIATION
455# 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
std::pair< LevelSetInputType, LevelSetOutputType > NodePairType
typename LevelSetType::LayerType LevelSetLayerType
~LevelSetEvolution() override
void ComputeTimeStepForNextIteration() override
ThreadIdType GetNumberOfWorkUnits() const
void AllocateUpdateBuffer() override
void ComputeIteration() override
void SetNumberOfWorkUnits(const ThreadIdType numberOfWorkUnits)
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