ITK
6.0.0
Insight 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 | InternalNodeStructureArray = FixedArray< InternalNodeStructure, ImageDimension > |
using | LabelImagePointer = typename LabelImageType::Pointer |
using | LabelImageType = Image< unsigned char, ImageDimension > |
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 | 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 > |
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 |
using | TopologyCheckEnum = FastMarchingTraitsEnums::TopologyCheck |
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 *oImage, const NodeType &iNode, const OutputPixelType &iValue) override |
double | Solve (OutputImageType *oImage, const NodeType &iNode, InternalNodeStructureArray &iNeighbors) const |
void | UpdateNeighbors (OutputImageType *oImage, const NodeType &iNode) override |
void | UpdateValue (OutputImageType *oImage, const NodeType &iNode) 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 unsigned char | GetLabelValueForGivenNode (const NodeType &iNode) const =0 |
virtual const OutputPixelType | GetOutputValue (OutputDomainType *oDomain, const NodeType &iNode) const =0 |
virtual IdentifierType | GetTotalNumberOfNodes () const =0 |
void | Initialize (OutputDomainType *oDomain) |
virtual void | InitializeOutput (OutputDomainType *oDomain)=0 |
void | PrintSelf (std::ostream &os, Indent indent) const override |
virtual void | SetLabelValueForGivenNode (const NodeType &iNode, const LabelType &iLabel)=0 |
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 121 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::ConnectedComponentImageType = Image<unsigned int, ImageDimension> |
Definition at line 120 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::ConstPointer = SmartPointer<const Self> |
Definition at line 83 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::InputImagePointer = typename Superclass::InputDomainPointer |
Definition at line 94 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::InputImageType = typename Superclass::InputDomainType |
Definition at line 93 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::InternalNodeStructureArray = FixedArray<InternalNodeStructure, ImageDimension> |
Definition at line 129 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::LabelImagePointer = typename LabelImageType::Pointer |
Definition at line 118 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::LabelImageType = Image<unsigned char, ImageDimension> |
Definition at line 117 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::NeighborhoodIteratorType = NeighborhoodIterator<LabelImageType> |
Definition at line 123 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::NeighborhoodRadiusType = typename NeighborhoodIteratorType::RadiusType |
Definition at line 124 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::NodePairContainerConstIterator = typename Traits::NodePairContainerConstIterator |
Definition at line 110 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::NodePairContainerPointer = typename Traits::NodePairContainerPointer |
Definition at line 109 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::NodePairContainerType = typename Traits::NodePairContainerType |
Definition at line 108 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::NodePairType = typename Traits::NodePairType |
Definition at line 107 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::NodeType = typename Traits::NodeType |
Definition at line 106 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::OutputDirectionType = typename OutputImageType::DirectionType |
Definition at line 104 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::OutputImagePointer = typename Superclass::OutputDomainPointer |
Definition at line 98 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::OutputImageType = typename Superclass::OutputDomainType |
Definition at line 97 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::OutputPointType = typename OutputImageType::PointType |
Definition at line 103 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::OutputRegionType = typename OutputImageType::RegionType |
Definition at line 102 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::OutputSizeType = typename OutputImageType::SizeType |
Definition at line 101 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::OutputSpacingType = typename OutputImageType::SpacingType |
Definition at line 100 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::Pointer = SmartPointer<Self> |
Definition at line 82 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::Self = FastMarchingImageFilterBase |
Definition at line 80 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::Superclass = FastMarchingBase<TInput, TOutput> |
Definition at line 81 of file itkFastMarchingImageFilterBase.h.
|
protected |
|
overrideprotecteddefault |
|
overrideprotected |
Make sure the given node does not violate any topological constraint
|
protected |
|
protected |
|
overrideprotected |
|
overrideprotected |
Generate the output image meta information.
|
protected |
Find the nodes were the front will propagate given a node
|
overrideprotectedvirtual |
Returns the label value for a given node
Implements itk::FastMarchingBase< TInput, TOutput >.
|
virtual |
|
override |
|
virtual |
The output largest 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 largest 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 largest 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 largest 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 146 of file itkFastMarchingImageFilterBase.h.
|
virtual |
The output largest 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 largest 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 largest 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 largest 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 largest 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 largest 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 largest 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 141 of file itkFastMarchingImageFilterBase.h.
|
virtual |
The output largest 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 largest 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
|
staticconstexpr |
Definition at line 114 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 171 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 263 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 264 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 189 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 272 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 188 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 173 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 178 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 176 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 175 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 177 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 179 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 251 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 250 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 172 of file itkFastMarchingImageFilterBase.h.