ITK
5.0.0
Insight Segmentation and Registration Toolkit
|
#include <itkFastMarchingImageFilterBase.h>
Apply the Fast Marching method to solve an Eikonal equation on an image.
The speed function can be specified as a speed image or a speed constant. The speed image is set using the method SetInput(). If the speed image is nullptr, a constant speed function is used and is specified using method the SetSpeedConstant().
If the speed function is constant and of value one, fast marching results is an approximate distance function from the initial alive points.
There are two ways to specify the output image information (LargestPossibleRegion, Spacing, Origin):
The output information is computed as follows.
If the speed image is nullptr or if the OverrideOutputInformation is set to true, the output information is set from user specified parameters. These parameters can be specified using methods
Else the output information is copied from the input speed image.
Implementation of this class is based on Chapter 8 of "Level Set Methods and Fast Marching Methods", J.A. Sethian, Cambridge Press, Second edition, 1999.
For an alternative implementation, see itk::FastMarchingImageFilter.
TTraits | traits |
Definition at line 75 of file itkFastMarchingImageFilterBase.h.
Public Types | |
using | ConnectedComponentImagePointer = typename ConnectedComponentImageType::Pointer |
using | ConnectedComponentImageType = Image< unsigned int, ImageDimension > |
using | ConstPointer = SmartPointer< const Self > |
using | InputImagePointer = typename Superclass::InputDomainPointer |
using | InputImageType = typename Superclass::InputDomainType |
using | InputPixelType = typename Superclass::InputPixelType |
using | InternalNodeStructureArray = FixedArray< InternalNodeStructure, ImageDimension > |
using | LabelImagePointer = typename LabelImageType::Pointer |
using | LabelImageType = Image< unsigned char, ImageDimension > |
using | LabelType = typename Superclass::LabelType |
using | NeighborhoodIteratorType = NeighborhoodIterator< LabelImageType > |
using | NeighborhoodRadiusType = typename NeighborhoodIteratorType::RadiusType |
using | NodePairContainerConstIterator = typename Traits::NodePairContainerConstIterator |
using | NodePairContainerPointer = typename Traits::NodePairContainerPointer |
using | NodePairContainerType = typename Traits::NodePairContainerType |
using | NodePairType = typename Traits::NodePairType |
using | NodeType = typename Traits::NodeType |
using | OutputDirectionType = typename OutputImageType::DirectionType |
using | OutputImagePointer = typename Superclass::OutputDomainPointer |
using | OutputImageType = typename Superclass::OutputDomainType |
using | OutputPixelType = typename Superclass::OutputPixelType |
using | OutputPointType = typename OutputImageType::PointType |
using | OutputRegionType = typename OutputImageType::RegionType |
using | OutputSizeType = typename OutputImageType::SizeType |
using | OutputSpacingType = typename OutputImageType::SpacingType |
using | Pointer = SmartPointer< Self > |
using | Self = FastMarchingImageFilterBase |
using | Superclass = FastMarchingBase< TInput, TOutput > |
using | Traits = typename Superclass::Traits |
Public Types inherited from itk::FastMarchingBase< TInput, TOutput > | |
using | ConstPointer = SmartPointer< const Self > |
using | InputDomainPointer = typename Traits::InputDomainPointer |
using | InputDomainType = typename Traits::InputDomainType |
using | InputPixelType = typename Traits::InputPixelType |
using | LabelType = typename Traits::LabelType |
using | NodePairContainerConstIterator = typename Traits::NodePairContainerConstIterator |
using | NodePairContainerPointer = typename Traits::NodePairContainerPointer |
using | NodePairContainerType = typename Traits::NodePairContainerType |
using | NodePairType = typename Traits::NodePairType |
using | NodeType = typename Traits::NodeType |
using | OutputDomainPointer = typename Traits::OutputDomainPointer |
using | OutputDomainType = typename Traits::OutputDomainType |
using | OutputPixelType = typename Traits::OutputPixelType |
using | Pointer = SmartPointer< Self > |
using | Self = FastMarchingBase |
using | StoppingCriterionPointer = typename StoppingCriterionType::Pointer |
using | StoppingCriterionType = FastMarchingStoppingCriterionBase< TInput, TOutput > |
using | Superclass = typename FastMarchingTraits< TInput, TOutput >::SuperclassType |
using | SuperclassType = typename Traits::SuperclassType |
enum | TopologyCheckType { Nothing = 0, NoHandles, Strict } |
using | Traits = FastMarchingTraits< TInput, TOutput > |
Static Public Member Functions | |
static Pointer | New () |
Static Public Attributes | |
static constexpr unsigned int | ImageDimension = Traits::ImageDimension |
Protected Member Functions | |
bool | DoesVoxelChangeViolateStrictTopology (const NodeType &) const |
bool | DoesVoxelChangeViolateWellComposedness (const NodeType &) const |
void | EnlargeOutputRequestedRegion (DataObject *output) override |
FastMarchingImageFilterBase () | |
void | GenerateOutputInformation () override |
void | GetInternalNodesUsed (OutputImageType *oImage, const NodeType &iNode, InternalNodeStructureArray &ioNodesUsed) |
unsigned char | GetLabelValueForGivenNode (const NodeType &iNode) const override |
const OutputPixelType | GetOutputValue (OutputImageType *oImage, const NodeType &iNode) const override |
IdentifierType | GetTotalNumberOfNodes () const override |
void | InitializeIndices2D () |
void | InitializeIndices3D () |
bool | IsChangeWellComposed2D (const NodeType &) const |
bool | IsChangeWellComposed3D (const NodeType &) const |
bool | IsCriticalC1Configuration2D (const std::bitset< 9 > &) const |
bool | IsCriticalC1Configuration3D (const std::bitset< 8 > &) const |
bool | IsCriticalC2Configuration2D (const std::bitset< 9 > &) const |
unsigned int | IsCriticalC2Configuration3D (const std::bitset< 8 > &) const |
bool | IsCriticalC3Configuration2D (const std::bitset< 9 > &) const |
bool | IsCriticalC4Configuration2D (const std::bitset< 9 > &) const |
void | PrintSelf (std::ostream &os, Indent indent) const override |
void | SetLabelValueForGivenNode (const NodeType &iNode, const LabelType &iLabel) override |
void | SetOutputValue (OutputImageType *oDomain, const NodeType &iNode, const OutputPixelType &iValue) override |
double | Solve (OutputImageType *oImage, const NodeType &iNode, InternalNodeStructureArray &ioNeighbors) const |
void | UpdateNeighbors (OutputImageType *oImage, const NodeType &iNode) override |
void | UpdateValue (OutputImageType *oImage, const NodeType &iValue) override |
~FastMarchingImageFilterBase () override=default | |
bool | CheckTopology (OutputImageType *oImage, const NodeType &iNode) override |
void | InitializeOutput (OutputImageType *oImage) override |
Protected Member Functions inherited from itk::FastMarchingBase< TInput, TOutput > | |
virtual bool | CheckTopology (OutputDomainType *oDomain, const NodeType &iNode)=0 |
FastMarchingBase () | |
void | GenerateData () override |
virtual const OutputPixelType | GetOutputValue (OutputDomainType *oDomain, const NodeType &iNode) const =0 |
void | Initialize (OutputDomainType *oDomain) |
virtual void | InitializeOutput (OutputDomainType *oDomain)=0 |
void | PrintSelf (std::ostream &os, Indent indent) const override |
virtual void | SetOutputValue (OutputDomainType *oDomain, const NodeType &iNode, const OutputPixelType &iValue)=0 |
virtual void | UpdateNeighbors (OutputDomainType *oDomain, const NodeType &iNode)=0 |
virtual void | UpdateValue (OutputDomainType *oDomain, const NodeType &iNode)=0 |
~FastMarchingBase () override=default | |
Additional Inherited Members | |
Protected Types inherited from itk::FastMarchingBase< TInput, TOutput > | |
using | HeapContainerType = std::vector< NodePairType > |
using | NodeComparerType = std::greater< NodePairType > |
using | PriorityQueueType = std::priority_queue< NodePairType, HeapContainerType, NodeComparerType > |
using itk::FastMarchingImageFilterBase< TInput, TOutput >::ConnectedComponentImagePointer = typename ConnectedComponentImageType::Pointer |
Definition at line 123 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::ConnectedComponentImageType = Image< unsigned int, ImageDimension > |
Definition at line 122 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::ConstPointer = SmartPointer< const Self > |
Definition at line 84 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::InputImagePointer = typename Superclass::InputDomainPointer |
Definition at line 95 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::InputImageType = typename Superclass::InputDomainType |
Definition at line 94 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::InputPixelType = typename Superclass::InputPixelType |
Definition at line 96 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::InternalNodeStructureArray = FixedArray< InternalNodeStructure, ImageDimension > |
Definition at line 131 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::LabelImagePointer = typename LabelImageType::Pointer |
Definition at line 119 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::LabelImageType = Image< unsigned char, ImageDimension > |
Definition at line 118 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::LabelType = typename Superclass::LabelType |
Definition at line 113 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::NeighborhoodIteratorType = NeighborhoodIterator<LabelImageType> |
Definition at line 125 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::NeighborhoodRadiusType = typename NeighborhoodIteratorType::RadiusType |
Definition at line 126 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::NodePairContainerConstIterator = typename Traits::NodePairContainerConstIterator |
Definition at line 111 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::NodePairContainerPointer = typename Traits::NodePairContainerPointer |
Definition at line 110 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::NodePairContainerType = typename Traits::NodePairContainerType |
Definition at line 109 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::NodePairType = typename Traits::NodePairType |
Definition at line 108 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::NodeType = typename Traits::NodeType |
Definition at line 107 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::OutputDirectionType = typename OutputImageType::DirectionType |
Definition at line 105 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::OutputImagePointer = typename Superclass::OutputDomainPointer |
Definition at line 99 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::OutputImageType = typename Superclass::OutputDomainType |
Definition at line 98 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::OutputPixelType = typename Superclass::OutputPixelType |
Definition at line 100 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::OutputPointType = typename OutputImageType::PointType |
Definition at line 104 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::OutputRegionType = typename OutputImageType::RegionType |
Definition at line 103 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::OutputSizeType = typename OutputImageType::SizeType |
Definition at line 102 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::OutputSpacingType = typename OutputImageType::SpacingType |
Definition at line 101 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::Pointer = SmartPointer< Self > |
Definition at line 83 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::Self = FastMarchingImageFilterBase |
Definition at line 81 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::Superclass = FastMarchingBase< TInput, TOutput > |
Definition at line 82 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::Traits = typename Superclass::Traits |
Definition at line 85 of file itkFastMarchingImageFilterBase.h.
|
protected |
|
overrideprotecteddefault |
|
overrideprotected |
Make sure the given node does not violate any topological constraint
virtual::itk::LightObject::Pointer itk::FastMarchingImageFilterBase< TInput, TOutput >::CreateAnother | ( | ) | const |
|
protected |
|
protected |
|
overrideprotected |
|
overrideprotected |
Generate the output image meta information.
|
protected |
Find the nodes were the front will propagate given a node
|
virtual |
|
overrideprotectedvirtual |
Returns the label value for a given node
Implements itk::FastMarchingBase< TInput, TOutput >.
|
virtual |
|
virtual |
Run-time type information (and related methods).
Reimplemented from itk::FastMarchingBase< TInput, TOutput >.
Reimplemented in itk::FastMarchingExtensionImageFilterBase< TInput, TOutput, TAuxValue, VAuxDimension >, and itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >.
|
virtual |
The output largeset possible, spacing and origin is computed as follows. If the speed image is nullptr or if the OverrideOutputInformation is true, the output information is set from user specified parameters. These parameters can be specified using methods SetOutputRegion(), SetOutputSpacing(), SetOutputDirection(), and SetOutputOrigin(). Else if the speed image is not nullptr, the output information is copied from the input speed image.
|
virtual |
The output largeset possible, spacing and origin is computed as follows. If the speed image is nullptr or if the OverrideOutputInformation is true, the output information is set from user specified parameters. These parameters can be specified using methods SetOutputRegion(), SetOutputSpacing(), SetOutputDirection(), and SetOutputOrigin(). Else if the speed image is not nullptr, the output information is copied from the input speed image.
|
virtual |
The output largeset possible, spacing and origin is computed as follows. If the speed image is nullptr or if the OverrideOutputInformation is true, the output information is set from user specified parameters. These parameters can be specified using methods SetOutputRegion(), SetOutputSpacing(), SetOutputDirection(), and SetOutputOrigin(). Else if the speed image is not nullptr, the output information is copied from the input speed image.
|
inlinevirtual |
The output largeset possible, spacing and origin is computed as follows. If the speed image is nullptr or if the OverrideOutputInformation is true, the output information is set from user specified parameters. These parameters can be specified using methods SetOutputRegion(), SetOutputSpacing(), SetOutputDirection(), and SetOutputOrigin(). Else if the speed image is not nullptr, the output information is copied from the input speed image.
Definition at line 144 of file itkFastMarchingImageFilterBase.h.
|
virtual |
The output largeset possible, spacing and origin is computed as follows. If the speed image is nullptr or if the OverrideOutputInformation is true, the output information is set from user specified parameters. These parameters can be specified using methods SetOutputRegion(), SetOutputSpacing(), SetOutputDirection(), and SetOutputOrigin(). Else if the speed image is not nullptr, the output information is copied from the input speed image.
|
overrideprotected |
Returns the output value for a given node
|
virtual |
The output largeset possible, spacing and origin is computed as follows. If the speed image is nullptr or if the OverrideOutputInformation is true, the output information is set from user specified parameters. These parameters can be specified using methods SetOutputRegion(), SetOutputSpacing(), SetOutputDirection(), and SetOutputOrigin(). Else if the speed image is not nullptr, the output information is copied from the input speed image.
|
overrideprotectedvirtual |
Get the total number of nodes in the domain.
Implements itk::FastMarchingBase< TInput, TOutput >.
|
protected |
|
protected |
|
overrideprotected |
Make sure the given node does not violate any topological constraint
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
static |
Method for creation through the object factory.
|
virtual |
The output largeset possible, spacing and origin is computed as follows. If the speed image is nullptr or if the OverrideOutputInformation is true, the output information is set from user specified parameters. These parameters can be specified using methods SetOutputRegion(), SetOutputSpacing(), SetOutputDirection(), and SetOutputOrigin(). Else if the speed image is not nullptr, the output information is copied from the input speed image.
|
virtual |
The output largeset possible, spacing and origin is computed as follows. If the speed image is nullptr or if the OverrideOutputInformation is true, the output information is set from user specified parameters. These parameters can be specified using methods SetOutputRegion(), SetOutputSpacing(), SetOutputDirection(), and SetOutputOrigin(). Else if the speed image is not nullptr, the output information is copied from the input speed image.
|
overrideprotected |
|
overrideprotectedvirtual |
Set the label value for a given node
Implements itk::FastMarchingBase< TInput, TOutput >.
|
virtual |
The output largeset possible, spacing and origin is computed as follows. If the speed image is nullptr or if the OverrideOutputInformation is true, the output information is set from user specified parameters. These parameters can be specified using methods SetOutputRegion(), SetOutputSpacing(), SetOutputDirection(), and SetOutputOrigin(). Else if the speed image is not nullptr, the output information is copied from the input speed image.
|
virtual |
The output largeset possible, spacing and origin is computed as follows. If the speed image is nullptr or if the OverrideOutputInformation is true, the output information is set from user specified parameters. These parameters can be specified using methods SetOutputRegion(), SetOutputSpacing(), SetOutputDirection(), and SetOutputOrigin(). Else if the speed image is not nullptr, the output information is copied from the input speed image.
|
virtual |
The output largeset possible, spacing and origin is computed as follows. If the speed image is nullptr or if the OverrideOutputInformation is true, the output information is set from user specified parameters. These parameters can be specified using methods SetOutputRegion(), SetOutputSpacing(), SetOutputDirection(), and SetOutputOrigin(). Else if the speed image is not nullptr, the output information is copied from the input speed image.
|
inlinevirtual |
The output largeset possible, spacing and origin is computed as follows. If the speed image is nullptr or if the OverrideOutputInformation is true, the output information is set from user specified parameters. These parameters can be specified using methods SetOutputRegion(), SetOutputSpacing(), SetOutputDirection(), and SetOutputOrigin(). Else if the speed image is not nullptr, the output information is copied from the input speed image.
Definition at line 142 of file itkFastMarchingImageFilterBase.h.
|
virtual |
The output largeset possible, spacing and origin is computed as follows. If the speed image is nullptr or if the OverrideOutputInformation is true, the output information is set from user specified parameters. These parameters can be specified using methods SetOutputRegion(), SetOutputSpacing(), SetOutputDirection(), and SetOutputOrigin(). Else if the speed image is not nullptr, the output information is copied from the input speed image.
|
overrideprotected |
|
virtual |
The output largeset possible, spacing and origin is computed as follows. If the speed image is nullptr or if the OverrideOutputInformation is true, the output information is set from user specified parameters. These parameters can be specified using methods SetOutputRegion(), SetOutputSpacing(), SetOutputDirection(), and SetOutputOrigin(). Else if the speed image is not nullptr, the output information is copied from the input speed image.
|
protected |
Solve the quadratic equation
|
overrideprotected |
Update values for the neighbors of a given node
|
overrideprotected |
Update value for a given node
|
static |
Definition at line 115 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 167 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 248 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 249 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 183 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 255 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 182 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 169 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 174 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 172 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 171 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 173 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 175 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 240 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 239 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 168 of file itkFastMarchingImageFilterBase.h.