ITK
4.1.0
Insight Segmentation and Registration Toolkit
|
#include <itkFastMarchingBase.h>
Abstract class to solve an Eikonal based-equation using Fast Marching Method.
Fast marching solves an Eikonal equation where the speed is always non-negative and depends on the position only. Starting from an initial position on the front, fast marching systematically moves the front forward one node at a time.
Updates are preformed using an entropy satisfy scheme where only "upwind" neighborhoods are used. This implementation of Fast Marching uses a std::priority_queue to locate the next proper node to update.
Fast Marching sweeps through N points in (N log N) steps to obtain the arrival time value as the front propagates through the domain.
The initial front is specified by two containers:
In order for the filter to evolve, at least some trial nodes must be specified. These can for instance be specified as the layer of nodes around the alive ones.
The algorithm is terminated early by setting an appropriate stopping criterion, or if there are no more nodes to process.
TTraits | traits which includes definition such as:
|
NJ Tustison, BA Avants, MF Siqueira, JC Gee. "Topological Well- Composedness and Glamorous Glue: A Digital Gluing Algorithm for Topologically Constrained Front Propagation, IEEE Transactions on Image Processing, 20(6):1756-1761, June 2011.
Essentially, one can constrain the propagating front(s) such that they either: 1. don't merge (using the "Strict" option) 2. don't create handles (using the "NoHandles" option)
Whereas the majority of related work uses the digital topological concept of "simple points" to constrain the evolving front, this filter uses the concept of "well-composedness". Advantages of the latter over the former includes being able to use the standard marching cubes algorithm to produce a mesh whose genus is identical to that of the evolved front(s).
Definition at line 101 of file itkFastMarchingBase.h.
typedef SmartPointer< const Self > itk::FastMarchingBase< TInput, TOutput >::ConstPointer |
Reimplemented in itk::FastMarchingImageFilterBase< TInput, TOutput >, itk::FastMarchingExtensionImageFilterBase< TInput, TOutput, TAuxValue, VAuxDimension >, itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >, and itk::FastMarchingQuadEdgeMeshFilterBase< TInput, TOutput >.
Definition at line 111 of file itkFastMarchingBase.h.
typedef std::vector< NodePairType > itk::FastMarchingBase< TInput, TOutput >::HeapContainerType [protected] |
Definition at line 244 of file itkFastMarchingBase.h.
typedef Traits::InputDomainPointer itk::FastMarchingBase< TInput, TOutput >::InputDomainPointer |
Definition at line 115 of file itkFastMarchingBase.h.
typedef Traits::InputDomainType itk::FastMarchingBase< TInput, TOutput >::InputDomainType |
Input Domain related definitions
Definition at line 114 of file itkFastMarchingBase.h.
typedef Traits::InputPixelType itk::FastMarchingBase< TInput, TOutput >::InputPixelType |
Reimplemented in itk::FastMarchingImageFilterBase< TInput, TOutput >, and itk::FastMarchingQuadEdgeMeshFilterBase< TInput, TOutput >.
Definition at line 116 of file itkFastMarchingBase.h.
typedef Traits::LabelType itk::FastMarchingBase< TInput, TOutput >::LabelType |
Reimplemented in itk::FastMarchingImageFilterBase< TInput, TOutput >, and itk::FastMarchingQuadEdgeMeshFilterBase< TInput, TOutput >.
Definition at line 133 of file itkFastMarchingBase.h.
typedef std::greater< NodePairType > itk::FastMarchingBase< TInput, TOutput >::NodeComparerType [protected] |
Definition at line 245 of file itkFastMarchingBase.h.
typedef Traits::NodePairContainerConstIterator itk::FastMarchingBase< TInput, TOutput >::NodePairContainerConstIterator |
Reimplemented in itk::FastMarchingImageFilterBase< TInput, TOutput >, itk::FastMarchingExtensionImageFilterBase< TInput, TOutput, TAuxValue, VAuxDimension >, and itk::FastMarchingQuadEdgeMeshFilterBase< TInput, TOutput >.
Definition at line 131 of file itkFastMarchingBase.h.
typedef Traits::NodePairContainerPointer itk::FastMarchingBase< TInput, TOutput >::NodePairContainerPointer |
Reimplemented in itk::FastMarchingImageFilterBase< TInput, TOutput >, itk::FastMarchingExtensionImageFilterBase< TInput, TOutput, TAuxValue, VAuxDimension >, and itk::FastMarchingQuadEdgeMeshFilterBase< TInput, TOutput >.
Definition at line 129 of file itkFastMarchingBase.h.
typedef Traits::NodePairContainerType itk::FastMarchingBase< TInput, TOutput >::NodePairContainerType |
Reimplemented in itk::FastMarchingImageFilterBase< TInput, TOutput >, itk::FastMarchingExtensionImageFilterBase< TInput, TOutput, TAuxValue, VAuxDimension >, and itk::FastMarchingQuadEdgeMeshFilterBase< TInput, TOutput >.
Definition at line 128 of file itkFastMarchingBase.h.
typedef Traits::NodePairType itk::FastMarchingBase< TInput, TOutput >::NodePairType |
NodePairType pair of node and corresponding value
Reimplemented in itk::FastMarchingImageFilterBase< TInput, TOutput >, itk::FastMarchingExtensionImageFilterBase< TInput, TOutput, TAuxValue, VAuxDimension >, and itk::FastMarchingQuadEdgeMeshFilterBase< TInput, TOutput >.
Definition at line 127 of file itkFastMarchingBase.h.
typedef Traits::NodeType itk::FastMarchingBase< TInput, TOutput >::NodeType |
NodeType type of node
Reimplemented in itk::FastMarchingImageFilterBase< TInput, TOutput >, itk::FastMarchingExtensionImageFilterBase< TInput, TOutput, TAuxValue, VAuxDimension >, itk::FastMarchingQuadEdgeMeshFilterBase< TInput, TOutput >, and itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >.
Definition at line 124 of file itkFastMarchingBase.h.
typedef Traits::OutputDomainPointer itk::FastMarchingBase< TInput, TOutput >::OutputDomainPointer |
Definition at line 120 of file itkFastMarchingBase.h.
typedef Traits::OutputDomainType itk::FastMarchingBase< TInput, TOutput >::OutputDomainType |
Output Domain related definitions
Definition at line 119 of file itkFastMarchingBase.h.
typedef Traits::OutputPixelType itk::FastMarchingBase< TInput, TOutput >::OutputPixelType |
Reimplemented in itk::FastMarchingExtensionImageFilterBase< TInput, TOutput, TAuxValue, VAuxDimension >, itk::FastMarchingImageFilterBase< TInput, TOutput >, itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >, and itk::FastMarchingQuadEdgeMeshFilterBase< TInput, TOutput >.
Definition at line 121 of file itkFastMarchingBase.h.
typedef SmartPointer< Self > itk::FastMarchingBase< TInput, TOutput >::Pointer |
Reimplemented in itk::FastMarchingImageFilterBase< TInput, TOutput >, itk::FastMarchingExtensionImageFilterBase< TInput, TOutput, TAuxValue, VAuxDimension >, itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >, and itk::FastMarchingQuadEdgeMeshFilterBase< TInput, TOutput >.
Definition at line 110 of file itkFastMarchingBase.h.
typedef std::priority_queue< NodeType, HeapContainerType, NodeComparerType > itk::FastMarchingBase< TInput, TOutput >::PriorityQueueType [protected] |
Definition at line 251 of file itkFastMarchingBase.h.
typedef FastMarchingBase itk::FastMarchingBase< TInput, TOutput >::Self |
Reimplemented in itk::FastMarchingImageFilterBase< TInput, TOutput >, itk::FastMarchingExtensionImageFilterBase< TInput, TOutput, TAuxValue, VAuxDimension >, itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >, and itk::FastMarchingQuadEdgeMeshFilterBase< TInput, TOutput >.
Definition at line 108 of file itkFastMarchingBase.h.
typedef StoppingCriterionType::Pointer itk::FastMarchingBase< TInput, TOutput >::StoppingCriterionPointer |
Definition at line 137 of file itkFastMarchingBase.h.
typedef FastMarchingStoppingCriterionBase< TInput, TOutput > itk::FastMarchingBase< TInput, TOutput >::StoppingCriterionType |
StoppingCriterionType stopping criterion
Definition at line 136 of file itkFastMarchingBase.h.
typedef SuperclassType itk::FastMarchingBase< TInput, TOutput >::Superclass |
Reimplemented in itk::FastMarchingImageFilterBase< TInput, TOutput >, itk::FastMarchingExtensionImageFilterBase< TInput, TOutput, TAuxValue, VAuxDimension >, itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >, and itk::FastMarchingQuadEdgeMeshFilterBase< TInput, TOutput >.
Definition at line 109 of file itkFastMarchingBase.h.
typedef Traits::SuperclassType itk::FastMarchingBase< TInput, TOutput >::SuperclassType |
Definition at line 105 of file itkFastMarchingBase.h.
typedef FastMarchingTraits<TInput, TOutput> itk::FastMarchingBase< TInput, TOutput >::Traits |
Reimplemented in itk::FastMarchingImageFilterBase< TInput, TOutput >, itk::FastMarchingExtensionImageFilterBase< TInput, TOutput, TAuxValue, VAuxDimension >, itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >, and itk::FastMarchingQuadEdgeMeshFilterBase< TInput, TOutput >.
Definition at line 104 of file itkFastMarchingBase.h.
enum itk::FastMarchingBase::TopologyCheckType |
Definition at line 154 of file itkFastMarchingBase.h.
itk::FastMarchingBase< TInput, TOutput >::FastMarchingBase | ( | ) | [protected] |
Constructor.
virtual itk::FastMarchingBase< TInput, TOutput >::~FastMarchingBase | ( | ) | [protected, virtual] |
Destructor.
itk::FastMarchingBase< TInput, TOutput >::FastMarchingBase | ( | const Self & | ) | [private] |
virtual bool itk::FastMarchingBase< TInput, TOutput >::CheckTopology | ( | OutputDomainType * | oDomain, |
const NodeType & | iNode | ||
) | [protected, pure virtual] |
Check if the current node violate topological criterion.
[in] | oDomain | |
[in] | iNode |
Implemented in itk::FastMarchingImageFilterBase< TInput, TOutput >.
virtual void itk::FastMarchingBase< TInput, TOutput >::CollectPointsOff | ( | ) | [virtual] |
Get the Collect Points flag.
virtual void itk::FastMarchingBase< TInput, TOutput >::CollectPointsOn | ( | ) | [virtual] |
Get the Collect Points flag.
void itk::FastMarchingBase< TInput, TOutput >::GenerateData | ( | ) | [protected] |
virtual NodePairContainerType* itk::FastMarchingBase< TInput, TOutput >::GetAlivePoints | ( | ) | [virtual] |
Set/Get AlivePoints
virtual const bool& itk::FastMarchingBase< TInput, TOutput >::GetCollectPoints | ( | ) | [virtual] |
Get the Collect Points flag.
virtual NodePairContainerType* itk::FastMarchingBase< TInput, TOutput >::GetForbiddenPoints | ( | ) | [virtual] |
Set/Get ForbiddenPoints
virtual unsigned char itk::FastMarchingBase< TInput, TOutput >::GetLabelValueForGivenNode | ( | const NodeType & | iNode | ) | const [protected, pure virtual] |
Get the LabelType Value for a given node.
[in] | iNode |
Implemented in itk::FastMarchingImageFilterBase< TInput, TOutput >, and itk::FastMarchingQuadEdgeMeshFilterBase< TInput, TOutput >.
virtual double itk::FastMarchingBase< TInput, TOutput >::GetNormalizationFactor | ( | ) | [virtual] |
Set/Get NormalizationFactor.
virtual const OutputPixelType itk::FastMarchingBase< TInput, TOutput >::GetOutputValue | ( | OutputDomainType * | oDomain, |
const NodeType & | iNode | ||
) | const [protected, pure virtual] |
Get the ouput value (front value) for a given node.
Implemented in itk::FastMarchingImageFilterBase< TInput, TOutput >.
virtual NodePairContainerType* itk::FastMarchingBase< TInput, TOutput >::GetProcessedPoints | ( | ) | [virtual] |
Set/Get ProcessedPoints
virtual double itk::FastMarchingBase< TInput, TOutput >::GetSpeedConstant | ( | ) | [virtual] |
Set/Get SpeedConstant.
virtual StoppingCriterionType* itk::FastMarchingBase< TInput, TOutput >::GetStoppingCriterion | ( | ) | [virtual] |
Set/Get the Stopping Criterion.
virtual OutputPixelType itk::FastMarchingBase< TInput, TOutput >::GetTargetReachedValue | ( | ) | [virtual] |
Get the value reached by the front when it stops propagating.
virtual const TopologyCheckType& itk::FastMarchingBase< TInput, TOutput >::GetTopologyCheck | ( | ) | [virtual] |
Set/Get the TopologyCheckType macro indicating whether the user wants to check topology (and which one).
virtual IdentifierType itk::FastMarchingBase< TInput, TOutput >::GetTotalNumberOfNodes | ( | ) | const [protected, pure virtual] |
Get the total number of nodes in the domain.
Implemented in itk::FastMarchingImageFilterBase< TInput, TOutput >, and itk::FastMarchingQuadEdgeMeshFilterBase< TInput, TOutput >.
virtual NodePairContainerType* itk::FastMarchingBase< TInput, TOutput >::GetTrialPoints | ( | ) | [virtual] |
Set/Get TrialPoints
void itk::FastMarchingBase< TInput, TOutput >::Initialize | ( | OutputDomainType * | oDomain | ) | [protected] |
virtual void itk::FastMarchingBase< TInput, TOutput >::InitializeOutput | ( | OutputDomainType * | oDomain | ) | [protected, pure virtual] |
Implemented in itk::FastMarchingImageFilterBase< TInput, TOutput >.
void itk::FastMarchingBase< TInput, TOutput >::operator= | ( | const Self & | ) | [private] |
void itk::FastMarchingBase< TInput, TOutput >::PrintSelf | ( | std::ostream & | os, |
Indent | indent | ||
) | const [protected] |
PrintSelf method.
Reimplemented in itk::FastMarchingExtensionImageFilterBase< TInput, TOutput, TAuxValue, VAuxDimension >, and itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >.
virtual void itk::FastMarchingBase< TInput, TOutput >::SetAlivePoints | ( | NodePairContainerType * | _arg | ) | [virtual] |
Set/Get AlivePoints
virtual void itk::FastMarchingBase< TInput, TOutput >::SetCollectPoints | ( | bool | _arg | ) | [virtual] |
Set the Collect Points flag. Instrument the algorithm to collect a container of all nodes which it has visited. Useful for creating Narrowbands for level set algorithms that supports narrow banding.
virtual void itk::FastMarchingBase< TInput, TOutput >::SetForbiddenPoints | ( | NodePairContainerType * | _arg | ) | [virtual] |
Set/Get ForbiddenPoints
virtual void itk::FastMarchingBase< TInput, TOutput >::SetLabelValueForGivenNode | ( | const NodeType & | iNode, |
const LabelType & | iLabel | ||
) | [protected, pure virtual] |
Set the Label Value for a given node.
[in] | iNode | |
[in] | iLabel |
Implemented in itk::FastMarchingImageFilterBase< TInput, TOutput >, and itk::FastMarchingQuadEdgeMeshFilterBase< TInput, TOutput >.
virtual void itk::FastMarchingBase< TInput, TOutput >::SetNormalizationFactor | ( | double | _arg | ) | [virtual] |
virtual void itk::FastMarchingBase< TInput, TOutput >::SetOutputValue | ( | OutputDomainType * | oDomain, |
const NodeType & | iNode, | ||
const OutputPixelType & | iValue | ||
) | [protected, pure virtual] |
Set the output value (front value) for a given node.
Implemented in itk::FastMarchingImageFilterBase< TInput, TOutput >.
virtual void itk::FastMarchingBase< TInput, TOutput >::SetProcessedPoints | ( | NodePairContainerType * | _arg | ) | [virtual] |
Set/Get ProcessedPoints
virtual void itk::FastMarchingBase< TInput, TOutput >::SetSpeedConstant | ( | double | _arg | ) | [virtual] |
virtual void itk::FastMarchingBase< TInput, TOutput >::SetStoppingCriterion | ( | StoppingCriterionType * | _arg | ) | [virtual] |
virtual void itk::FastMarchingBase< TInput, TOutput >::SetTopologyCheck | ( | TopologyCheckType | _arg | ) | [virtual] |
Set/Get the TopologyCheckType macro indicating whether the user wants to check topology (and which one).
virtual void itk::FastMarchingBase< TInput, TOutput >::SetTrialPoints | ( | NodePairContainerType * | _arg | ) | [virtual] |
Set/Get TrialPoints
virtual void itk::FastMarchingBase< TInput, TOutput >::UpdateNeighbors | ( | OutputDomainType * | oDomain, |
const NodeType & | iNode | ||
) | [protected, pure virtual] |
Update neighbors to a given node.
[in] | oDomain | |
[in] | iNode |
Implemented in itk::FastMarchingImageFilterBase< TInput, TOutput >.
virtual void itk::FastMarchingBase< TInput, TOutput >::UpdateValue | ( | OutputDomainType * | oDomain, |
const NodeType & | iNode | ||
) | [protected, pure virtual] |
Update value for a given node.
[in] | oDomain | |
[in] | iNode |
Implemented in itk::FastMarchingImageFilterBase< TInput, TOutput >.
NodePairContainerPointer itk::FastMarchingBase< TInput, TOutput >::m_AlivePoints [protected] |
Definition at line 237 of file itkFastMarchingBase.h.
bool itk::FastMarchingBase< TInput, TOutput >::m_CollectPoints [protected] |
Definition at line 241 of file itkFastMarchingBase.h.
NodePairContainerPointer itk::FastMarchingBase< TInput, TOutput >::m_ForbiddenPoints [protected] |
Definition at line 239 of file itkFastMarchingBase.h.
PriorityQueueType itk::FastMarchingBase< TInput, TOutput >::m_Heap [protected] |
Definition at line 253 of file itkFastMarchingBase.h.
double itk::FastMarchingBase< TInput, TOutput >::m_InverseSpeed [protected] |
Definition at line 229 of file itkFastMarchingBase.h.
OutputPixelType itk::FastMarchingBase< TInput, TOutput >::m_LargeValue [protected] |
Definition at line 233 of file itkFastMarchingBase.h.
double itk::FastMarchingBase< TInput, TOutput >::m_NormalizationFactor [protected] |
Definition at line 230 of file itkFastMarchingBase.h.
NodePairContainerPointer itk::FastMarchingBase< TInput, TOutput >::m_ProcessedPoints [protected] |
Definition at line 238 of file itkFastMarchingBase.h.
double itk::FastMarchingBase< TInput, TOutput >::m_SpeedConstant [protected] |
Definition at line 228 of file itkFastMarchingBase.h.
StoppingCriterionPointer itk::FastMarchingBase< TInput, TOutput >::m_StoppingCriterion [protected] |
Definition at line 226 of file itkFastMarchingBase.h.
OutputPixelType itk::FastMarchingBase< TInput, TOutput >::m_TargetReachedValue [protected] |
Definition at line 232 of file itkFastMarchingBase.h.
TopologyCheckType itk::FastMarchingBase< TInput, TOutput >::m_TopologyCheck [protected] |
Definition at line 255 of file itkFastMarchingBase.h.
OutputPixelType itk::FastMarchingBase< TInput, TOutput >::m_TopologyValue [protected] |
Definition at line 234 of file itkFastMarchingBase.h.
NodePairContainerPointer itk::FastMarchingBase< TInput, TOutput >::m_TrialPoints [protected] |
Definition at line 236 of file itkFastMarchingBase.h.