ITK  5.0.0
Insight Segmentation and Registration 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>

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

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 travelling 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 53 of file itkFastMarchingUpwindGradientImageFilterBase.h.

Public Types

using ConstPointer = SmartPointer< const Self >
 
using GradientImagePointer = typename GradientImageType::Pointer
 
using GradientImageType = Image< GradientPixelType, ImageDimension >
 
using GradientPixelType = CovariantVector< OutputPixelType, ImageDimension >
 
using NodeType = typename Superclass::NodeType
 
using OutputImageType = typename Superclass::OutputImageType
 
using OutputPixelType = typename Superclass::OutputPixelType
 
using OutputSpacingType = typename Superclass::OutputSpacingType
 
using Pointer = SmartPointer< Self >
 
using Self = FastMarchingUpwindGradientImageFilterBase
 
using Superclass = FastMarchingImageFilterBase< TInput, TOutput >
 
using Traits = typename Superclass::Traits
 
- 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 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 >
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother () const
 
GradientImageTypeGetGradientImage ()
 
virtual const char * GetNameOfClass () const
 
- Public Member Functions inherited from itk::FastMarchingImageFilterBase< TInput, TOutput >
virtual ::itk::LightObject::Pointer CreateAnother () const
 
virtual const LabelImageTypeGetLabelImage () const
 
virtual LabelImageTypeGetModifiableLabelImage ()
 
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 ()
 
virtual void OverrideOutputInformationOff ()
 
- Public Member Functions inherited from itk::FastMarchingBase< TInput, TOutput >
virtual StoppingCriterionTypeGetModifiableStoppingCriterion ()
 
virtual double GetNormalizationFactor ()
 
virtual double GetSpeedConstant ()
 
virtual const
StoppingCriterionType
GetStoppingCriterion () const
 
virtual OutputPixelType GetTargetReachedValue ()
 
virtual void SetCollectPoints (bool _arg)
 
virtual void SetNormalizationFactor (double _arg)
 
virtual void SetSpeedConstant (double _arg)
 
virtual void SetStoppingCriterion (StoppingCriterionType *_arg)
 
virtual void SetTopologyCheck (TopologyCheckType _arg)
 
virtual const TopologyCheckTypeGetTopologyCheck () const
 
virtual void SetTrialPoints (NodePairContainerType *_arg)
 
virtual NodePairContainerTypeGetModifiableTrialPoints ()
 
virtual const
NodePairContainerType
GetTrialPoints () const
 
virtual void SetAlivePoints (NodePairContainerType *_arg)
 
virtual NodePairContainerTypeGetModifiableAlivePoints ()
 
virtual const
NodePairContainerType
GetAlivePoints () const
 
virtual void SetProcessedPoints (NodePairContainerType *_arg)
 
virtual NodePairContainerTypeGetModifiableProcessedPoints ()
 
virtual const
NodePairContainerType
GetProcessedPoints () const
 
virtual void SetForbiddenPoints (NodePairContainerType *_arg)
 
virtual NodePairContainerTypeGetModifiableForbiddenPoints ()
 
virtual const
NodePairContainerType
GetForbiddenPoints () const
 
virtual const bool & GetCollectPoints () const
 
virtual void CollectPointsOn ()
 
virtual void CollectPointsOff ()
 

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 *oImage) 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 *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 >
 
- 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
 
TopologyCheckType m_TopologyCheck
 
OutputPixelType m_TopologyValue
 
NodePairContainerPointer m_TrialPoints
 

Member Typedef Documentation

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

GradientImagePointer type alias support

Definition at line 90 of file itkFastMarchingUpwindGradientImageFilterBase.h.

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

GradientImage type alias support

Definition at line 87 of file itkFastMarchingUpwindGradientImageFilterBase.h.

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

GradientPixel type alias support

Definition at line 83 of file itkFastMarchingUpwindGradientImageFilterBase.h.

template<typename TInput , typename TOutput >
using itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >::NodeType = typename Superclass::NodeType
template<typename TInput , typename TOutput >
using itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >::OutputImageType = typename Superclass::OutputImageType
template<typename TInput , typename TOutput >
using itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >::OutputPixelType = typename Superclass::OutputPixelType
template<typename TInput , typename TOutput >
using itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >::OutputSpacingType = typename Superclass::OutputSpacingType
template<typename TInput , typename TOutput >
using itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >::Pointer = SmartPointer< Self >
template<typename TInput , typename TOutput >
using itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >::Self = FastMarchingUpwindGradientImageFilterBase

Standard class typdedefs.

Definition at line 60 of file itkFastMarchingUpwindGradientImageFilterBase.h.

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

Constructor & Destructor Documentation

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

Member Function Documentation

template<typename TInput , typename TOutput >
virtual void itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >::ComputeGradient ( OutputImageType oImage,
const NodeType iNode 
)
protectedvirtual
template<typename TInput , typename TOutput >
virtual::itk::LightObject::Pointer itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >::CreateAnother ( ) const
template<typename TInput , typename TOutput >
GradientImageType* itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >::GetGradientImage ( )

Get the gradient image.

template<typename TInput , typename TOutput >
virtual const char* itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >::GetNameOfClass ( ) const
virtual

Run-time type information (and related methods).

Reimplemented from itk::FastMarchingImageFilterBase< TInput, TOutput >.

template<typename TInput , typename TOutput >
void itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >::InitializeOutput ( OutputImageType oImage)
overrideprotected
template<typename TInput , typename TOutput >
static Pointer itk::FastMarchingUpwindGradientImageFilterBase< TInput, TOutput >::New ( )
static

Method for creation through the object factory.

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

Member Data Documentation

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

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: