ITK  5.4.0
Insight Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | List of all members
itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput > Class Template Reference

#include <itkFastMarchingUpwindGradientImageFilterBase.h>

Detailed Description

template<typename TInput, typename TOutput>
class itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >

Generates the upwind gradient field of fast marching arrival times.

This filter adds some extra functionality to its base class. While the solution T(x) of the Eikonal equation is being generated by the base class with the fast marching method, the filter generates the upwind gradient vectors of T(x), storing them in an image.

Since the Eikonal equation generates the arrival times of a wave traveling at a given speed, the generated gradient vectors can be interpreted as the slowness (1/velocity) vectors of the front (the quantity inside the modulus operator in the Eikonal equation).

Gradient vectors are computed using upwind finite differences, that is, information only propagates from points where the wavefront has already passed. This is consistent with how the fast marching method works.

For an alternative implementation, see itk::FastMarchingUpwindGradientImageFilter.

Author
Luca Antiga Ph.D. Biomedical Technologies Laboratory, Bioengineering Department, Mario Negri Institute, Italy.
See also
FastMarchingUpwindGradientImageFilter

Definition at line 54 of file itkFastMarchingUpwindGradientImageFilterBase.h.

+ Inheritance diagram for itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >:
+ Collaboration diagram for itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >:

Public Types

using ConstPointer = SmartPointer< const Self >
 
using GradientImagePointer = typename GradientImageType::Pointer
 
using GradientImageType = Image< GradientPixelType, ImageDimension >
 
using GradientPixelType = CovariantVector< OutputPixelType, ImageDimension >
 
using Pointer = SmartPointer< Self >
 
using Self = FastMarchingUpwindGradientImageFilterBase
 
using Superclass = FastMarchingImageFilterBase< TInput, TOutput >
 
- Public Types inherited from itk::FastMarchingImageFilterBase< TInput, TOutput >
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 >
 

Public Member Functions

GradientImageTypeGetGradientImage ()
 
 itkOverrideGetNameOfClassMacro (FastMarchingUpwindGradientImageFilterBase)
 
- Public Member Functions inherited from itk::FastMarchingImageFilterBase< TInput, TOutput >
virtual LabelImageTypeGetModifiableLabelImage ()
 
 itkOverrideGetNameOfClassMacro (FastMarchingImageFilterBase)
 
virtual void SetOutputSize (const OutputSizeType &size)
 
virtual OutputSizeType GetOutputSize () const
 
virtual void SetOutputRegion (OutputRegionType _arg)
 
virtual const OutputRegionTypeGetOutputRegion () const
 
virtual void SetOutputSpacing (OutputSpacingType _arg)
 
virtual const OutputSpacingTypeGetOutputSpacing () const
 
virtual void SetOutputDirection (OutputDirectionType _arg)
 
virtual const OutputDirectionTypeGetOutputDirection () const
 
virtual void SetOutputOrigin (OutputPointType _arg)
 
virtual const OutputPointTypeGetOutputOrigin () const
 
virtual void SetOverrideOutputInformation (bool _arg)
 
virtual const bool & GetOverrideOutputInformation () const
 
virtual void OverrideOutputInformationOn ()
 
- Public Member Functions inherited from itk::FastMarchingBase< TInput, TOutput >
virtual StoppingCriterionTypeGetModifiableStoppingCriterion ()
 
virtual double GetNormalizationFactor ()
 
virtual double GetSpeedConstant ()
 
virtual OutputPixelType GetTargetReachedValue ()
 
 itkOverrideGetNameOfClassMacro (FastMarchingBase)
 
virtual void SetCollectPoints (bool _arg)
 
virtual void SetNormalizationFactor (double _arg)
 
virtual void SetSpeedConstant (double _arg)
 
virtual void SetStoppingCriterion (StoppingCriterionType *_arg)
 
virtual void SetTopologyCheck (const TopologyCheckEnum _arg)
 
virtual const TopologyCheckEnumGetTopologyCheck () const
 
virtual void SetTrialPoints (NodePairContainerType *_arg)
 
virtual NodePairContainerTypeGetModifiableTrialPoints ()
 
virtual void SetAlivePoints (NodePairContainerType *_arg)
 
virtual NodePairContainerTypeGetModifiableAlivePoints ()
 
virtual void SetProcessedPoints (NodePairContainerType *_arg)
 
virtual NodePairContainerTypeGetModifiableProcessedPoints ()
 
virtual void SetForbiddenPoints (NodePairContainerType *_arg)
 
virtual NodePairContainerTypeGetModifiableForbiddenPoints ()
 
virtual const bool & GetCollectPoints () const
 
virtual void CollectPointsOn ()
 

Static Public Member Functions

static Pointer New ()
 
- Static Public Member Functions inherited from itk::FastMarchingImageFilterBase< TInput, TOutput >
static Pointer New ()
 

Static Public Attributes

static constexpr unsigned int ImageDimension = Superclass::ImageDimension
 
- Static Public Attributes inherited from itk::FastMarchingImageFilterBase< TInput, TOutput >
static constexpr unsigned int ImageDimension = Traits::ImageDimension
 

Protected Member Functions

virtual void ComputeGradient (OutputImageType *oImage, const NodeType &iNode)
 
 FastMarchingUpwindGradientImageFilterBase ()
 
void InitializeOutput (OutputImageType *output) override
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
void UpdateNeighbors (OutputImageType *oImage, const NodeType &iNode) override
 
 ~FastMarchingUpwindGradientImageFilterBase () override=default
 
- Protected Member Functions inherited from itk::FastMarchingImageFilterBase< TInput, TOutput >
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 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 >
 
- Protected Attributes inherited from itk::FastMarchingImageFilterBase< TInput, TOutput >
OutputRegionType m_BufferedRegion {}
 
Array< unsigned char > m_C1Indices [12] {}
 
Array< unsigned char > m_C2Indices [8] {}
 
ConnectedComponentImagePointer m_ConnectedComponentImage {}
 
const InputImageTypem_InputCache {}
 
LabelImagePointer m_LabelImage {}
 
NodeType m_LastIndex {}
 
OutputDirectionType m_OutputDirection {}
 
OutputPointType m_OutputOrigin {}
 
OutputRegionType m_OutputRegion {}
 
OutputSpacingType m_OutputSpacing {}
 
bool m_OverrideOutputInformation { false }
 
Array< unsigned char > m_ReflectionIndices [2] {}
 
Array< unsigned char > m_RotationIndices [4] {}
 
NodeType m_StartIndex {}
 
- Protected Attributes inherited from itk::FastMarchingBase< TInput, TOutput >
NodePairContainerPointer m_AlivePoints {}
 
bool m_CollectPoints {}
 
NodePairContainerPointer m_ForbiddenPoints {}
 
PriorityQueueType m_Heap {}
 
double m_InverseSpeed {}
 
OutputPixelType m_LargeValue {}
 
double m_NormalizationFactor {}
 
NodePairContainerPointer m_ProcessedPoints {}
 
double m_SpeedConstant {}
 
StoppingCriterionPointer m_StoppingCriterion {}
 
OutputPixelType m_TargetReachedValue {}
 
TopologyCheckEnum m_TopologyCheck {}
 
OutputPixelType m_TopologyValue {}
 
NodePairContainerPointer m_TrialPoints {}
 

Member Typedef Documentation

◆ ConstPointer

template<typename TInput , typename TOutput >
using itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >::ConstPointer = SmartPointer<const Self>

◆ GradientImagePointer

template<typename TInput , typename TOutput >
using itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >::GradientImagePointer = typename GradientImageType::Pointer

GradientImagePointer type alias support

Definition at line 88 of file itkFastMarchingUpwindGradientImageFilterBase.h.

◆ GradientImageType

template<typename TInput , typename TOutput >
using itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >::GradientImageType = Image<GradientPixelType, ImageDimension>

GradientImage type alias support

Definition at line 85 of file itkFastMarchingUpwindGradientImageFilterBase.h.

◆ GradientPixelType

template<typename TInput , typename TOutput >
using itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >::GradientPixelType = CovariantVector<OutputPixelType, ImageDimension>

GradientPixel type alias support

Definition at line 82 of file itkFastMarchingUpwindGradientImageFilterBase.h.

◆ Pointer

template<typename TInput , typename TOutput >
using itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >::Pointer = SmartPointer<Self>

◆ Self

template<typename TInput , typename TOutput >
using itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >::Self = FastMarchingUpwindGradientImageFilterBase

Standard class typedefs.

Definition at line 61 of file itkFastMarchingUpwindGradientImageFilterBase.h.

◆ Superclass

template<typename TInput , typename TOutput >
using itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >::Superclass = FastMarchingImageFilterBase<TInput, TOutput>

Constructor & Destructor Documentation

◆ FastMarchingUpwindGradientImageFilterBase()

template<typename TInput , typename TOutput >
itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >::FastMarchingUpwindGradientImageFilterBase ( )
protected

◆ ~FastMarchingUpwindGradientImageFilterBase()

template<typename TInput , typename TOutput >
itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >::~FastMarchingUpwindGradientImageFilterBase ( )
overrideprotecteddefault

Member Function Documentation

◆ ComputeGradient()

template<typename TInput , typename TOutput >
virtual void itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >::ComputeGradient ( OutputImageType oImage,
const NodeType iNode 
)
protectedvirtual

◆ GetGradientImage()

template<typename TInput , typename TOutput >
GradientImageType* itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >::GetGradientImage ( )

Get the gradient image.

◆ InitializeOutput()

template<typename TInput , typename TOutput >
void itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >::InitializeOutput ( OutputImageType output)
overrideprotected

◆ itkOverrideGetNameOfClassMacro()

template<typename TInput , typename TOutput >
itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >::itkOverrideGetNameOfClassMacro ( FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >  )

Run-time type information (and related methods).

◆ New()

template<typename TInput , typename TOutput >
static Pointer itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >::New ( )
static

Method for creation through the object factory.

◆ PrintSelf()

template<typename TInput , typename TOutput >
void itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
overrideprotected

◆ UpdateNeighbors()

template<typename TInput , typename TOutput >
void itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >::UpdateNeighbors ( OutputImageType oImage,
const NodeType iNode 
)
overrideprotected

Member Data Documentation

◆ ImageDimension

template<typename TInput , typename TOutput >
constexpr unsigned int itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >::ImageDimension = Superclass::ImageDimension
staticconstexpr

The dimension of the level set.

Definition at line 74 of file itkFastMarchingUpwindGradientImageFilterBase.h.


The documentation for this class was generated from the following file: