#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 [96].
For an alternative implementation, see itk::FastMarchingImageFilter.
TTraits | traits |
Definition at line 73 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 |
using | InternalNodeStructureArray = FixedArray<InternalNodeStructure, ImageDimension> |
using | LabelImagePointer = typename LabelImageType::Pointer |
using | LabelImageType = Image<unsigned char, ImageDimension> |
using | 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 |
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 |
![]() | |
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 |
![]() | |
FastMarchingBase () | |
void | GenerateData () override |
void | Initialize (OutputDomainType *oDomain) |
void | PrintSelf (std::ostream &os, Indent indent) const override |
~FastMarchingBase () override=default | |
Additional Inherited Members | |
![]() | |
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 119 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::ConnectedComponentImageType = Image<unsigned int, ImageDimension> |
Definition at line 118 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::ConstPointer = SmartPointer<const Self> |
Definition at line 81 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::InputImagePointer = typename Superclass::InputDomainPointer |
Definition at line 92 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::InputImageType = typename Superclass::InputDomainType |
Definition at line 91 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingBase< TInput, TOutput >::InputPixelType |
Definition at line 140 of file itkFastMarchingBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::InternalNodeStructureArray = FixedArray<InternalNodeStructure, ImageDimension> |
Definition at line 127 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::LabelImagePointer = typename LabelImageType::Pointer |
Definition at line 116 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::LabelImageType = Image<unsigned char, ImageDimension> |
Definition at line 115 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingBase< TInput, TOutput >::LabelType |
Definition at line 156 of file itkFastMarchingBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::NeighborhoodIteratorType = NeighborhoodIterator<LabelImageType> |
Definition at line 121 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::NeighborhoodRadiusType = typename NeighborhoodIteratorType::RadiusType |
Definition at line 122 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::NodePairContainerConstIterator = typename Traits::NodePairContainerConstIterator |
Definition at line 108 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::NodePairContainerPointer = typename Traits::NodePairContainerPointer |
Definition at line 107 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::NodePairContainerType = typename Traits::NodePairContainerType |
Definition at line 106 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::NodePairType = typename Traits::NodePairType |
Definition at line 105 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::NodeType = typename Traits::NodeType |
Definition at line 104 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::OutputDirectionType = typename OutputImageType::DirectionType |
Definition at line 102 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::OutputImagePointer = typename Superclass::OutputDomainPointer |
Definition at line 96 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::OutputImageType = typename Superclass::OutputDomainType |
Definition at line 95 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingBase< TInput, TOutput >::OutputPixelType |
Definition at line 145 of file itkFastMarchingBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::OutputPointType = typename OutputImageType::PointType |
Definition at line 101 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::OutputRegionType = typename OutputImageType::RegionType |
Definition at line 100 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::OutputSizeType = typename OutputImageType::SizeType |
Definition at line 99 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::OutputSpacingType = typename OutputImageType::SpacingType |
Definition at line 98 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::Pointer = SmartPointer<Self> |
Definition at line 80 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::Self = FastMarchingImageFilterBase |
Definition at line 78 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingImageFilterBase< TInput, TOutput >::Superclass = FastMarchingBase<TInput, TOutput> |
Definition at line 79 of file itkFastMarchingImageFilterBase.h.
using itk::FastMarchingBase< TInput, TOutput >::Traits |
Definition at line 126 of file itkFastMarchingBase.h.
|
protected |
Referenced by GetNameOfClass().
|
overrideprotecteddefault |
|
overrideprotectedvirtual |
Make sure the given node does not violate any topological constraint
Implements itk::FastMarchingBase< TInput, TOutput >.
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 |
|
override |
References FastMarchingImageFilterBase().
|
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 144 of file itkFastMarchingImageFilterBase.h.
References m_OutputRegion.
|
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 |
Returns the output 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.
|
overrideprotectedvirtual |
Get the total number of nodes in the domain.
Implements itk::FastMarchingBase< TInput, TOutput >.
|
protected |
|
protected |
|
overrideprotectedvirtual |
Make sure the given node does not violate any topological constraint
Implements itk::FastMarchingBase< TInput, TOutput >.
Reimplemented in itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >.
|
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.
|
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 139 of file itkFastMarchingImageFilterBase.h.
References m_OutputRegion.
|
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 |
Set the output value (front 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.
|
protected |
Solve the quadratic equation
|
overrideprotectedvirtual |
Update values for the neighbors of a given node
Implements itk::FastMarchingBase< TInput, TOutput >.
Reimplemented in itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >.
|
overrideprotectedvirtual |
Update value for a given node
Implements itk::FastMarchingBase< TInput, TOutput >.
|
staticconstexpr |
Definition at line 112 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 169 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 261 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 262 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 187 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 270 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 186 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 171 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 176 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 174 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 173 of file itkFastMarchingImageFilterBase.h.
Referenced by GetOutputSize(), and SetOutputSize().
|
protected |
Definition at line 175 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 177 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 249 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 248 of file itkFastMarchingImageFilterBase.h.
|
protected |
Definition at line 170 of file itkFastMarchingImageFilterBase.h.