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

#include <itkLevelSetEquationCurvatureTerm.h>

Detailed Description

template<typename TInput, typename TLevelSetContainer, typename TCurvatureImage = TInput>
class itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >

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

\[ CurvatureImage( p ) \cdot \kappa( p ) \]

Template Parameters
TInputInput Image Type
TLevelSetContainerLevel set function container type

Definition at line 49 of file itkLevelSetEquationCurvatureTerm.h.

+ Inheritance diagram for itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >:
+ Collaboration diagram for itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >:

Public Types

using ConstPointer = SmartPointer< const Self >
 
using CurvatureImagePointer = typename CurvatureImageType::Pointer
 
using CurvatureImageType = TCurvatureImage
 
using DefaultBoundaryConditionType = ZeroFluxNeumannBoundaryCondition< InputImageType >
 
using NeighborhoodScalesType = Vector< LevelSetOutputRealType, Self::ImageDimension >
 
using NeighborhoodType = ConstNeighborhoodIterator< InputImageType, DefaultBoundaryConditionType >
 
using Pointer = SmartPointer< Self >
 
using RadiusType = typename ConstNeighborhoodIterator< InputImageType >::RadiusType
 
using Self = LevelSetEquationCurvatureTerm
 
using Superclass = LevelSetEquationTermBase< TInput, TLevelSetContainer >
 
- Public Types inherited from itk::LevelSetEquationTermBase< TInput, TLevelSetContainer >
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 = TInput
 
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 = std::unordered_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

const char * GetNameOfClass () const override
 
virtual bool GetUseCurvatureImage ()
 
void Initialize (const LevelSetInputIndexType &) override
 
void InitializeParameters () override
 
virtual void SetUseCurvatureImage (bool _arg)
 
void Update () override
 
void UpdatePixel (const LevelSetInputIndexType &iP, const LevelSetOutputRealType &oldValue, const LevelSetOutputRealType &newValue) override
 
virtual void UseCurvatureImageOn ()
 
void SetCurvatureImage (CurvatureImageType *iImage)
 
virtual CurvatureImageTypeGetModifiableCurvatureImage ()
 
- Public Member Functions inherited from itk::LevelSetEquationTermBase< TInput, TLevelSetContainer >
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 LevelSetTypeGetModifiableCurrentLevelSetPointer ()
 
virtual LevelSetContainerTypeGetModifiableLevelSetContainer ()
 
const char * GetNameOfClass () const override
 
const RequiredDataTypeGetRequiredData () const
 
virtual void SetCoefficient (LevelSetOutputRealType _arg)
 
virtual void SetCurrentLevelSetId (LevelSetIdentifierType _arg)
 
virtual void SetLevelSetContainer (LevelSetContainerType *iContainer)
 
virtual void SetInput (InputImageType *_arg)
 
virtual InputImageTypeGetModifiableInput ()
 
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
 
unsigned long AddObserver (const EventObject &event, std::function< void(const EventObject &)> function) 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 noexcept override
 
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
Pointer Clone () const
 
virtual void Delete ()
 
virtual int GetReferenceCount () const
 
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 val)
 
- Static Public Member Functions inherited from itk::LightObject
static void BreakOnError ()
 
static Pointer New ()
 

Static Public Attributes

static constexpr unsigned int ImageDimension = InputImageType::ImageDimension
 

Protected Member Functions

 LevelSetEquationCurvatureTerm ()
 
LevelSetOutputRealType Value (const LevelSetInputIndexType &iP) override
 
LevelSetOutputRealType Value (const LevelSetInputIndexType &iP, const LevelSetDataType &iData) override
 
 ~LevelSetEquationCurvatureTerm () override=default
 
- Protected Member Functions inherited from itk::LevelSetEquationTermBase< TInput, TLevelSetContainer >
 LevelSetEquationTermBase ()
 
void SetUp ()
 
 ~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 &timeStamp)
 
 ~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

CurvatureImagePointer m_CurvatureImage {}
 
LevelSetOutputRealType m_NeighborhoodScales [ImageDimension] {}
 
bool m_UseCurvatureImage {}
 
- Protected Attributes inherited from itk::LevelSetEquationTermBase< TInput, TLevelSetContainer >
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 {}
 

Member Typedef Documentation

◆ ConstPointer

template<typename TInput , typename TLevelSetContainer , typename TCurvatureImage = TInput>
using itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >::ConstPointer = SmartPointer<const Self>

Definition at line 56 of file itkLevelSetEquationCurvatureTerm.h.

◆ CurvatureImagePointer

template<typename TInput , typename TLevelSetContainer , typename TCurvatureImage = TInput>
using itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >::CurvatureImagePointer = typename CurvatureImageType::Pointer

Definition at line 89 of file itkLevelSetEquationCurvatureTerm.h.

◆ CurvatureImageType

template<typename TInput , typename TLevelSetContainer , typename TCurvatureImage = TInput>
using itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >::CurvatureImageType = TCurvatureImage

Definition at line 88 of file itkLevelSetEquationCurvatureTerm.h.

◆ DefaultBoundaryConditionType

template<typename TInput , typename TLevelSetContainer , typename TCurvatureImage = TInput>
using itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >::DefaultBoundaryConditionType = ZeroFluxNeumannBoundaryCondition<InputImageType>

Neighborhood radius type

Definition at line 104 of file itkLevelSetEquationCurvatureTerm.h.

◆ NeighborhoodScalesType

template<typename TInput , typename TLevelSetContainer , typename TCurvatureImage = TInput>
using itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >::NeighborhoodScalesType = Vector<LevelSetOutputRealType, Self::ImageDimension>

Definition at line 108 of file itkLevelSetEquationCurvatureTerm.h.

◆ NeighborhoodType

template<typename TInput , typename TLevelSetContainer , typename TCurvatureImage = TInput>
using itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >::NeighborhoodType = ConstNeighborhoodIterator<InputImageType, DefaultBoundaryConditionType>

Definition at line 106 of file itkLevelSetEquationCurvatureTerm.h.

◆ Pointer

template<typename TInput , typename TLevelSetContainer , typename TCurvatureImage = TInput>
using itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >::Pointer = SmartPointer<Self>

Definition at line 55 of file itkLevelSetEquationCurvatureTerm.h.

◆ RadiusType

template<typename TInput , typename TLevelSetContainer , typename TCurvatureImage = TInput>
using itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >::RadiusType = typename ConstNeighborhoodIterator<InputImageType>::RadiusType

Definition at line 105 of file itkLevelSetEquationCurvatureTerm.h.

◆ Self

template<typename TInput , typename TLevelSetContainer , typename TCurvatureImage = TInput>
using itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >::Self = LevelSetEquationCurvatureTerm

Definition at line 54 of file itkLevelSetEquationCurvatureTerm.h.

◆ Superclass

template<typename TInput , typename TLevelSetContainer , typename TCurvatureImage = TInput>
using itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >::Superclass = LevelSetEquationTermBase<TInput, TLevelSetContainer>

Definition at line 57 of file itkLevelSetEquationCurvatureTerm.h.

Constructor & Destructor Documentation

◆ LevelSetEquationCurvatureTerm()

template<typename TInput , typename TLevelSetContainer , typename TCurvatureImage = TInput>
itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >::LevelSetEquationCurvatureTerm ( )
protected

◆ ~LevelSetEquationCurvatureTerm()

template<typename TInput , typename TLevelSetContainer , typename TCurvatureImage = TInput>
itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >::~LevelSetEquationCurvatureTerm ( )
overrideprotecteddefault

Member Function Documentation

◆ GetModifiableCurvatureImage()

template<typename TInput , typename TLevelSetContainer , typename TCurvatureImage = TInput>
virtual CurvatureImageType* itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >::GetModifiableCurvatureImage ( )
virtual

Set/Get the propagation image. By default, if no PropagationImage has been set, it casts the input image and uses it in the term contribution calculation.

◆ GetNameOfClass()

template<typename TInput , typename TLevelSetContainer , typename TCurvatureImage = TInput>
const char* itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >::GetNameOfClass ( ) const
overridevirtual
See also
LightObject::GetNameOfClass()

Reimplemented from itk::Object.

◆ GetUseCurvatureImage()

template<typename TInput , typename TLevelSetContainer , typename TCurvatureImage = TInput>
virtual bool itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >::GetUseCurvatureImage ( )
virtual

◆ Initialize()

template<typename TInput , typename TLevelSetContainer , typename TCurvatureImage = TInput>
void itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >::Initialize ( const LevelSetInputIndexType )
overridevirtual

Initialize term parameters in the dense case by computing for each pixel location

Implements itk::LevelSetEquationTermBase< TInput, TLevelSetContainer >.

◆ InitializeParameters()

template<typename TInput , typename TLevelSetContainer , typename TCurvatureImage = TInput>
void itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >::InitializeParameters ( )
overridevirtual

Initialize the parameters in the terms prior to an iteration

Implements itk::LevelSetEquationTermBase< TInput, TLevelSetContainer >.

◆ New()

template<typename TInput , typename TLevelSetContainer , typename TCurvatureImage = TInput>
static Pointer itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >::New ( )
static

Method for creation through object factory

◆ SetCurvatureImage()

template<typename TInput , typename TLevelSetContainer , typename TCurvatureImage = TInput>
void itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >::SetCurvatureImage ( CurvatureImageType iImage)

Set/Get the propagation image. By default, if no PropagationImage has been set, it casts the input image and uses it in the term contribution calculation.

◆ SetUseCurvatureImage()

template<typename TInput , typename TLevelSetContainer , typename TCurvatureImage = TInput>
virtual void itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >::SetUseCurvatureImage ( bool  _arg)
virtual

◆ Update()

template<typename TInput , typename TLevelSetContainer , typename TCurvatureImage = TInput>
void itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >::Update ( )
overridevirtual

Update the term parameter values at end of iteration

Implements itk::LevelSetEquationTermBase< TInput, TLevelSetContainer >.

◆ UpdatePixel()

template<typename TInput , typename TLevelSetContainer , typename TCurvatureImage = TInput>
void itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >::UpdatePixel ( const LevelSetInputIndexType iP,
const LevelSetOutputRealType oldValue,
const LevelSetOutputRealType newValue 
)
overridevirtual

Supply updates at pixels to keep the term parameters always updated

Implements itk::LevelSetEquationTermBase< TInput, TLevelSetContainer >.

◆ UseCurvatureImageOn()

template<typename TInput , typename TLevelSetContainer , typename TCurvatureImage = TInput>
virtual void itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >::UseCurvatureImageOn ( )
virtual

◆ Value() [1/2]

template<typename TInput , typename TLevelSetContainer , typename TCurvatureImage = TInput>
LevelSetOutputRealType itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >::Value ( const LevelSetInputIndexType iP)
overrideprotectedvirtual

Returns the term contribution for a given location iP, i.e. \( \omega_i( p ) \).

Implements itk::LevelSetEquationTermBase< TInput, TLevelSetContainer >.

◆ Value() [2/2]

template<typename TInput , typename TLevelSetContainer , typename TCurvatureImage = TInput>
LevelSetOutputRealType itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >::Value ( const LevelSetInputIndexType iP,
const LevelSetDataType iData 
)
overrideprotectedvirtual

Returns the term contribution for a given location iP, i.e. \( \omega_i( p ) \).

Implements itk::LevelSetEquationTermBase< TInput, TLevelSetContainer >.

Member Data Documentation

◆ ImageDimension

template<typename TInput , typename TLevelSetContainer , typename TCurvatureImage = TInput>
constexpr unsigned int itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >::ImageDimension = InputImageType::ImageDimension
staticconstexpr

Definition at line 86 of file itkLevelSetEquationCurvatureTerm.h.

◆ m_CurvatureImage

template<typename TInput , typename TLevelSetContainer , typename TCurvatureImage = TInput>
CurvatureImagePointer itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >::m_CurvatureImage {}
protected

Definition at line 145 of file itkLevelSetEquationCurvatureTerm.h.

◆ m_NeighborhoodScales

template<typename TInput , typename TLevelSetContainer , typename TCurvatureImage = TInput>
LevelSetOutputRealType itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >::m_NeighborhoodScales[ImageDimension] {}
protected

Definition at line 143 of file itkLevelSetEquationCurvatureTerm.h.

◆ m_UseCurvatureImage

template<typename TInput , typename TLevelSetContainer , typename TCurvatureImage = TInput>
bool itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >::m_UseCurvatureImage {}
protected

Definition at line 147 of file itkLevelSetEquationCurvatureTerm.h.


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