ITK  4.9.0
Insight Segmentation and Registration Toolkit
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
itk::FastMarchingImageFilter< TLevelSet, TSpeedImage > Class Template Reference

#include <itkFastMarchingImageFilter.h>

+ Inheritance diagram for itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >:
+ Collaboration diagram for itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >:

Detailed Description

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
class itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >

Solve an Eikonal equation using Fast Marching.

Fast marching solves an Eikonal equation where the speed is always non-negative and depends on the position only. Starting from an initial position on the front, fast marching systematically moves the front forward one grid point at a time.

Updates are preformed using an entropy satisfy scheme where only "upwind" neighborhoods are used. This implementation of Fast Marching uses a std::priority_queue to locate the next proper grid position to update.

Fast Marching sweeps through N grid points in (N log N) steps to obtain the arrival time value as the front propagates through the grid.

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.

This class is templated over the level set image type and the speed image type. The initial front is specified by two containers: one containing the known points and one containing the trial points. Alive points are those that are already part of the object, and trial points are considered for inclusion. In order for the filter to evolve, at least some trial points must be specified. These can for instance be specified as the layer of pixels around the alive points.

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 ITK_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 in an approximate distance function from the initial alive points. FastMarchingImageFilter is used in the ReinitializeLevelSetImageFilter object to create a signed distance function from the zero level set.

The algorithm can be terminated early by setting an appropriate stopping value. The algorithm terminates when the current arrival time being processed is greater than the stopping value.

There are two ways to specify the output image information ( LargestPossibleRegion, Spacing, Origin): (a) it is copied directly from the input speed image or (b) it is specified by the user. Default values are used if the user does not specify all the information.

The output information is computed as follows. If the speed image is ITK_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 SetOutputRegion(), SetOutputSpacing(), SetOutputDirection(), and SetOutputOrigin(). Else if the speed image is not ITK_NULLPTR, the output information is copied from the input speed image.

Possible Improvements: In the current implemenation, std::priority_queue only allows taking nodes out from the front and putting nodes in from the back. To update a value already on the heap, a new node is added to the heap. The defunct old node is left on the heap. When it is removed from the top, it will be recognized as invalid and not used. Future implementations can implement the heap in a different way allowing the values to be updated. This will generally require some sift-up and sift-down functions and an image of back-pointers going from the image to heap in order to locate the node which is to be updated.

See Also
LevelSetTypeDefault
Examples:
Examples/Iterators/NeighborhoodIterators6.cxx, Examples/Segmentation/CurvesLevelSetImageFilter.cxx, Examples/Segmentation/FastMarchingImageFilter.cxx, Examples/Segmentation/GeodesicActiveContourImageFilter.cxx, Examples/Segmentation/GeodesicActiveContourShapePriorLevelSetImageFilter.cxx, Examples/Segmentation/ShapeDetectionLevelSetFilter.cxx, Examples/Segmentation/ThresholdSegmentationLevelSetImageFilter.cxx, and SphinxExamples/src/Segmentation/LevelSets/SegmentWithGeodesicActiveContourLevelSet/Code.cxx.

Definition at line 106 of file itkFastMarchingImageFilter.h.

Classes

class  AxisNodeType
 

Public Types

typedef SmartPointer< const SelfConstPointer
 
typedef Index
< itkGetStaticConstMacro(SetDimension) > 
IndexType
 
typedef LabelImageType::Pointer LabelImagePointer
 
typedef Image< unsigned char,
itkGetStaticConstMacro(SetDimension) > 
LabelImageType
 
enum  LabelType {
  FarPoint = 0,
  AlivePoint,
  TrialPoint,
  InitialTrialPoint,
  OutsidePoint
}
 
typedef
LevelSetType::LevelSetImageType 
LevelSetImageType
 
typedef
LevelSetType::LevelSetPointer 
LevelSetPointer
 
typedef LevelSetTypeDefault
< TLevelSet > 
LevelSetType
 
typedef LevelSetType::NodeContainer NodeContainer
 
typedef
LevelSetType::NodeContainerPointer 
NodeContainerPointer
 
typedef NodeType::IndexType NodeIndexType
 
typedef LevelSetType::NodeType NodeType
 
typedef
LevelSetImageType::DirectionType 
OutputDirectionType
 
typedef
LevelSetImageType::PointType 
OutputPointType
 
typedef
LevelSetImageType::RegionType 
OutputRegionType
 
typedef LevelSetImageType::SizeType OutputSizeType
 
typedef
LevelSetImageType::SpacingType 
OutputSpacingType
 
typedef LevelSetType::PixelType PixelType
 
typedef SmartPointer< SelfPointer
 
typedef FastMarchingImageFilter Self
 
typedef
SpeedImageType::ConstPointer 
SpeedImageConstPointer
 
typedef SpeedImageType::Pointer SpeedImagePointer
 
typedef TSpeedImage SpeedImageType
 
typedef ImageSource< TLevelSet > Superclass
 
- Public Types inherited from itk::ImageToImageFilter< TSpeedImage, TLevelSet >
typedef SmartPointer< const SelfConstPointer
 
typedef
InputImageType::ConstPointer 
InputImageConstPointer
 
typedef InputImageType::PixelType InputImagePixelType
 
typedef InputImageType::Pointer InputImagePointer
 
typedef InputImageType::RegionType InputImageRegionType
 
typedef TSpeedImage InputImageType
 
typedef
Superclass::OutputImagePixelType 
OutputImagePixelType
 
typedef
Superclass::OutputImageRegionType 
OutputImageRegionType
 
typedef SmartPointer< SelfPointer
 
typedef ImageToImageFilter Self
 
typedef ImageSource< TLevelSet > Superclass
 
- Public Types inherited from itk::ImageSource< TLevelSet >
typedef SmartPointer< const SelfConstPointer
 
typedef
Superclass::DataObjectIdentifierType 
DataObjectIdentifierType
 
typedef DataObject::Pointer DataObjectPointer
 
typedef
Superclass::DataObjectPointerArraySizeType 
DataObjectPointerArraySizeType
 
typedef OutputImageType::PixelType OutputImagePixelType
 
typedef OutputImageType::Pointer OutputImagePointer
 
typedef OutputImageType::RegionType OutputImageRegionType
 
typedef TLevelSet OutputImageType
 
typedef SmartPointer< SelfPointer
 
typedef ImageSource Self
 
typedef ProcessObject Superclass
 
- Public Types inherited from itk::ProcessObject
typedef SmartPointer< const SelfConstPointer
 
typedef
DataObject::DataObjectIdentifierType 
DataObjectIdentifierType
 
typedef DataObject::Pointer DataObjectPointer
 
typedef std::vector
< DataObjectPointer
DataObjectPointerArray
 
typedef
DataObjectPointerArray::size_type 
DataObjectPointerArraySizeType
 
typedef std::vector
< DataObjectIdentifierType
NameArray
 
typedef SmartPointer< SelfPointer
 
typedef ProcessObject Self
 
typedef Object Superclass
 
- Public Types inherited from itk::Object
typedef SmartPointer< const SelfConstPointer
 
typedef SmartPointer< SelfPointer
 
typedef Object Self
 
typedef LightObject Superclass
 
- Public Types inherited from itk::LightObject
typedef SmartPointer< const SelfConstPointer
 
typedef SmartPointer< SelfPointer
 
typedef LightObject Self
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother () const
 
NodeContainerPointer GetAlivePoints ()
 
LabelImagePointer GetLabelImage () const
 
virtual const char * GetNameOfClass () const
 
NodeContainerPointer GetProcessedPoints () const
 
virtual const double & GetSpeedConstant () const
 
virtual const double & GetStoppingValue () const
 
NodeContainerPointer GetTrialPoints ()
 
template<typename TPixel >
void SetBinaryMask (Image< TPixel, SetDimension > *iImage)
 
virtual void SetCollectPoints (bool _arg)
 
virtual void SetStoppingValue (double _arg)
 
 typedef (Concept::SameDimension< SetDimension, SpeedImageDimension >) SameDimensionCheck
 
 typedef (Concept::Convertible< typename TSpeedImage::PixelType, double >) SpeedConvertibleToDoubleCheck
 
 typedef (Concept::Convertible< double, PixelType >) DoubleConvertibleToLevelSetCheck
 
 typedef (Concept::OStreamWritable< PixelType >) LevelSetOStreamWritableCheck
 
void SetOutsidePoints (NodeContainer *points)
 
void SetAlivePoints (NodeContainer *points)
 
void SetTrialPoints (NodeContainer *points)
 
void SetSpeedConstant (double value)
 
virtual void SetNormalizationFactor (double _arg)
 
virtual double GetNormalizationFactor () const
 
virtual const bool & GetCollectPoints () const
 
virtual void CollectPointsOn ()
 
virtual void CollectPointsOff ()
 
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::ImageToImageFilter< TSpeedImage, TLevelSet >
const InputImageTypeGetInput () const
 
const InputImageTypeGetInput (unsigned int idx) const
 
virtual void PopBackInput () override
 
virtual void PopFrontInput () override
 
virtual void PushBackInput (const InputImageType *image)
 
virtual void PushFrontInput (const InputImageType *image)
 
virtual void SetInput (const InputImageType *image)
 
virtual void SetInput (unsigned int, const TSpeedImage *image)
 
virtual void SetCoordinateTolerance (double _arg)
 
virtual double GetCoordinateTolerance () const
 
virtual void SetDirectionTolerance (double _arg)
 
virtual double GetDirectionTolerance () const
 
- Public Member Functions inherited from itk::ImageSource< TLevelSet >
OutputImageTypeGetOutput (unsigned int idx)
 
virtual void GraftNthOutput (unsigned int idx, DataObject *output)
 
virtual void GraftOutput (const DataObjectIdentifierType &key, DataObject *output)
 
OutputImageTypeGetOutput ()
 
const OutputImageTypeGetOutput () const
 
virtual void GraftOutput (DataObject *output)
 
virtual
ProcessObject::DataObjectPointer 
MakeOutput (ProcessObject::DataObjectPointerArraySizeType idx) override
 
virtual
ProcessObject::DataObjectPointer 
MakeOutput (const ProcessObject::DataObjectIdentifierType &) override
 
- Public Member Functions inherited from itk::ProcessObject
virtual void AbortGenerateDataOff ()
 
virtual void AbortGenerateDataOn ()
 
virtual const bool & GetAbortGenerateData () const
 
DataObjectPointerArray GetIndexedInputs ()
 
DataObjectPointerArray GetIndexedOutputs ()
 
NameArray GetInputNames () const
 
DataObjectPointerArray GetInputs ()
 
MultiThreader * GetMultiThreader () const
 
DataObjectPointerArraySizeType GetNumberOfIndexedInputs () const
 
DataObjectPointerArraySizeType GetNumberOfIndexedOutputs () const
 
DataObjectPointerArraySizeType GetNumberOfInputs () const
 
DataObjectPointerArraySizeType GetNumberOfOutputs () const
 
virtual
DataObjectPointerArraySizeType 
GetNumberOfValidRequiredInputs () const
 
NameArray GetOutputNames () const
 
DataObjectPointerArray GetOutputs ()
 
virtual const float & GetProgress () const
 
NameArray GetRequiredInputNames () const
 
bool HasInput (const DataObjectIdentifierType &key) const
 
bool HasOutput (const DataObjectIdentifierType &key) const
 
virtual void PrepareOutputs ()
 
virtual void PropagateRequestedRegion (DataObject *output)
 
virtual void ResetPipeline ()
 
virtual void SetAbortGenerateData (bool _arg)
 
virtual void Update ()
 
virtual void UpdateLargestPossibleRegion ()
 
virtual void UpdateOutputData (DataObject *output)
 
virtual void UpdateOutputInformation ()
 
void UpdateProgress (float progress)
 
void SetProgress (float progress)
 
virtual void SetReleaseDataFlag (bool flag)
 
virtual bool GetReleaseDataFlag () const
 
void ReleaseDataFlagOn ()
 
void ReleaseDataFlagOff ()
 
virtual void SetReleaseDataBeforeUpdateFlag (bool _arg)
 
virtual const bool & GetReleaseDataBeforeUpdateFlag () const
 
virtual void ReleaseDataBeforeUpdateFlagOn ()
 
virtual void ReleaseDataBeforeUpdateFlagOff ()
 
virtual void SetNumberOfThreads (ThreadIdType _arg)
 
virtual const ThreadIdTypeGetNumberOfThreads () const
 
- Public Member Functions inherited from itk::Object
unsigned long AddObserver (const EventObject &event, Command *)
 
unsigned long AddObserver (const EventObject &event, Command *) const
 
virtual void DebugOff () const
 
virtual void DebugOn () const
 
CommandGetCommand (unsigned long tag)
 
bool GetDebug () const
 
MetaDataDictionaryGetMetaDataDictionary ()
 
const MetaDataDictionaryGetMetaDataDictionary () const
 
virtual ModifiedTimeType GetMTime () const
 
virtual const TimeStampGetTimeStamp () const
 
bool HasObserver (const EventObject &event) const
 
void InvokeEvent (const EventObject &)
 
void InvokeEvent (const EventObject &) const
 
virtual void Modified () const
 
virtual void Register () const override
 
void RemoveAllObservers ()
 
void RemoveObserver (unsigned long tag)
 
void SetDebug (bool debugFlag) const
 
void SetMetaDataDictionary (const MetaDataDictionary &rhs)
 
virtual void SetReferenceCount (int) override
 
virtual void UnRegister () const noexceptoverride
 
virtual void SetObjectName (std::string _arg)
 
virtual const std::string & GetObjectName () const
 
- Public Member Functions inherited from itk::LightObject
virtual void Delete ()
 
virtual int GetReferenceCount () const
 
 itkCloneMacro (Self)
 
void Print (std::ostream &os, Indent indent=0) const
 

Static Public Member Functions

static Pointer New ()
 
- Static Public Member Functions inherited from itk::Object
static bool GetGlobalWarningDisplay ()
 
static void GlobalWarningDisplayOff ()
 
static void GlobalWarningDisplayOn ()
 
static Pointer New ()
 
static void SetGlobalWarningDisplay (bool flag)
 
- Static Public Member Functions inherited from itk::LightObject
static void BreakOnError ()
 
static Pointer New ()
 

Static Public Attributes

static const unsigned int SetDimension = LevelSetType::SetDimension
 
static const unsigned int SpeedImageDimension = SpeedImageType::ImageDimension
 
- Static Public Attributes inherited from itk::ImageToImageFilter< TSpeedImage, TLevelSet >
static const unsigned int InputImageDimension
 
static const unsigned int OutputImageDimension
 
- Static Public Attributes inherited from itk::ImageSource< TLevelSet >
static const unsigned int OutputImageDimension
 

Protected Types

typedef
LevelSetImageType::IndexType 
LevelSetIndexType
 
- Protected Types inherited from itk::ImageToImageFilter< TSpeedImage, TLevelSet >
typedef
ImageToImageFilterDetail::ImageRegionCopier
< itkGetStaticConstMacro(OutputImageDimension),
itkGetStaticConstMacro(InputImageDimension) > 
InputToOutputRegionCopierType
 
typedef
ImageToImageFilterDetail::ImageRegionCopier
< itkGetStaticConstMacro(InputImageDimension),
itkGetStaticConstMacro(OutputImageDimension) > 
OutputToInputRegionCopierType
 

Protected Member Functions

virtual void EnlargeOutputRequestedRegion (DataObject *output) override
 
 FastMarchingImageFilter ()
 
void GenerateData () override
 
virtual void GenerateOutputInformation () override
 
virtual const PixelTypeGetLargeValue () const
 
virtual const LevelSetIndexTypeGetLastIndex () const
 
const AxisNodeTypeGetNodeUsedInCalculation (unsigned int idx) const
 
virtual const LevelSetIndexTypeGetStartIndex () const
 
virtual void Initialize (LevelSetImageType *)
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
virtual void UpdateNeighbors (const IndexType &index, const SpeedImageType *, LevelSetImageType *)
 
virtual double UpdateValue (const IndexType &index, const SpeedImageType *, LevelSetImageType *)
 
 ~FastMarchingImageFilter ()
 
- Protected Member Functions inherited from itk::ImageToImageFilter< TSpeedImage, TLevelSet >
virtual void CallCopyInputRegionToOutputRegion (OutputImageRegionType &destRegion, const InputImageRegionType &srcRegion)
 
virtual void CallCopyOutputRegionToInputRegion (InputImageRegionType &destRegion, const OutputImageRegionType &srcRegion)
 
virtual void GenerateInputRequestedRegion () override
 
 ImageToImageFilter ()
 
virtual void VerifyInputInformation () override
 
 ~ImageToImageFilter ()
 
void PushBackInput (const DataObject *input) override
 
void PushFrontInput (const DataObject *input) override
 
- Protected Member Functions inherited from itk::ImageSource< TLevelSet >
virtual void AfterThreadedGenerateData ()
 
virtual void AllocateOutputs ()
 
virtual void BeforeThreadedGenerateData ()
 
virtual const
ImageRegionSplitterBase
GetImageRegionSplitter () const
 
 ImageSource ()
 
virtual unsigned int SplitRequestedRegion (unsigned int i, unsigned int pieces, OutputImageRegionType &splitRegion)
 
virtual void ThreadedGenerateData (const OutputImageRegionType &outputRegionForThread, ThreadIdType threadId)
 
virtual ~ImageSource ()
 
- Protected Member Functions inherited from itk::ProcessObject
virtual void AddInput (DataObject *input)
 
virtual void AddOutput (DataObject *output)
 
bool AddRequiredInputName (const DataObjectIdentifierType &)
 
bool AddRequiredInputName (const DataObjectIdentifierType &, DataObjectPointerArraySizeType idx)
 
virtual void CacheInputReleaseDataFlags ()
 
virtual void GenerateOutputRequestedRegion (DataObject *output)
 
DataObjectGetInput (const DataObjectIdentifierType &key)
 
const DataObjectGetInput (const DataObjectIdentifierType &key) const
 
virtual const
DataObjectPointerArraySizeType
GetNumberOfRequiredInputs () const
 
virtual const
DataObjectPointerArraySizeType
GetNumberOfRequiredOutputs () const
 
bool IsIndexedInputName (const DataObjectIdentifierType &) const
 
bool IsIndexedOutputName (const DataObjectIdentifierType &) const
 
bool IsRequiredInputName (const DataObjectIdentifierType &) const
 
 itkLegacyMacro (virtual void RemoveOutput(DataObject *output))
 
 itkLegacyMacro (void SetNumberOfOutputs(DataObjectPointerArraySizeType num))
 
 itkLegacyMacro (virtual void RemoveInput(DataObject *input))
 
 itkLegacyMacro (void SetNumberOfInputs(DataObjectPointerArraySizeType num))
 
DataObjectPointerArraySizeType MakeIndexFromInputName (const DataObjectIdentifierType &name) const
 
DataObjectPointerArraySizeType MakeIndexFromOutputName (const DataObjectIdentifierType &name) const
 
DataObjectIdentifierType MakeNameFromInputIndex (DataObjectPointerArraySizeType idx) const
 
DataObjectIdentifierType MakeNameFromOutputIndex (DataObjectPointerArraySizeType idx) const
 
 ProcessObject ()
 
virtual void PropagateResetPipeline ()
 
virtual void ReleaseInputs ()
 
virtual void RemoveInput (const DataObjectIdentifierType &key)
 
virtual void RemoveInput (DataObjectPointerArraySizeType)
 
virtual void RemoveOutput (const DataObjectIdentifierType &key)
 
virtual void RemoveOutput (DataObjectPointerArraySizeType idx)
 
bool RemoveRequiredInputName (const DataObjectIdentifierType &)
 
virtual void RestoreInputReleaseDataFlags ()
 
virtual void SetInput (const DataObjectIdentifierType &key, DataObject *input)
 
virtual void SetNthInput (DataObjectPointerArraySizeType num, DataObject *input)
 
virtual void SetNthOutput (DataObjectPointerArraySizeType num, DataObject *output)
 
void SetNumberOfIndexedInputs (DataObjectPointerArraySizeType num)
 
void SetNumberOfIndexedOutputs (DataObjectPointerArraySizeType num)
 
virtual void SetNumberOfRequiredInputs (DataObjectPointerArraySizeType)
 
virtual void SetNumberOfRequiredOutputs (DataObjectPointerArraySizeType _arg)
 
virtual void SetOutput (const DataObjectIdentifierType &key, DataObject *output)
 
virtual void SetPrimaryInput (DataObject *input)
 
virtual void SetPrimaryOutput (DataObject *output)
 
void SetRequiredInputNames (const NameArray &)
 
virtual void VerifyPreconditions ()
 
 ~ProcessObject ()
 
DataObjectGetInput (DataObjectPointerArraySizeType idx)
 
const DataObjectGetInput (DataObjectPointerArraySizeType idx) const
 
DataObjectGetPrimaryInput ()
 
const DataObjectGetPrimaryInput () const
 
virtual void SetPrimaryInputName (const DataObjectIdentifierType &key)
 
virtual const char * GetPrimaryInputName (void) const
 
DataObjectGetOutput (const DataObjectIdentifierType &key)
 
const DataObjectGetOutput (const DataObjectIdentifierType &key) const
 
virtual void SetPrimaryOutputName (const DataObjectIdentifierType &key)
 
virtual const char * GetPrimaryOutputName (void) const
 
DataObjectGetOutput (DataObjectPointerArraySizeType idx)
 
const DataObjectGetOutput (DataObjectPointerArraySizeType idx) const
 
DataObjectGetPrimaryOutput ()
 
const DataObjectGetPrimaryOutput () const
 
- Protected Member Functions inherited from itk::Object
 Object ()
 
bool PrintObservers (std::ostream &os, Indent indent) const
 
virtual void SetTimeStamp (const TimeStamp &time)
 
virtual ~Object ()
 
- Protected Member Functions inherited from itk::LightObject
virtual LightObject::Pointer InternalClone () const
 
 LightObject ()
 
virtual void PrintHeader (std::ostream &os, Indent indent) const
 
virtual void PrintTrailer (std::ostream &os, Indent indent) const
 
virtual ~LightObject ()
 

Protected Attributes

OutputRegionType m_BufferedRegion
 
LevelSetIndexType m_LastIndex
 
LevelSetIndexType m_StartIndex
 
- Protected Attributes inherited from itk::ProcessObject
TimeStamp m_OutputInformationMTime
 
bool m_Updating
 
- Protected Attributes inherited from itk::LightObject
AtomicInt< int > m_ReferenceCount
 

Private Types

typedef std::vector< AxisNodeTypeHeapContainer
 
typedef std::priority_queue
< AxisNodeType, HeapContainer,
NodeComparer
HeapType
 
typedef std::greater
< AxisNodeType
NodeComparer
 

Private Member Functions

 FastMarchingImageFilter (const Self &) ITK_DELETE_FUNCTION
 
void operator= (const Self &) ITK_DELETE_FUNCTION
 

Private Attributes

NodeContainerPointer m_AlivePoints
 
bool m_CollectPoints
 
double m_InverseSpeed
 
LabelImagePointer m_LabelImage
 
LevelSetImageType::PixelType m_LargeValue
 
AxisNodeType m_NodesUsed [SetDimension]
 
double m_NormalizationFactor
 
OutputDirectionType m_OutputDirection
 
OutputPointType m_OutputOrigin
 
OutputRegionType m_OutputRegion
 
OutputSpacingType m_OutputSpacing
 
NodeContainerPointer m_OutsidePoints
 
bool m_OverrideOutputInformation
 
NodeContainerPointer m_ProcessedPoints
 
double m_SpeedConstant
 
double m_StoppingValue
 
HeapType m_TrialHeap
 
NodeContainerPointer m_TrialPoints
 

Additional Inherited Members

- Static Protected Member Functions inherited from itk::ImageSource< TLevelSet >
static const
ImageRegionSplitterBase
GetGlobalDefaultSplitter ()
 
static ITK_THREAD_RETURN_TYPE ThreaderCallback (void *arg)
 

Member Typedef Documentation

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
typedef SmartPointer< const Self > itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::ConstPointer

Definition at line 114 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
typedef std::vector< AxisNodeType > itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::HeapContainer
private

Trial points are stored in a min-heap. This allow efficient access to the trial point with minimum value which is the next grid point the algorithm processes.

Definition at line 408 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
typedef std::priority_queue< AxisNodeType, HeapContainer, NodeComparer > itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::HeapType
private

Definition at line 411 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
typedef Index< itkGetStaticConstMacro(SetDimension) > itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::IndexType

Index typedef support.

Definition at line 165 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
typedef LabelImageType::Pointer itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::LabelImagePointer

LabelImagePointer typedef support.

Definition at line 178 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
typedef Image< unsigned char, itkGetStaticConstMacro(SetDimension) > itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::LabelImageType

LabelImage typedef support.

Definition at line 175 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
typedef LevelSetType::LevelSetImageType itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::LevelSetImageType

Definition at line 124 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
typedef LevelSetImageType::IndexType itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::LevelSetIndexType
protected

Definition at line 372 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
typedef LevelSetType::LevelSetPointer itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::LevelSetPointer

Definition at line 125 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
typedef LevelSetTypeDefault< TLevelSet > itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::LevelSetType

Typedef support of level set method types.

Definition at line 120 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
typedef std::greater< AxisNodeType > itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::NodeComparer
private

Definition at line 409 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
typedef LevelSetType::NodeContainer itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::NodeContainer

Definition at line 129 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
typedef LevelSetType::NodeContainerPointer itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::NodeContainerPointer

Definition at line 130 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
typedef NodeType::IndexType itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::NodeIndexType

Definition at line 128 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
typedef LevelSetType::NodeType itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::NodeType

Definition at line 127 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
typedef LevelSetImageType::DirectionType itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::OutputDirectionType

Definition at line 134 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
typedef LevelSetImageType::PointType itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::OutputPointType

Definition at line 135 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
typedef LevelSetImageType::RegionType itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::OutputRegionType

Definition at line 132 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
typedef LevelSetImageType::SizeType itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::OutputSizeType

Definition at line 131 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
typedef LevelSetImageType::SpacingType itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::OutputSpacingType

Definition at line 133 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
typedef LevelSetType::PixelType itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::PixelType

Definition at line 126 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
typedef SmartPointer< Self > itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::Pointer

Definition at line 113 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
typedef FastMarchingImageFilter itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::Self

Standard class typdedefs.

Definition at line 111 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
typedef SpeedImageType::ConstPointer itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::SpeedImageConstPointer

Definition at line 155 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
typedef SpeedImageType::Pointer itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::SpeedImagePointer

SpeedImagePointer typedef support.

Definition at line 154 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
typedef TSpeedImage itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::SpeedImageType

SpeedImage typedef support.

Definition at line 151 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
typedef ImageSource< TLevelSet > itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::Superclass

Definition at line 112 of file itkFastMarchingImageFilter.h.

Member Enumeration Documentation

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
enum itk::FastMarchingImageFilter::LabelType

Enum of Fast Marching algorithm point types. FarPoints represent far away points; TrialPoints represent points within a narrowband of the propagating front; and AlivePoints represent points which have already been processed.

Enumerator
FarPoint 
AlivePoint 
TrialPoint 
InitialTrialPoint 
OutsidePoint 

Definition at line 171 of file itkFastMarchingImageFilter.h.

Constructor & Destructor Documentation

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::FastMarchingImageFilter ( )
protected
template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::~FastMarchingImageFilter ( )
inlineprotected

Definition at line 344 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::FastMarchingImageFilter ( const Self )
private

Member Function Documentation

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
virtual void itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::CollectPointsOff ( )
virtual

Get thConste Collect Points flag.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
virtual void itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::CollectPointsOn ( )
virtual

Get thConste Collect Points flag.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
virtual::itk::LightObject::Pointer itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::CreateAnother ( ) const
virtual

Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.

Reimplemented from itk::Object.

Reimplemented in itk::FastMarchingUpwindGradientImageFilter< TLevelSet, TSpeedImage >.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
virtual void itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::EnlargeOutputRequestedRegion ( DataObject )
overrideprotectedvirtual

Give the process object a chance to indictate that it will produce more output than it was requested to produce. For example, many imaging filters must compute the entire output at once or can only produce output in complete slices. Such filters cannot handle smaller requested regions. These filters must provide an implementation of this method, setting the output requested region to the size they will produce. By default, a process object does not modify the size of the output requested region.

Reimplemented from itk::ProcessObject.

Reimplemented in itk::FastMarchingExtensionImageFilter< TLevelSet, TAuxValue, VAuxDimension, TSpeedImage >.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
void itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::GenerateData ( void  )
overrideprotectedvirtual

A version of GenerateData() specific for image processing filters. This implementation will split the processing across multiple threads. The buffer is allocated by this method. Then the BeforeThreadedGenerateData() method is called (if provided). Then, a series of threads are spawned each calling ThreadedGenerateData(). After all the threads have completed processing, the AfterThreadedGenerateData() method is called (if provided). If an image processing filter cannot be threaded, the filter should provide an implementation of GenerateData(). That implementation is responsible for allocating the output buffer. If a filter an be threaded, it should NOT provide a GenerateData() method but should provide a ThreadedGenerateData() instead.

See Also
ThreadedGenerateData()

Reimplemented from itk::ImageSource< TLevelSet >.

Reimplemented in itk::FastMarchingUpwindGradientImageFilter< TLevelSet, TSpeedImage >.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
virtual void itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::GenerateOutputInformation ( )
overrideprotectedvirtual

Generate the output image meta information.

Reimplemented from itk::ProcessObject.

Reimplemented in itk::FastMarchingExtensionImageFilter< TLevelSet, TAuxValue, VAuxDimension, TSpeedImage >.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
NodeContainerPointer itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::GetAlivePoints ( )
inline

Get the container of Alive Points representing the initial front.

Definition at line 230 of file itkFastMarchingImageFilter.h.

References itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::m_AlivePoints.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
virtual const bool& itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::GetCollectPoints ( ) const
virtual

Get thConste Collect Points flag.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
LabelImagePointer itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::GetLabelImage ( ) const
inline

Get the point type label image.

Definition at line 251 of file itkFastMarchingImageFilter.h.

References itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::m_LabelImage.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
virtual const PixelType& itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::GetLargeValue ( ) const
protectedvirtual

Get Large Value. This value is used to represent the concept of infinity for the time assigned to pixels that have not been visited. This value is set by default to half the max() of the pixel type used to represent the time-crossing map.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
virtual const LevelSetIndexType& itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::GetLastIndex ( ) const
protectedvirtual
template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
virtual const char* itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::GetNameOfClass ( ) const
virtual
template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
const AxisNodeType& itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::GetNodeUsedInCalculation ( unsigned int  idx) const
inlineprotected
template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
virtual double itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::GetNormalizationFactor ( ) const
virtual

Set/Get the Normalization Factor for the Speed Image. The values in the Speed Image is divided by this factor. This allows the use of images with integer pixel types to represent the speed.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
virtual const OutputDirectionType& itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::GetOutputDirection ( ) const
virtual

The output largeset possible, spacing and origin is computed as follows. If the speed image is ITK_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 ITK_NULLPTR, the output information is copied from the input speed image.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
virtual const OutputPointType& itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::GetOutputOrigin ( ) const
virtual

The output largeset possible, spacing and origin is computed as follows. If the speed image is ITK_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 ITK_NULLPTR, the output information is copied from the input speed image.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
virtual const OutputRegionType& itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::GetOutputRegion ( ) const
virtual

The output largeset possible, spacing and origin is computed as follows. If the speed image is ITK_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 ITK_NULLPTR, the output information is copied from the input speed image.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
virtual OutputSizeType itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::GetOutputSize ( ) const
inlinevirtual

The output largeset possible, spacing and origin is computed as follows. If the speed image is ITK_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 ITK_NULLPTR, the output information is copied from the input speed image.

Definition at line 314 of file itkFastMarchingImageFilter.h.

References itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::m_OutputRegion.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
virtual const OutputSpacingType& itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::GetOutputSpacing ( ) const
virtual

The output largeset possible, spacing and origin is computed as follows. If the speed image is ITK_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 ITK_NULLPTR, the output information is copied from the input speed image.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
virtual const bool& itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::GetOverrideOutputInformation ( ) const
virtual

The output largeset possible, spacing and origin is computed as follows. If the speed image is ITK_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 ITK_NULLPTR, the output information is copied from the input speed image.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
NodeContainerPointer itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::GetProcessedPoints ( ) const
inline

Get the container of Processed Points. If the CollectPoints flag is set, the algorithm collects a container of all processed nodes. This is useful for defining creating Narrowbands for level set algorithms that supports narrow banding.

Definition at line 301 of file itkFastMarchingImageFilter.h.

References itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::m_ProcessedPoints.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
virtual const double& itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::GetSpeedConstant ( ) const
virtual

Get the Speed Constant.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
virtual const LevelSetIndexType& itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::GetStartIndex ( ) const
protectedvirtual
template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
virtual const double& itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::GetStoppingValue ( ) const
virtual

Get the Fast Marching algorithm Stopping Value.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
NodeContainerPointer itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::GetTrialPoints ( )
inline

Get the container of Trial Points representing the initial front.

Definition at line 245 of file itkFastMarchingImageFilter.h.

References itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::m_TrialPoints.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
virtual void itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::Initialize ( LevelSetImageType )
protectedvirtual
template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
static Pointer itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::New ( )
static

Method for creation through the object factory.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
void itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::operator= ( const Self )
private
template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
virtual void itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::OverrideOutputInformationOff ( )
virtual

The output largeset possible, spacing and origin is computed as follows. If the speed image is ITK_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 ITK_NULLPTR, the output information is copied from the input speed image.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
virtual void itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::OverrideOutputInformationOn ( )
virtual

The output largeset possible, spacing and origin is computed as follows. If the speed image is ITK_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 ITK_NULLPTR, the output information is copied from the input speed image.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
void itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
overrideprotectedvirtual

Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from itk::ImageToImageFilter< TSpeedImage, TLevelSet >.

Reimplemented in itk::FastMarchingUpwindGradientImageFilter< TLevelSet, TSpeedImage >.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
void itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::SetAlivePoints ( NodeContainer points)
inline

Set the container of Alive Points representing the initial front. Alive points are represented as a VectorContainer of LevelSetNodes.

Definition at line 222 of file itkFastMarchingImageFilter.h.

References itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::m_AlivePoints, and itk::Object::Modified().

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
template<typename TPixel >
void itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::SetBinaryMask ( Image< TPixel, SetDimension > *  iImage)
inline
template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
virtual void itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::SetCollectPoints ( bool  _arg)
virtual

Set the Collect Points flag. Instrument the algorithm to collect a container of all nodes which it has visited. Useful for creating Narrowbands for level set algorithms that supports narrow banding.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
virtual void itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::SetNormalizationFactor ( double  _arg)
virtual

Set/Get the Normalization Factor for the Speed Image. The values in the Speed Image is divided by this factor. This allows the use of images with integer pixel types to represent the speed.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
virtual void itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::SetOutputDirection ( OutputDirectionType  _arg)
virtual

The output largeset possible, spacing and origin is computed as follows. If the speed image is ITK_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 ITK_NULLPTR, the output information is copied from the input speed image.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
virtual void itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::SetOutputOrigin ( OutputPointType  _arg)
virtual

The output largeset possible, spacing and origin is computed as follows. If the speed image is ITK_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 ITK_NULLPTR, the output information is copied from the input speed image.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
virtual void itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::SetOutputRegion ( OutputRegionType  _arg)
virtual

The output largeset possible, spacing and origin is computed as follows. If the speed image is ITK_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 ITK_NULLPTR, the output information is copied from the input speed image.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
virtual void itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::SetOutputSize ( const OutputSizeType size)
inlinevirtual

The output largeset possible, spacing and origin is computed as follows. If the speed image is ITK_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 ITK_NULLPTR, the output information is copied from the input speed image.

Definition at line 312 of file itkFastMarchingImageFilter.h.

References itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::m_OutputRegion.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
virtual void itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::SetOutputSpacing ( OutputSpacingType  _arg)
virtual

The output largeset possible, spacing and origin is computed as follows. If the speed image is ITK_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 ITK_NULLPTR, the output information is copied from the input speed image.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
void itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::SetOutsidePoints ( NodeContainer points)
inline

Set the container of points that are not meant to be evaluated.

Definition at line 213 of file itkFastMarchingImageFilter.h.

References itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::m_OutsidePoints, and itk::Object::Modified().

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
virtual void itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::SetOverrideOutputInformation ( bool  _arg)
virtual

The output largeset possible, spacing and origin is computed as follows. If the speed image is ITK_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 ITK_NULLPTR, the output information is copied from the input speed image.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
void itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::SetSpeedConstant ( double  value)
inline

Set the Speed Constant. If the Speed Image is ITK_NULLPTR, the SpeedConstant value is used for the whole level set. By default, the SpeedConstant is set to 1.0.

Definition at line 259 of file itkFastMarchingImageFilter.h.

References itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::m_InverseSpeed, itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::m_SpeedConstant, and itk::Object::Modified().

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
virtual void itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::SetStoppingValue ( double  _arg)
virtual

Set the Fast Marching algorithm Stopping Value. The Fast Marching algorithm is terminated when the value of the smallest trial point is greater than the stopping value.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
void itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::SetTrialPoints ( NodeContainer points)
inline

Set the container of Trial Points representing the initial front. Trial points are represented as a VectorContainer of LevelSetNodes.

Definition at line 237 of file itkFastMarchingImageFilter.h.

References itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::m_TrialPoints, and itk::Object::Modified().

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::typedef ( Concept::SameDimension< SetDimension, SpeedImageDimension )

This class requires SameDimensionCheck in the form of ( Concept::SameDimension< SetDimension, SpeedImageDimension > )

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::typedef ( Concept::Convertible< typename TSpeedImage::PixelType, double >  )

This class requires SpeedConvertibleToDoubleCheck in the form of ( Concept::Convertible< typename TSpeedImage::PixelType, double > )

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::typedef ( Concept::Convertible< double, PixelType )

This class requires DoubleConvertibleToLevelSetCheck in the form of ( Concept::Convertible< double, PixelType > )

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::typedef ( Concept::OStreamWritable< PixelType )

This class requires LevelSetOStreamWritableCheck in the form of ( Concept::OStreamWritable< PixelType > )

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
virtual void itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::UpdateNeighbors ( const IndexType index,
const SpeedImageType ,
LevelSetImageType  
)
protectedvirtual
template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
virtual double itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::UpdateValue ( const IndexType index,
const SpeedImageType ,
LevelSetImageType  
)
protectedvirtual

Member Data Documentation

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
NodeContainerPointer itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::m_AlivePoints
private
template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
OutputRegionType itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::m_BufferedRegion
protected

Definition at line 369 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
bool itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::m_CollectPoints
private

Definition at line 393 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
double itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::m_InverseSpeed
private
template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
LabelImagePointer itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::m_LabelImage
private
template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
LevelSetImageType::PixelType itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::m_LargeValue
private

Definition at line 402 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
LevelSetIndexType itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::m_LastIndex
protected

Definition at line 374 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
AxisNodeType itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::m_NodesUsed[SetDimension]
private
template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
double itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::m_NormalizationFactor
private

Definition at line 415 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
OutputDirectionType itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::m_OutputDirection
private

Definition at line 399 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
OutputPointType itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::m_OutputOrigin
private

Definition at line 397 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
OutputRegionType itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::m_OutputRegion
private
template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
OutputSpacingType itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::m_OutputSpacing
private

Definition at line 398 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
NodeContainerPointer itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::m_OutsidePoints
private
template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
bool itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::m_OverrideOutputInformation
private

Definition at line 400 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
NodeContainerPointer itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::m_ProcessedPoints
private
template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
double itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::m_SpeedConstant
private
template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
LevelSetIndexType itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::m_StartIndex
protected

Definition at line 373 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
double itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::m_StoppingValue
private

Definition at line 391 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
HeapType itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::m_TrialHeap
private

Definition at line 413 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
NodeContainerPointer itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::m_TrialPoints
private
template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
const unsigned int itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::SetDimension = LevelSetType::SetDimension
static

Dimension of the level set and the speed image.

Definition at line 159 of file itkFastMarchingImageFilter.h.

template<typename TLevelSet, typename TSpeedImage = Image< float, TLevelSet ::ImageDimension >>
const unsigned int itk::FastMarchingImageFilter< TLevelSet, TSpeedImage >::SpeedImageDimension = SpeedImageType::ImageDimension
static

Dimension of the level set and the speed image.

Definition at line 161 of file itkFastMarchingImageFilter.h.


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