ITK
6.0.0
Insight Toolkit
|
#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.
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 LevelSetType * | GetModifiableCurrentLevelSetPointer () |
virtual LevelSetContainerType * | GetModifiableLevelSetContainer () |
const char * | GetNameOfClass () const override |
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 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 82 of file itkLevelSetEquationTermBase.h.
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::ConstPointer = SmartPointer<const Self> |
Definition at line 57 of file itkLevelSetEquationTermBase.h.
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::DomainMapImageFilterType = typename LevelSetContainerType::DomainMapImageFilterType |
Definition at line 81 of file itkLevelSetEquationTermBase.h.
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::HeavisideConstPointer = typename HeavisideType::ConstPointer |
Definition at line 86 of file itkLevelSetEquationTermBase.h.
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::HeavisideType = HeavisideStepFunctionBase<LevelSetOutputRealType, LevelSetOutputRealType> |
Definition at line 84 of file itkLevelSetEquationTermBase.h.
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::InputImagePointer = typename InputImageType::Pointer |
Definition at line 64 of file itkLevelSetEquationTermBase.h.
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::InputImageType = TInputImage |
Definition at line 63 of file itkLevelSetEquationTermBase.h.
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::InputPixelRealType = typename NumericTraits<InputPixelType>::RealType |
Definition at line 66 of file itkLevelSetEquationTermBase.h.
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::InputPixelType = typename InputImageType::PixelType |
Definition at line 65 of file itkLevelSetEquationTermBase.h.
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::LevelSetContainerPointer = typename LevelSetContainerType::Pointer |
Definition at line 71 of file itkLevelSetEquationTermBase.h.
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::LevelSetContainerType = TLevelSetContainer |
Level-set function container type
Definition at line 69 of file itkLevelSetEquationTermBase.h.
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::LevelSetDataType = typename LevelSetContainerType::LevelSetDataType |
Definition at line 79 of file itkLevelSetEquationTermBase.h.
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::LevelSetGradientType = typename LevelSetContainerType::GradientType |
Definition at line 77 of file itkLevelSetEquationTermBase.h.
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::LevelSetHessianType = typename LevelSetContainerType::HessianType |
Definition at line 78 of file itkLevelSetEquationTermBase.h.
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::LevelSetIdentifierType = typename LevelSetContainerType::LevelSetIdentifierType |
Definition at line 70 of file itkLevelSetEquationTermBase.h.
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::LevelSetInputIndexType = typename LevelSetContainerType::InputIndexType |
Definition at line 76 of file itkLevelSetEquationTermBase.h.
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::LevelSetOutputPixelType = typename LevelSetContainerType::OutputType |
Definition at line 74 of file itkLevelSetEquationTermBase.h.
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::LevelSetOutputRealType = typename LevelSetContainerType::OutputRealType |
Definition at line 75 of file itkLevelSetEquationTermBase.h.
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::LevelSetPointer = typename LevelSetContainerType::LevelSetPointer |
Definition at line 73 of file itkLevelSetEquationTermBase.h.
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::LevelSetType = typename LevelSetContainerType::LevelSetType |
Definition at line 72 of file itkLevelSetEquationTermBase.h.
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::Pointer = SmartPointer<Self> |
Definition at line 56 of file itkLevelSetEquationTermBase.h.
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::RequiredDataType = std::unordered_set<std::string> |
Definition at line 140 of file itkLevelSetEquationTermBase.h.
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::Self = LevelSetEquationTermBase |
Definition at line 55 of file itkLevelSetEquationTermBase.h.
using itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::Superclass = Object |
Definition at line 58 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 |
|
overridevirtual |
Reimplemented from itk::Object.
const RequiredDataType& itk::LevelSetEquationTermBase< TInputImage, TLevelSetContainer >::GetRequiredData | ( | ) | const |
|
virtual |
Set/Get the term name
|
pure virtual |
Implemented in itk::LevelSetEquationBinaryMaskTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationChanAndVeseInternalTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationOverlapPenaltyTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationAdvectionTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >, itk::LevelSetEquationPropagationTerm< TInput, TLevelSetContainer, TPropagationImage >, and itk::LevelSetEquationLaplacianTerm< TInput, TLevelSetContainer >.
|
pure virtual |
Initialize the parameters in the terms prior to an iteration
Implemented in itk::LevelSetEquationAdvectionTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >, itk::LevelSetEquationPropagationTerm< TInput, TLevelSetContainer, TPropagationImage >, itk::LevelSetEquationOverlapPenaltyTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationChanAndVeseInternalTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationLaplacianTerm< TInput, TLevelSetContainer >, and itk::LevelSetEquationBinaryMaskTerm< TInput, TLevelSetContainer >.
|
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::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >, itk::LevelSetEquationPropagationTerm< TInput, TLevelSetContainer, TPropagationImage >, itk::LevelSetEquationOverlapPenaltyTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationChanAndVeseInternalTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationLaplacianTerm< TInput, TLevelSetContainer >, and itk::LevelSetEquationBinaryMaskTerm< TInput, TLevelSetContainer >.
|
pure virtual |
Supply updates at pixels to keep the term parameters always updated
Implemented in itk::LevelSetEquationAdvectionTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >, itk::LevelSetEquationPropagationTerm< TInput, TLevelSetContainer, TPropagationImage >, itk::LevelSetEquationChanAndVeseExternalTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationLaplacianTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationBinaryMaskTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationChanAndVeseInternalTerm< TInput, TLevelSetContainer >, and itk::LevelSetEquationOverlapPenaltyTerm< TInput, TLevelSetContainer >.
|
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::LevelSetEquationPropagationTerm< TInput, TLevelSetContainer, TPropagationImage >, itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >, itk::LevelSetEquationLaplacianTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationChanAndVeseInternalTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationOverlapPenaltyTerm< TInput, TLevelSetContainer >, and itk::LevelSetEquationBinaryMaskTerm< TInput, TLevelSetContainer >.
|
protectedpure virtual |
Implemented in itk::LevelSetEquationAdvectionTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationCurvatureTerm< TInput, TLevelSetContainer, TCurvatureImage >, itk::LevelSetEquationPropagationTerm< TInput, TLevelSetContainer, TPropagationImage >, itk::LevelSetEquationLaplacianTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationChanAndVeseInternalTerm< TInput, TLevelSetContainer >, itk::LevelSetEquationBinaryMaskTerm< TInput, TLevelSetContainer >, and itk::LevelSetEquationOverlapPenaltyTerm< TInput, TLevelSetContainer >.
|
protected |
Contribution to the CFL condition (which will be used to compute the the time step at the next iteration
Definition at line 182 of file itkLevelSetEquationTermBase.h.
|
protected |
Coefficient \( \alpha_i \)
Definition at line 177 of file itkLevelSetEquationTermBase.h.
|
protected |
Id of the current level-set function
Definition at line 172 of file itkLevelSetEquationTermBase.h.
|
protected |
Definition at line 174 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 187 of file itkLevelSetEquationTermBase.h.
|
protected |
Input image
Definition at line 166 of file itkLevelSetEquationTermBase.h.
|
protected |
Container of level-set function
Definition at line 169 of file itkLevelSetEquationTermBase.h.
|
protected |
Definition at line 194 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 192 of file itkLevelSetEquationTermBase.h.