ITK  5.0.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer > Class Template Referenceabstract

#include <itkLevelSetEquationTermBase.h>

+ Inheritance diagram for itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >:
+ Collaboration diagram for itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >:

Detailed Description

template<typename TInputImage, typename TLevelSetContainer>
class itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >

Abstract class to represents a term in the level-set evolution PDE.

Template Parameters
TInputInput Image Type
TLevelSetContainerLevel set function container type

Evolving single level-set function $ \phi $ can be expressed as follows:

\[ \frac{\partial \phi(p)}{\partial \tau} = \sum\limits_{i=1}^{N} \alpha_{i} \cdot \omega_i(p) \]

where $\omega_i$ is a term which could depend on the level-set function, the input image; and $\alpha_i$ is a weight to balance the contribution of each term in the PDE.

See Also
LevelSetEquationContainer

Definition at line 49 of file itkLevelSetEquationTermBase.h.

Public Types

using CacheImageType = typename LevelSetContainerType::CacheImageType
 
using ConstPointer = SmartPointer< const Self >
 
using DomainMapImageFilterType = typename LevelSetContainerType::DomainMapImageFilterType
 
using HeavisideConstPointer = typename HeavisideType::ConstPointer
 
using HeavisideType = HeavisideStepFunctionBase< LevelSetOutputRealType, LevelSetOutputRealType >
 
using InputImagePointer = typename InputImageType::Pointer
 
using InputImageType = TInputImage
 
using InputPixelRealType = typename NumericTraits< InputPixelType >::RealType
 
using InputPixelType = typename InputImageType::PixelType
 
using LevelSetContainerPointer = typename LevelSetContainerType::Pointer
 
using LevelSetContainerType = TLevelSetContainer
 
using LevelSetDataType = typename LevelSetContainerType::LevelSetDataType
 
using LevelSetGradientType = typename LevelSetContainerType::GradientType
 
using LevelSetHessianType = typename LevelSetContainerType::HessianType
 
using LevelSetIdentifierType = typename LevelSetContainerType::LevelSetIdentifierType
 
using LevelSetInputIndexType = typename LevelSetContainerType::InputIndexType
 
using LevelSetOutputPixelType = typename LevelSetContainerType::OutputType
 
using LevelSetOutputRealType = typename LevelSetContainerType::OutputRealType
 
using LevelSetPointer = typename LevelSetContainerType::LevelSetPointer
 
using LevelSetType = typename LevelSetContainerType::LevelSetType
 
using Pointer = SmartPointer< Self >
 
using RequiredDataType = itksys::hash_set< std::string >
 
using Self = LevelSetEquationTermBase
 
using Superclass = Object
 
- Public Types inherited from itk::Object
using ConstPointer = SmartPointer< const Self >
 
using Pointer = SmartPointer< Self >
 
using Self = Object
 
using Superclass = LightObject
 
- Public Types inherited from itk::LightObject
using ConstPointer = SmartPointer< const Self >
 
using Pointer = SmartPointer< Self >
 
using Self = LightObject
 

Public Member Functions

virtual LevelSetOutputRealType Evaluate (const LevelSetInputIndexType &iP)
 
virtual LevelSetOutputRealType Evaluate (const LevelSetInputIndexType &iP, const LevelSetDataType &iData)
 
virtual LevelSetOutputRealType GetCFLContribution () const
 
virtual LevelSetOutputRealType GetCoefficient ()
 
virtual LevelSetIdentifierType GetCurrentLevelSetId ()
 
virtual const LevelSetTypeGetCurrentLevelSetPointer () const
 
virtual const
LevelSetContainerType
GetLevelSetContainer () const
 
virtual LevelSetTypeGetModifiableCurrentLevelSetPointer ()
 
virtual LevelSetContainerTypeGetModifiableLevelSetContainer ()
 
virtual const char * GetNameOfClass () const
 
const RequiredDataTypeGetRequiredData () const
 
virtual void Initialize (const LevelSetInputIndexType &iP)=0
 
virtual void InitializeParameters ()=0
 
virtual void SetCoefficient (LevelSetOutputRealType _arg)
 
virtual void SetCurrentLevelSetId (LevelSetIdentifierType _arg)
 
virtual void SetLevelSetContainer (LevelSetContainerType *ptr)
 
virtual void Update ()=0
 
virtual void UpdatePixel (const LevelSetInputIndexType &iP, const LevelSetOutputRealType &oldValue, const LevelSetOutputRealType &newValue)=0
 
virtual void SetInput (InputImageType *_arg)
 
virtual InputImageTypeGetModifiableInput ()
 
virtual const InputImageTypeGetInput () const
 
virtual void SetTermName (const char *_arg)
 
virtual const char * GetTermName () const
 
- Public Member Functions inherited from itk::Object
unsigned long AddObserver (const EventObject &event, Command *)
 
unsigned long AddObserver (const EventObject &event, Command *) const
 
LightObject::Pointer CreateAnother () const override
 
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
 
void Register () const override
 
void RemoveAllObservers ()
 
void RemoveObserver (unsigned long tag)
 
void SetDebug (bool debugFlag) const
 
void SetReferenceCount (int) override
 
void UnRegister () const noexceptoverride
 
void SetMetaDataDictionary (const MetaDataDictionary &rhs)
 
void SetMetaDataDictionary (MetaDataDictionary &&rrhs)
 
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
 

Protected Member Functions

 LevelSetEquationTermBase ()
 
void SetUp ()
 
virtual LevelSetOutputRealType Value (const LevelSetInputIndexType &iP)=0
 
virtual LevelSetOutputRealType Value (const LevelSetInputIndexType &iP, const LevelSetDataType &iData)=0
 
 ~LevelSetEquationTermBase () override=default
 
- Protected Member Functions inherited from itk::Object
 Object ()
 
bool PrintObservers (std::ostream &os, Indent indent) const
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
virtual void SetTimeStamp (const TimeStamp &time)
 
 ~Object () override
 
- 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

LevelSetOutputRealType m_CFLContribution
 
LevelSetOutputRealType m_Coefficient
 
LevelSetIdentifierType m_CurrentLevelSetId
 
LevelSetPointer m_CurrentLevelSetPointer
 
HeavisideConstPointer m_Heaviside
 
InputImagePointer m_Input
 
LevelSetContainerPointer m_LevelSetContainer
 
RequiredDataType m_RequiredData
 
std::string m_TermName
 
- Protected Attributes inherited from itk::LightObject
std::atomic< int > m_ReferenceCount
 

Additional Inherited Members

- 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 ()
 

Member Typedef Documentation

template<typename TInputImage, typename TLevelSetContainer>
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::CacheImageType = typename LevelSetContainerType::CacheImageType

Definition at line 82 of file itkLevelSetEquationTermBase.h.

template<typename TInputImage, typename TLevelSetContainer>
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::ConstPointer = SmartPointer< const Self >

Definition at line 57 of file itkLevelSetEquationTermBase.h.

template<typename TInputImage, typename TLevelSetContainer>
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::DomainMapImageFilterType = typename LevelSetContainerType::DomainMapImageFilterType

Definition at line 81 of file itkLevelSetEquationTermBase.h.

template<typename TInputImage, typename TLevelSetContainer>
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::HeavisideConstPointer = typename HeavisideType::ConstPointer

Definition at line 87 of file itkLevelSetEquationTermBase.h.

template<typename TInputImage, typename TLevelSetContainer>
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::HeavisideType = HeavisideStepFunctionBase< LevelSetOutputRealType, LevelSetOutputRealType >

Definition at line 85 of file itkLevelSetEquationTermBase.h.

template<typename TInputImage, typename TLevelSetContainer>
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::InputImagePointer = typename InputImageType::Pointer

Definition at line 64 of file itkLevelSetEquationTermBase.h.

template<typename TInputImage, typename TLevelSetContainer>
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::InputImageType = TInputImage

Definition at line 63 of file itkLevelSetEquationTermBase.h.

template<typename TInputImage, typename TLevelSetContainer>
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::InputPixelRealType = typename NumericTraits<InputPixelType>::RealType

Definition at line 66 of file itkLevelSetEquationTermBase.h.

template<typename TInputImage, typename TLevelSetContainer>
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::InputPixelType = typename InputImageType::PixelType

Definition at line 65 of file itkLevelSetEquationTermBase.h.

template<typename TInputImage, typename TLevelSetContainer>
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::LevelSetContainerPointer = typename LevelSetContainerType::Pointer

Definition at line 71 of file itkLevelSetEquationTermBase.h.

template<typename TInputImage, typename TLevelSetContainer>
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::LevelSetContainerType = TLevelSetContainer

Level-set function container type

Definition at line 69 of file itkLevelSetEquationTermBase.h.

template<typename TInputImage, typename TLevelSetContainer>
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::LevelSetDataType = typename LevelSetContainerType::LevelSetDataType

Definition at line 79 of file itkLevelSetEquationTermBase.h.

template<typename TInputImage, typename TLevelSetContainer>
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::LevelSetGradientType = typename LevelSetContainerType::GradientType

Definition at line 77 of file itkLevelSetEquationTermBase.h.

template<typename TInputImage, typename TLevelSetContainer>
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::LevelSetHessianType = typename LevelSetContainerType::HessianType

Definition at line 78 of file itkLevelSetEquationTermBase.h.

template<typename TInputImage, typename TLevelSetContainer>
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::LevelSetIdentifierType = typename LevelSetContainerType::LevelSetIdentifierType

Definition at line 70 of file itkLevelSetEquationTermBase.h.

template<typename TInputImage, typename TLevelSetContainer>
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::LevelSetInputIndexType = typename LevelSetContainerType::InputIndexType

Definition at line 76 of file itkLevelSetEquationTermBase.h.

template<typename TInputImage, typename TLevelSetContainer>
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::LevelSetOutputPixelType = typename LevelSetContainerType::OutputType

Definition at line 74 of file itkLevelSetEquationTermBase.h.

template<typename TInputImage, typename TLevelSetContainer>
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::LevelSetOutputRealType = typename LevelSetContainerType::OutputRealType

Definition at line 75 of file itkLevelSetEquationTermBase.h.

template<typename TInputImage, typename TLevelSetContainer>
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::LevelSetPointer = typename LevelSetContainerType::LevelSetPointer

Definition at line 73 of file itkLevelSetEquationTermBase.h.

template<typename TInputImage, typename TLevelSetContainer>
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::LevelSetType = typename LevelSetContainerType::LevelSetType

Definition at line 72 of file itkLevelSetEquationTermBase.h.

template<typename TInputImage, typename TLevelSetContainer>
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::Pointer = SmartPointer< Self >

Definition at line 56 of file itkLevelSetEquationTermBase.h.

template<typename TInputImage, typename TLevelSetContainer>
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::RequiredDataType = itksys::hash_set< std::string >

Definition at line 135 of file itkLevelSetEquationTermBase.h.

template<typename TInputImage, typename TLevelSetContainer>
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::Self = LevelSetEquationTermBase

Definition at line 55 of file itkLevelSetEquationTermBase.h.

template<typename TInputImage, typename TLevelSetContainer>
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::Superclass = Object

Definition at line 58 of file itkLevelSetEquationTermBase.h.

Constructor & Destructor Documentation

template<typename TInputImage, typename TLevelSetContainer>
itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::LevelSetEquationTermBase ( )
protected

Default Constructor

template<typename TInputImage, typename TLevelSetContainer>
itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::~LevelSetEquationTermBase ( )
overrideprotecteddefault

Destructor

Member Function Documentation

template<typename TInputImage, typename TLevelSetContainer>
virtual LevelSetOutputRealType itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::Evaluate ( const LevelSetInputIndexType iP)
virtual

Returns the weighted term contribution at the given location iP, i.e. $ \alpha_i \cdot \omega_i( p ) $

template<typename TInputImage, typename TLevelSetContainer>
virtual LevelSetOutputRealType itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::Evaluate ( const LevelSetInputIndexType iP,
const LevelSetDataType iData 
)
virtual
template<typename TInputImage, typename TLevelSetContainer>
virtual LevelSetOutputRealType itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::GetCFLContribution ( ) const
virtual

Get the CFL contribution for the given term

template<typename TInputImage, typename TLevelSetContainer>
virtual LevelSetOutputRealType itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::GetCoefficient ( )
virtual
template<typename TInputImage, typename TLevelSetContainer>
virtual LevelSetIdentifierType itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::GetCurrentLevelSetId ( )
virtual
template<typename TInputImage, typename TLevelSetContainer>
virtual const LevelSetType* itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::GetCurrentLevelSetPointer ( ) const
virtual
template<typename TInputImage, typename TLevelSetContainer>
virtual const InputImageType* itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::GetInput ( ) const
virtual

Set/Get the image to be segmented

template<typename TInputImage, typename TLevelSetContainer>
virtual const LevelSetContainerType* itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::GetLevelSetContainer ( ) const
virtual
template<typename TInputImage, typename TLevelSetContainer>
virtual LevelSetType* itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::GetModifiableCurrentLevelSetPointer ( )
virtual
template<typename TInputImage, typename TLevelSetContainer>
virtual InputImageType* itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::GetModifiableInput ( )
virtual

Set/Get the image to be segmented

template<typename TInputImage, typename TLevelSetContainer>
virtual LevelSetContainerType* itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::GetModifiableLevelSetContainer ( )
virtual
template<typename TInputImage, typename TLevelSetContainer>
virtual const char* itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::GetNameOfClass ( ) const
virtual
template<typename TInputImage, typename TLevelSetContainer>
const RequiredDataType& itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::GetRequiredData ( ) const
template<typename TInputImage, typename TLevelSetContainer>
virtual const char* itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::GetTermName ( ) const
virtual

Set/Get the term name

template<typename TInputImage, typename TLevelSetContainer>
virtual void itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::Initialize ( const LevelSetInputIndexType iP)
pure virtual
Todo:
to be documented.
template<typename TInputImage, typename TLevelSetContainer>
virtual void itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::InitializeParameters ( )
pure virtual
template<typename TInputImage, typename TLevelSetContainer>
virtual void itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::SetCoefficient ( LevelSetOutputRealType  _arg)
virtual
template<typename TInputImage, typename TLevelSetContainer>
virtual void itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::SetCurrentLevelSetId ( LevelSetIdentifierType  _arg)
virtual
template<typename TInputImage, typename TLevelSetContainer>
virtual void itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::SetInput ( InputImageType _arg)
virtual

Set/Get the image to be segmented

template<typename TInputImage, typename TLevelSetContainer>
virtual void itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::SetLevelSetContainer ( LevelSetContainerType ptr)
virtual
template<typename TInputImage, typename TLevelSetContainer>
virtual void itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::SetTermName ( const char *  _arg)
virtual

Set/Get the term name

template<typename TInputImage, typename TLevelSetContainer>
void itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::SetUp ( )
protected
template<typename TInputImage, typename TLevelSetContainer>
virtual void itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::Update ( )
pure virtual
template<typename TInputImage, typename TLevelSetContainer>
virtual void itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::UpdatePixel ( const LevelSetInputIndexType iP,
const LevelSetOutputRealType oldValue,
const LevelSetOutputRealType newValue 
)
pure virtual

Supply updates at pixels to keep the term parameters always updated

template<typename TInputImage, typename TLevelSetContainer>
virtual LevelSetOutputRealType itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::Value ( const LevelSetInputIndexType iP)
protectedpure virtual

Returns the term contribution for a given location iP, i.e. $ \omega_i( p ) $. This method must be implemented in all class which inherits from this class.

template<typename TInputImage, typename TLevelSetContainer>
virtual LevelSetOutputRealType itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::Value ( const LevelSetInputIndexType iP,
const LevelSetDataType iData 
)
protectedpure virtual

Member Data Documentation

template<typename TInputImage, typename TLevelSetContainer>
LevelSetOutputRealType itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::m_CFLContribution
protected

Contribution to the CFL condition (which will be used to compute the the time step at the next iteration

Definition at line 174 of file itkLevelSetEquationTermBase.h.

template<typename TInputImage, typename TLevelSetContainer>
LevelSetOutputRealType itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::m_Coefficient
protected

Coefficient $ \alpha_i $

Definition at line 169 of file itkLevelSetEquationTermBase.h.

template<typename TInputImage, typename TLevelSetContainer>
LevelSetIdentifierType itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::m_CurrentLevelSetId
protected

Id of the current level-set function

Definition at line 164 of file itkLevelSetEquationTermBase.h.

template<typename TInputImage, typename TLevelSetContainer>
LevelSetPointer itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::m_CurrentLevelSetPointer
protected

Definition at line 166 of file itkLevelSetEquationTermBase.h.

template<typename TInputImage, typename TLevelSetContainer>
HeavisideConstPointer itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::m_Heaviside
protected

Heaviside function to be used. Depending on the term expression, this one may need to be provided

Definition at line 179 of file itkLevelSetEquationTermBase.h.

template<typename TInputImage, typename TLevelSetContainer>
InputImagePointer itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::m_Input
protected

Input image

Definition at line 158 of file itkLevelSetEquationTermBase.h.

template<typename TInputImage, typename TLevelSetContainer>
LevelSetContainerPointer itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::m_LevelSetContainer
protected

Container of level-set function

Definition at line 161 of file itkLevelSetEquationTermBase.h.

template<typename TInputImage, typename TLevelSetContainer>
RequiredDataType itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::m_RequiredData
protected

Definition at line 186 of file itkLevelSetEquationTermBase.h.

template<typename TInputImage, typename TLevelSetContainer>
std::string itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::m_TermName
protected

Name to be given to the term. Note by default, one name is provided, but end-users may rename differently each term.

Definition at line 184 of file itkLevelSetEquationTermBase.h.


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