#include <itkLevelSetEquationTermBase.h>
Abstract class to represents a term in the level-set evolution PDE.
| TInput | Input Image Type |
| TLevelSetContainer | Level 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.
Definition at line 49 of file itkLevelSetEquationTermBase.h.
Inheritance diagram for itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >:
Collaboration diagram for itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >: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 = 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 | |
| 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 LevelSetType * | GetCurrentLevelSetPointer () const |
| virtual const LevelSetContainerType * | GetLevelSetContainer () const |
| virtual LevelSetType * | GetModifiableCurrentLevelSetPointer () |
| virtual LevelSetContainerType * | GetModifiableLevelSetContainer () |
| virtual const char * | GetNameOfClass () const |
| const RequiredDataType & | GetRequiredData () 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 *iContainer) |
| virtual void | Update ()=0 |
| virtual void | UpdatePixel (const LevelSetInputIndexType &iP, const LevelSetOutputRealType &oldValue, const LevelSetOutputRealType &newValue)=0 |
| virtual void | SetInput (InputImageType *_arg) |
| virtual InputImageType * | GetModifiableInput () |
| virtual const InputImageType * | GetInput () 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 *cmd) 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 |
| Command * | GetCommand (unsigned long tag) |
| bool | GetDebug () const |
| MetaDataDictionary & | GetMetaDataDictionary () |
| const MetaDataDictionary & | GetMetaDataDictionary () const |
| virtual ModifiedTimeType | GetMTime () const |
| virtual const TimeStamp & | GetTimeStamp () 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) const |
| 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 |
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 &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 | |
| 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 val) |
Static Public Member Functions inherited from itk::LightObject | |
| static void | BreakOnError () |
| static Pointer | New () |
| using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::CacheImageType = typename LevelSetContainerType::CacheImageType |
Definition at line 81 of file itkLevelSetEquationTermBase.h.
| using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::ConstPointer = SmartPointer<const Self> |
Definition at line 56 of file itkLevelSetEquationTermBase.h.
| using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::DomainMapImageFilterType = typename LevelSetContainerType::DomainMapImageFilterType |
Definition at line 80 of file itkLevelSetEquationTermBase.h.
| using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::HeavisideConstPointer = typename HeavisideType::ConstPointer |
Definition at line 85 of file itkLevelSetEquationTermBase.h.
| using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::HeavisideType = HeavisideStepFunctionBase<LevelSetOutputRealType, LevelSetOutputRealType> |
Definition at line 83 of file itkLevelSetEquationTermBase.h.
| using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::InputImagePointer = typename InputImageType::Pointer |
Definition at line 63 of file itkLevelSetEquationTermBase.h.
| using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::InputImageType = TInputImage |
Definition at line 62 of file itkLevelSetEquationTermBase.h.
| using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::InputPixelRealType = typename NumericTraits<InputPixelType>::RealType |
Definition at line 65 of file itkLevelSetEquationTermBase.h.
| using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::InputPixelType = typename InputImageType::PixelType |
Definition at line 64 of file itkLevelSetEquationTermBase.h.
| using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::LevelSetContainerPointer = typename LevelSetContainerType::Pointer |
Definition at line 70 of file itkLevelSetEquationTermBase.h.
| using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::LevelSetContainerType = TLevelSetContainer |
Level-set function container type
Definition at line 68 of file itkLevelSetEquationTermBase.h.
| using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::LevelSetDataType = typename LevelSetContainerType::LevelSetDataType |
Definition at line 78 of file itkLevelSetEquationTermBase.h.
| using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::LevelSetGradientType = typename LevelSetContainerType::GradientType |
Definition at line 76 of file itkLevelSetEquationTermBase.h.
| using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::LevelSetHessianType = typename LevelSetContainerType::HessianType |
Definition at line 77 of file itkLevelSetEquationTermBase.h.
| using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::LevelSetIdentifierType = typename LevelSetContainerType::LevelSetIdentifierType |
Definition at line 69 of file itkLevelSetEquationTermBase.h.
| using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::LevelSetInputIndexType = typename LevelSetContainerType::InputIndexType |
Definition at line 75 of file itkLevelSetEquationTermBase.h.
| using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::LevelSetOutputPixelType = typename LevelSetContainerType::OutputType |
Definition at line 73 of file itkLevelSetEquationTermBase.h.
| using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::LevelSetOutputRealType = typename LevelSetContainerType::OutputRealType |
Definition at line 74 of file itkLevelSetEquationTermBase.h.
| using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::LevelSetPointer = typename LevelSetContainerType::LevelSetPointer |
Definition at line 72 of file itkLevelSetEquationTermBase.h.
| using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::LevelSetType = typename LevelSetContainerType::LevelSetType |
Definition at line 71 of file itkLevelSetEquationTermBase.h.
| using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::Pointer = SmartPointer<Self> |
Definition at line 55 of file itkLevelSetEquationTermBase.h.
| using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::RequiredDataType = std::unordered_set<std::string> |
Definition at line 139 of file itkLevelSetEquationTermBase.h.
| using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::Self = LevelSetEquationTermBase |
Definition at line 54 of file itkLevelSetEquationTermBase.h.
| using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::Superclass = Object |
Definition at line 57 of file itkLevelSetEquationTermBase.h.
|
protected |
Default Constructor
|
overrideprotecteddefault |
Destructor
|
virtual |
Returns the weighted term contribution at the given location iP, i.e. \( \alpha_i \cdot \omega_i( p ) \)
|
virtual |
|
virtual |
Get the CFL contribution for the given term
|
virtual |
|
virtual |
|
virtual |
|
virtual |
Set/Get the image to be segmented
|
virtual |
|
virtual |
|
virtual |
Set/Get the image to be segmented
|
virtual |
|
virtual |
Reimplemented from itk::Object.
Reimplemented in itk::LevelSetEquationAdvectionTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationBinaryMaskTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationChanAndVeseExternalTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationChanAndVeseInternalTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >, itk::LevelSetEquationLaplacianTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationOverlapPenaltyTerm< TInput, TLevelSetContainer >, and itk::LevelSetEquationPropagationTerm< TInput, TLevelSetContainer, TPropagationImage >.
| const RequiredDataType & itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::GetRequiredData | ( | ) | const |
|
virtual |
Set/Get the term name
|
pure virtual |
Implemented in itk::LevelSetEquationAdvectionTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationBinaryMaskTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationChanAndVeseInternalTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >, itk::LevelSetEquationLaplacianTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationOverlapPenaltyTerm< TInput, TLevelSetContainer >, and itk::LevelSetEquationPropagationTerm< TInput, TLevelSetContainer, TPropagationImage >.
|
pure virtual |
Initialize the parameters in the terms prior to an iteration
Implemented in itk::LevelSetEquationAdvectionTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationBinaryMaskTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationChanAndVeseInternalTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >, itk::LevelSetEquationLaplacianTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationOverlapPenaltyTerm< TInput, TLevelSetContainer >, and itk::LevelSetEquationPropagationTerm< TInput, TLevelSetContainer, TPropagationImage >.
|
virtual |
|
virtual |
|
virtual |
Set/Get the image to be segmented
|
virtual |
|
virtual |
Set/Get the term name
|
protected |
|
pure virtual |
Update the term parameter values at end of iteration
Implemented in itk::LevelSetEquationAdvectionTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationBinaryMaskTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationChanAndVeseInternalTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >, itk::LevelSetEquationLaplacianTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationOverlapPenaltyTerm< TInput, TLevelSetContainer >, and itk::LevelSetEquationPropagationTerm< TInput, TLevelSetContainer, TPropagationImage >.
|
pure virtual |
Supply updates at pixels to keep the term parameters always updated
Implemented in itk::LevelSetEquationAdvectionTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationBinaryMaskTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationChanAndVeseExternalTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationChanAndVeseInternalTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >, itk::LevelSetEquationLaplacianTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationOverlapPenaltyTerm< TInput, TLevelSetContainer >, and itk::LevelSetEquationPropagationTerm< TInput, TLevelSetContainer, TPropagationImage >.
|
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.
Implemented in itk::LevelSetEquationAdvectionTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationBinaryMaskTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationChanAndVeseInternalTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >, itk::LevelSetEquationLaplacianTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationOverlapPenaltyTerm< TInput, TLevelSetContainer >, and itk::LevelSetEquationPropagationTerm< TInput, TLevelSetContainer, TPropagationImage >.
|
protectedpure virtual |
Implemented in itk::LevelSetEquationAdvectionTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationBinaryMaskTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationChanAndVeseInternalTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >, itk::LevelSetEquationLaplacianTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationOverlapPenaltyTerm< TInput, TLevelSetContainer >, and itk::LevelSetEquationPropagationTerm< TInput, TLevelSetContainer, TPropagationImage >.
|
protected |
Contribution to the CFL condition (which will be used to compute the the time step at the next iteration
Definition at line 181 of file itkLevelSetEquationTermBase.h.
|
protected |
Coefficient \( \alpha_i \)
Definition at line 176 of file itkLevelSetEquationTermBase.h.
|
protected |
Id of the current level-set function
Definition at line 171 of file itkLevelSetEquationTermBase.h.
|
protected |
Definition at line 173 of file itkLevelSetEquationTermBase.h.
|
protected |
Heaviside function to be used. Depending on the term expression, this one may need to be provided
Definition at line 186 of file itkLevelSetEquationTermBase.h.
|
protected |
Input image
Definition at line 165 of file itkLevelSetEquationTermBase.h.
|
protected |
Container of level-set function
Definition at line 168 of file itkLevelSetEquationTermBase.h.
|
protected |
Definition at line 193 of file itkLevelSetEquationTermBase.h.
|
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 191 of file itkLevelSetEquationTermBase.h.