ITK  5.2.0
Insight Toolkit
Classes | Public Types | Public Member Functions | Static Public Attributes | List of all members
itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData > Class Template Referenceabstract

#include <itkRegionBasedLevelSetFunction.h>

+ Inheritance diagram for itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >:
+ Collaboration diagram for itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >:

Classes

struct  GlobalDataStruct
 

Public Types

using ConstPointer = SmartPointer< const Self >
 
using FeatureImageConstPointer = typename FeatureImageType::ConstPointer
 
using FeatureImageType = TFeature
 
using FeatureIndexType = typename FeatureImageType::IndexType
 
using FeatureOffsetType = typename FeatureImageType::OffsetType
 
using FeaturePixelType = typename FeatureImageType::PixelType
 
using FeatureSpacingType = typename FeatureImageType::SpacingType
 
using FloatOffsetType = typename Superclass::FloatOffsetType
 
using HeavisideFunctionConstPointer = typename HeavisideFunctionType::ConstPointer
 
using HeavisideFunctionType = HeavisideStepFunctionBase< InputPixelType, InputPixelType >
 
using ImageType = typename Superclass::ImageType
 
using InputImageConstPointer = typename InputImageType::ConstPointer
 
using InputImagePointer = typename InputImageType::Pointer
 
using InputImageType = TInput
 
using InputIndexType = typename InputImageType::IndexType
 
using InputIndexValueType = typename InputImageType::IndexValueType
 
using InputPixelType = typename InputImageType::PixelType
 
using InputPointType = typename InputImageType::PointType
 
using InputRegionType = typename InputImageType::RegionType
 
using InputSizeType = typename InputImageType::SizeType
 
using InputSizeValueType = typename InputImageType::SizeValueType
 
using NeighborhoodScalesType = typename Superclass::NeighborhoodScalesType
 
using NeighborhoodType = typename Superclass::NeighborhoodType
 
using PixelType = typename Superclass::PixelType
 
using Pointer = SmartPointer< Self >
 
using RadiusType = typename Superclass::RadiusType
 
using ScalarValueType = PixelType
 
using Self = RegionBasedLevelSetFunction
 
using SharedDataPointer = typename SharedDataType::Pointer
 
using SharedDataType = TSharedData
 
using Superclass = FiniteDifferenceFunction< TInput >
 
using TimeStepType = double
 
using VectorType = FixedArray< ScalarValueType, Self::ImageDimension >
 
- Public Types inherited from itk::FiniteDifferenceFunction< TInput >
using ConstPointer = SmartPointer< const Self >
 
using DefaultBoundaryConditionType = ZeroFluxNeumannBoundaryCondition< ImageType >
 
using FloatOffsetType = Vector< float, Self::ImageDimension >
 
using ImageType = TInput
 
using NeighborhoodScalesType = Vector< PixelRealType, Self::ImageDimension >
 
using NeighborhoodType = ConstNeighborhoodIterator< TInput, DefaultBoundaryConditionType >
 
using PixelRealType = double
 
using PixelType = typename ImageType::PixelType
 
using Pointer = SmartPointer< Self >
 
using RadiusType = typename ConstNeighborhoodIterator< TInput >::RadiusType
 
using Self = FiniteDifferenceFunction
 
using Superclass = LightObject
 
using TimeStepType = double
 
- Public Types inherited from itk::LightObject
using ConstPointer = SmartPointer< const Self >
 
using Pointer = SmartPointer< Self >
 
using Self = LightObject
 

Public Member Functions

virtual VectorType AdvectionField (const NeighborhoodType &, const FloatOffsetType &, GlobalDataStruct *=0) const
 
TimeStepType ComputeGlobalTimeStep (void *GlobalData) const override
 
PixelType ComputeUpdate (const NeighborhoodType &neighborhood, void *globalData, const FloatOffsetType &=FloatOffsetType(0.0)) override
 
virtual const FeatureImageTypeGetFeatureImage () const
 
void * GetGlobalDataPointer () const override
 
virtual const char * GetNameOfClass () const
 
virtual void Initialize (const RadiusType &r)
 
void SetDomainFunction (const HeavisideFunctionType *f)
 
virtual void SetFeatureImage (const FeatureImageType *f)
 
void SetInitialImage (InputImageType *f)
 
void SetSharedData (SharedDataPointer sharedDataIn)
 
void UpdateSharedData (bool forceUpdate)
 
- Public Member Functions inherited from itk::FiniteDifferenceFunction< TInput >
const NeighborhoodScalesType ComputeNeighborhoodScales () const
 
virtual PixelType ComputeUpdate (const NeighborhoodType &neighborhood, void *globalData, const FloatOffsetType &offset=FloatOffsetType(0.0))=0
 
const RadiusTypeGetRadius () const
 
void GetScaleCoefficients (PixelRealType vals[ImageDimension]) const
 
virtual void InitializeIteration ()
 
void SetRadius (const RadiusType &r)
 
void SetScaleCoefficients (PixelRealType vals[ImageDimension])
 
- Public Member Functions inherited from itk::LightObject
virtual Pointer CreateAnother () const
 
virtual void Delete ()
 
virtual int GetReferenceCount () const
 
 itkCloneMacro (Self)
 
void Print (std::ostream &os, Indent indent=0) const
 
virtual void Register () const
 
virtual void SetReferenceCount (int)
 
virtual void UnRegister () const noexcept
 

Static Public Attributes

static constexpr unsigned int ImageDimension = Superclass::ImageDimension
 
- Static Public Attributes inherited from itk::FiniteDifferenceFunction< TInput >
static constexpr unsigned int ImageDimension
 
InputImageConstPointer m_InitialImage
 
FeatureImageConstPointer m_FeatureImage
 
SharedDataPointer m_SharedData
 
HeavisideFunctionConstPointer m_DomainFunction
 
ScalarValueType m_AreaWeight
 
ScalarValueType m_Lambda1
 
ScalarValueType m_Lambda2
 
ScalarValueType m_OverlapPenaltyWeight
 
ScalarValueType m_VolumeMatchingWeight
 
ScalarValueType m_Volume
 
ScalarValueType m_CurvatureWeight
 
ScalarValueType m_AdvectionWeight
 
ScalarValueType m_ReinitializationSmoothingWeight
 
unsigned int m_FunctionId
 
std::slice x_slice [Self::ImageDimension]
 
OffsetValueType m_Center
 
OffsetValueType m_xStride [Self::ImageDimension]
 
double m_InvSpacing [Self::ImageDimension]
 
bool m_UpdateC
 
static double m_WaveDT
 
static double m_DT
 
static VectorType m_ZeroVectorConstant
 
void SetAreaWeight (const ScalarValueType &nu)
 
ScalarValueType GetAreaWeight () const
 
void SetLambda1 (const ScalarValueType &lambda1)
 
ScalarValueType GetLambda1 () const
 
void SetLambda2 (const ScalarValueType &lambda2)
 
ScalarValueType GetLambda2 () const
 
void SetOverlapPenaltyWeight (const ScalarValueType &gamma)
 
ScalarValueType GetOverlapPenaltyWeight () const
 
virtual void SetCurvatureWeight (const ScalarValueType c)
 
ScalarValueType GetCurvatureWeight () const
 
void SetAdvectionWeight (const ScalarValueType &iA)
 
ScalarValueType GetAdvectionWeight () const
 
void SetReinitializationSmoothingWeight (const ScalarValueType c)
 
ScalarValueType GetReinitializationSmoothingWeight () const
 
void SetVolumeMatchingWeight (const ScalarValueType &tau)
 
ScalarValueType GetVolumeMatchingWeight () const
 
void SetVolume (const ScalarValueType &volume)
 
ScalarValueType GetVolume () const
 
void SetFunctionId (const unsigned int &iFid)
 
void ReleaseGlobalDataPointer (void *GlobalData) const override
 
virtual ScalarValueType ComputeCurvature (const NeighborhoodType &, const FloatOffsetType &, GlobalDataStruct *gd)
 
virtual ScalarValueType LaplacianSmoothingSpeed (const NeighborhoodType &, const FloatOffsetType &, GlobalDataStruct *=0) const
 
virtual ScalarValueType CurvatureSpeed (const NeighborhoodType &, const FloatOffsetType &, GlobalDataStruct *=0) const
 
virtual void CalculateAdvectionImage ()
 
 RegionBasedLevelSetFunction ()
 
 ~RegionBasedLevelSetFunction () override=default
 
void ComputeHImage ()
 
ScalarValueType ComputeGlobalTerm (const ScalarValueType &imagePixel, const InputIndexType &inputIndex)
 
virtual ScalarValueType ComputeInternalTerm (const FeaturePixelType &iValue, const FeatureIndexType &iIdx)=0
 
virtual ScalarValueType ComputeExternalTerm (const FeaturePixelType &iValue, const FeatureIndexType &iIdx)=0
 
virtual ScalarValueType ComputeOverlapParameters (const FeatureIndexType &featIndex, ScalarValueType &pr)=0
 
ScalarValueType ComputeVolumeRegularizationTerm ()
 
ScalarValueType ComputeLaplacian (GlobalDataStruct *gd)
 
void ComputeHessian (const NeighborhoodType &it, GlobalDataStruct *globalData)
 
virtual void ComputeParameters ()=0
 
virtual void UpdateSharedDataParameters ()=0
 
static VectorType InitializeZeroVectorConstant ()
 

Additional Inherited Members

- Static Public Member Functions inherited from itk::LightObject
static void BreakOnError ()
 
static Pointer New ()
 
- Protected Member Functions inherited from itk::FiniteDifferenceFunction< TInput >
 FiniteDifferenceFunction ()
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
 ~FiniteDifferenceFunction () override=default
 
- 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 inherited from itk::FiniteDifferenceFunction< TInput >
RadiusType m_Radius
 
PixelRealType m_ScaleCoefficients [ImageDimension]
 
- Protected Attributes inherited from itk::LightObject
std::atomic< int > m_ReferenceCount
 

Detailed Description

template<typename TInput, typename TFeature, typename TSharedData>
class itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >

LevelSet function that computes a speed image based on regional integrals.

This class implements a level set function that computes the speed image by integrating values on the image domain.

Based on the paper:

   "An active contour model without edges"
    T. Chan and L. Vese.
    In Scale-Space Theories in Computer Vision, pages 141-151, 1999.
Author
Mosaliganti K., Smith B., Gelas A., Gouaillard A., Megason S.

This code was taken from the Insight Journal paper:

"Cell Tracking using Coupled Active Surfaces for Nuclei and Membranes"
http://www.insight-journal.org/browse/publication/642
https://hdl.handle.net/10380/3055

That is based on the papers:

"Level Set Segmentation: Active Contours without edge"
http://www.insight-journal.org/browse/publication/322
https://hdl.handle.net/1926/1532

and

"Level set segmentation using coupled active surfaces"
http://www.insight-journal.org/browse/publication/323
https://hdl.handle.net/1926/1533

NOTE: The convention followed is inside of the level-set function is negative and outside is positive.

Definition at line 67 of file itkRegionBasedLevelSetFunction.h.

Member Typedef Documentation

◆ ConstPointer

template<typename TInput, typename TFeature, typename TSharedData>
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::ConstPointer = SmartPointer<const Self>

Definition at line 76 of file itkRegionBasedLevelSetFunction.h.

◆ FeatureImageConstPointer

template<typename TInput, typename TFeature, typename TSharedData>
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::FeatureImageConstPointer = typename FeatureImageType::ConstPointer

Definition at line 138 of file itkRegionBasedLevelSetFunction.h.

◆ FeatureImageType

template<typename TInput, typename TFeature, typename TSharedData>
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::FeatureImageType = TFeature

Definition at line 137 of file itkRegionBasedLevelSetFunction.h.

◆ FeatureIndexType

template<typename TInput, typename TFeature, typename TSharedData>
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::FeatureIndexType = typename FeatureImageType::IndexType

Definition at line 140 of file itkRegionBasedLevelSetFunction.h.

◆ FeatureOffsetType

template<typename TInput, typename TFeature, typename TSharedData>
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::FeatureOffsetType = typename FeatureImageType::OffsetType

Definition at line 142 of file itkRegionBasedLevelSetFunction.h.

◆ FeaturePixelType

template<typename TInput, typename TFeature, typename TSharedData>
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::FeaturePixelType = typename FeatureImageType::PixelType

Definition at line 139 of file itkRegionBasedLevelSetFunction.h.

◆ FeatureSpacingType

template<typename TInput, typename TFeature, typename TSharedData>
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::FeatureSpacingType = typename FeatureImageType::SpacingType

Definition at line 141 of file itkRegionBasedLevelSetFunction.h.

◆ FloatOffsetType

template<typename TInput, typename TFeature, typename TSharedData>
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::FloatOffsetType = typename Superclass::FloatOffsetType

Definition at line 93 of file itkRegionBasedLevelSetFunction.h.

◆ HeavisideFunctionConstPointer

template<typename TInput, typename TFeature, typename TSharedData>
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::HeavisideFunctionConstPointer = typename HeavisideFunctionType::ConstPointer

Definition at line 148 of file itkRegionBasedLevelSetFunction.h.

◆ HeavisideFunctionType

template<typename TInput, typename TFeature, typename TSharedData>
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::HeavisideFunctionType = HeavisideStepFunctionBase<InputPixelType, InputPixelType>

Definition at line 147 of file itkRegionBasedLevelSetFunction.h.

◆ ImageType

template<typename TInput, typename TFeature, typename TSharedData>
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::ImageType = typename Superclass::ImageType

Definition at line 87 of file itkRegionBasedLevelSetFunction.h.

◆ InputImageConstPointer

template<typename TInput, typename TFeature, typename TSharedData>
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::InputImageConstPointer = typename InputImageType::ConstPointer

Definition at line 127 of file itkRegionBasedLevelSetFunction.h.

◆ InputImagePointer

template<typename TInput, typename TFeature, typename TSharedData>
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::InputImagePointer = typename InputImageType::Pointer

Definition at line 128 of file itkRegionBasedLevelSetFunction.h.

◆ InputImageType

template<typename TInput, typename TFeature, typename TSharedData>
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::InputImageType = TInput

Definition at line 126 of file itkRegionBasedLevelSetFunction.h.

◆ InputIndexType

template<typename TInput, typename TFeature, typename TSharedData>
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::InputIndexType = typename InputImageType::IndexType

Definition at line 130 of file itkRegionBasedLevelSetFunction.h.

◆ InputIndexValueType

template<typename TInput, typename TFeature, typename TSharedData>
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::InputIndexValueType = typename InputImageType::IndexValueType

Definition at line 131 of file itkRegionBasedLevelSetFunction.h.

◆ InputPixelType

template<typename TInput, typename TFeature, typename TSharedData>
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::InputPixelType = typename InputImageType::PixelType

Definition at line 129 of file itkRegionBasedLevelSetFunction.h.

◆ InputPointType

template<typename TInput, typename TFeature, typename TSharedData>
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::InputPointType = typename InputImageType::PointType

Definition at line 135 of file itkRegionBasedLevelSetFunction.h.

◆ InputRegionType

template<typename TInput, typename TFeature, typename TSharedData>
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::InputRegionType = typename InputImageType::RegionType

Definition at line 134 of file itkRegionBasedLevelSetFunction.h.

◆ InputSizeType

template<typename TInput, typename TFeature, typename TSharedData>
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::InputSizeType = typename InputImageType::SizeType

Definition at line 132 of file itkRegionBasedLevelSetFunction.h.

◆ InputSizeValueType

template<typename TInput, typename TFeature, typename TSharedData>
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::InputSizeValueType = typename InputImageType::SizeValueType

Definition at line 133 of file itkRegionBasedLevelSetFunction.h.

◆ NeighborhoodScalesType

template<typename TInput, typename TFeature, typename TSharedData>
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::NeighborhoodScalesType = typename Superclass::NeighborhoodScalesType

Definition at line 92 of file itkRegionBasedLevelSetFunction.h.

◆ NeighborhoodType

template<typename TInput, typename TFeature, typename TSharedData>
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::NeighborhoodType = typename Superclass::NeighborhoodType

Definition at line 91 of file itkRegionBasedLevelSetFunction.h.

◆ PixelType

template<typename TInput, typename TFeature, typename TSharedData>
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::PixelType = typename Superclass::PixelType

Definition at line 88 of file itkRegionBasedLevelSetFunction.h.

◆ Pointer

template<typename TInput, typename TFeature, typename TSharedData>
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::Pointer = SmartPointer<Self>

Definition at line 75 of file itkRegionBasedLevelSetFunction.h.

◆ RadiusType

template<typename TInput, typename TFeature, typename TSharedData>
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::RadiusType = typename Superclass::RadiusType

Definition at line 90 of file itkRegionBasedLevelSetFunction.h.

◆ ScalarValueType

template<typename TInput, typename TFeature, typename TSharedData>
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::ScalarValueType = PixelType

Definition at line 89 of file itkRegionBasedLevelSetFunction.h.

◆ Self

template<typename TInput, typename TFeature, typename TSharedData>
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::Self = RegionBasedLevelSetFunction

Standard class type aliases.

Definition at line 73 of file itkRegionBasedLevelSetFunction.h.

◆ SharedDataPointer

template<typename TInput, typename TFeature, typename TSharedData>
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::SharedDataPointer = typename SharedDataType::Pointer

Definition at line 145 of file itkRegionBasedLevelSetFunction.h.

◆ SharedDataType

template<typename TInput, typename TFeature, typename TSharedData>
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::SharedDataType = TSharedData

Definition at line 144 of file itkRegionBasedLevelSetFunction.h.

◆ Superclass

template<typename TInput, typename TFeature, typename TSharedData>
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::Superclass = FiniteDifferenceFunction<TInput>

Definition at line 74 of file itkRegionBasedLevelSetFunction.h.

◆ TimeStepType

template<typename TInput, typename TFeature, typename TSharedData>
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::TimeStepType = double

Extract some parameters from the superclass.

Definition at line 86 of file itkRegionBasedLevelSetFunction.h.

◆ VectorType

template<typename TInput, typename TFeature, typename TSharedData>
using itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::VectorType = FixedArray<ScalarValueType, Self::ImageDimension>

Definition at line 94 of file itkRegionBasedLevelSetFunction.h.

Constructor & Destructor Documentation

◆ RegionBasedLevelSetFunction()

template<typename TInput, typename TFeature, typename TSharedData>
itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::RegionBasedLevelSetFunction ( )
protected

The initial level set image

◆ ~RegionBasedLevelSetFunction()

template<typename TInput, typename TFeature, typename TSharedData>
itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::~RegionBasedLevelSetFunction ( )
overrideprotecteddefault

The initial level set image

Member Function Documentation

◆ AdvectionField()

template<typename TInput, typename TFeature, typename TSharedData>
virtual VectorType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::AdvectionField ( const NeighborhoodType ,
const FloatOffsetType ,
GlobalDataStruct = 0 
) const
inlinevirtual

Advection field. Default implementation returns a vector of zeros.

Definition at line 226 of file itkRegionBasedLevelSetFunction.h.

◆ CalculateAdvectionImage()

template<typename TInput, typename TFeature, typename TSharedData>
virtual void itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::CalculateAdvectionImage ( )
inlinevirtual

This method must be defined in a subclass to implement a working function object. This method is called before the solver begins its work to produce the speed image used as the level set function's Advection field term. See LevelSetFunction for more information.

Definition at line 383 of file itkRegionBasedLevelSetFunction.h.

◆ ComputeCurvature()

template<typename TInput, typename TFeature, typename TSharedData>
virtual ScalarValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::ComputeCurvature ( const NeighborhoodType ,
const FloatOffsetType ,
GlobalDataStruct gd 
)
virtual

The initial level set image

◆ ComputeExternalTerm()

template<typename TInput, typename TFeature, typename TSharedData>
virtual ScalarValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::ComputeExternalTerm ( const FeaturePixelType iValue,
const FeatureIndexType iIdx 
)
protectedpure virtual

Compute the external term.

Parameters
[in]iValueFeature Image Value
[in]iIdxFeature Image Index

◆ ComputeGlobalTerm()

template<typename TInput, typename TFeature, typename TSharedData>
ScalarValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::ComputeGlobalTerm ( const ScalarValueType imagePixel,
const InputIndexType inputIndex 
)
protected

Compute the global term as a combination of the internal, external, overlapping and volume regularization terms.

◆ ComputeGlobalTimeStep()

template<typename TInput, typename TFeature, typename TSharedData>
TimeStepType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::ComputeGlobalTimeStep ( void *  GlobalData) const
overridevirtual

Computes the time step for an update given a global data structure. The data used in the computation may take different forms depending on the nature of the equations. This global data cannot be kept in the instance of the equation object itself since the equation object must remain stateless for thread safety. The global data is therefore managed for each thread by the finite difference solver filters.

Implements itk::FiniteDifferenceFunction< TInput >.

◆ ComputeHessian()

template<typename TInput, typename TFeature, typename TSharedData>
void itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::ComputeHessian ( const NeighborhoodType it,
GlobalDataStruct globalData 
)
protected

Compute Hessian Matrix.

◆ ComputeHImage()

template<typename TInput, typename TFeature, typename TSharedData>
void itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::ComputeHImage ( )
protected

The initial level set image

◆ ComputeInternalTerm()

template<typename TInput, typename TFeature, typename TSharedData>
virtual ScalarValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::ComputeInternalTerm ( const FeaturePixelType iValue,
const FeatureIndexType iIdx 
)
protectedpure virtual

Compute the internal term.

Parameters
[in]iValueFeature Image Value
[in]iIdxFeature Image Index

◆ ComputeLaplacian()

template<typename TInput, typename TFeature, typename TSharedData>
ScalarValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::ComputeLaplacian ( GlobalDataStruct gd)
protected

Compute the laplacian term.

Returns
$ \Delta \phi - \div(\frac{\nabla \phi}{|\nabla \phi|}) $ For details see
REFERENCE
Li, C.M. and Xu, C.Y. and Gui, C. and Fox, M.D. "Level Set Evolution without Re-Initialization: A New Variational Formulation", CVPR05. 2005. pp. 430-436.

Compute the laplacian

Returns
$ \Delta \phi $

◆ ComputeOverlapParameters()

template<typename TInput, typename TFeature, typename TSharedData>
virtual ScalarValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::ComputeOverlapParameters ( const FeatureIndexType featIndex,
ScalarValueType pr 
)
protectedpure virtual

Compute the overlap term.

Parameters
[in]featIndex
[out]pr= $ \prod_{i \neq j} H(\phi_i)$
Returns
OverlapTerm = $ \sum_{i \neq j} H(\phi_i)$

◆ ComputeParameters()

template<typename TInput, typename TFeature, typename TSharedData>
virtual void itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::ComputeParameters ( )
protectedpure virtual

Compute Parameters for the inner and outer parts.

Implemented in itk::ScalarChanAndVeseLevelSetFunction< TInputImage, TFeatureImage, TSharedData >.

◆ ComputeUpdate()

template<typename TInput, typename TFeature, typename TSharedData>
PixelType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::ComputeUpdate ( const NeighborhoodType neighborhood,
void *  globalData,
const FloatOffsetType = FloatOffsetType(0.0) 
)
override

Compute the equation value.

◆ ComputeVolumeRegularizationTerm()

template<typename TInput, typename TFeature, typename TSharedData>
ScalarValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::ComputeVolumeRegularizationTerm ( )
protected

Compute the overlap term.

Returns
$ \int_{p \in \Omega} H(\phi_i) dp - this->Volume $
Note
the volume regularization does not depend on the spacing. So the volume must be set in number of pixels (not in real world unit).

◆ CurvatureSpeed()

template<typename TInput, typename TFeature, typename TSharedData>
virtual ScalarValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::CurvatureSpeed ( const NeighborhoodType ,
const FloatOffsetType ,
GlobalDataStruct = 0 
) const
inlinevirtual

Curvature speed can be used to spatially modify the effects of curvature . The default implementation returns one.

Definition at line 373 of file itkRegionBasedLevelSetFunction.h.

◆ GetAdvectionWeight()

template<typename TInput, typename TFeature, typename TSharedData>
ScalarValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::GetAdvectionWeight ( ) const
inline

The initial level set image

Definition at line 302 of file itkRegionBasedLevelSetFunction.h.

◆ GetAreaWeight()

template<typename TInput, typename TFeature, typename TSharedData>
ScalarValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::GetAreaWeight ( ) const
inline

The initial level set image

Definition at line 238 of file itkRegionBasedLevelSetFunction.h.

◆ GetCurvatureWeight()

template<typename TInput, typename TFeature, typename TSharedData>
ScalarValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::GetCurvatureWeight ( ) const
inline

The initial level set image

Definition at line 290 of file itkRegionBasedLevelSetFunction.h.

◆ GetFeatureImage()

template<typename TInput, typename TFeature, typename TSharedData>
virtual const FeatureImageType* itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::GetFeatureImage ( ) const
inlinevirtual

Definition at line 208 of file itkRegionBasedLevelSetFunction.h.

◆ GetGlobalDataPointer()

template<typename TInput, typename TFeature, typename TSharedData>
void* itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::GetGlobalDataPointer ( ) const
inlineoverridevirtual

Returns a pointer to a global data structure that is passed to this object from the solver at each calculation. The idea is that the solver holds the state of any global values needed to calculate the time step, while the equation object performs the actual calculations.

The global data should also be initialized in this method.

Implements itk::FiniteDifferenceFunction< TInput >.

Definition at line 187 of file itkRegionBasedLevelSetFunction.h.

◆ GetLambda1()

template<typename TInput, typename TFeature, typename TSharedData>
ScalarValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::GetLambda1 ( ) const
inline

The initial level set image

Definition at line 251 of file itkRegionBasedLevelSetFunction.h.

◆ GetLambda2()

template<typename TInput, typename TFeature, typename TSharedData>
ScalarValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::GetLambda2 ( ) const
inline

The initial level set image

Definition at line 264 of file itkRegionBasedLevelSetFunction.h.

◆ GetNameOfClass()

template<typename TInput, typename TFeature, typename TSharedData>
virtual const char* itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::GetNameOfClass ( ) const
virtual

◆ GetOverlapPenaltyWeight()

template<typename TInput, typename TFeature, typename TSharedData>
ScalarValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::GetOverlapPenaltyWeight ( ) const
inline

The initial level set image

Definition at line 277 of file itkRegionBasedLevelSetFunction.h.

◆ GetReinitializationSmoothingWeight()

template<typename TInput, typename TFeature, typename TSharedData>
ScalarValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::GetReinitializationSmoothingWeight ( ) const
inline

The initial level set image

Definition at line 314 of file itkRegionBasedLevelSetFunction.h.

◆ GetVolume()

template<typename TInput, typename TFeature, typename TSharedData>
ScalarValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::GetVolume ( ) const
inline

The initial level set image

Definition at line 340 of file itkRegionBasedLevelSetFunction.h.

◆ GetVolumeMatchingWeight()

template<typename TInput, typename TFeature, typename TSharedData>
ScalarValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::GetVolumeMatchingWeight ( ) const
inline

The initial level set image

Definition at line 327 of file itkRegionBasedLevelSetFunction.h.

◆ Initialize()

template<typename TInput, typename TFeature, typename TSharedData>
virtual void itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::Initialize ( const RadiusType r)
inlinevirtual

Definition at line 157 of file itkRegionBasedLevelSetFunction.h.

◆ InitializeZeroVectorConstant()

template<typename TInput, typename TFeature, typename TSharedData>
static VectorType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::InitializeZeroVectorConstant ( )
staticprotected

This method's only purpose is to initialize the zero vector constant.

◆ LaplacianSmoothingSpeed()

template<typename TInput, typename TFeature, typename TSharedData>
virtual ScalarValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::LaplacianSmoothingSpeed ( const NeighborhoodType ,
const FloatOffsetType ,
GlobalDataStruct = 0 
) const
inlinevirtual

Laplacian smoothing speed can be used to spatially modify the effects of laplacian smoothing of the level set function.

Definition at line 365 of file itkRegionBasedLevelSetFunction.h.

◆ ReleaseGlobalDataPointer()

template<typename TInput, typename TFeature, typename TSharedData>
void itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::ReleaseGlobalDataPointer ( void *  GlobalData) const
inlineoverridevirtual

The initial level set image

Implements itk::FiniteDifferenceFunction< TInput >.

Definition at line 354 of file itkRegionBasedLevelSetFunction.h.

◆ SetAdvectionWeight()

template<typename TInput, typename TFeature, typename TSharedData>
void itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::SetAdvectionWeight ( const ScalarValueType iA)
inline

The initial level set image

Definition at line 297 of file itkRegionBasedLevelSetFunction.h.

◆ SetAreaWeight()

template<typename TInput, typename TFeature, typename TSharedData>
void itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::SetAreaWeight ( const ScalarValueType nu)
inline

Nu. Area regularization values

Definition at line 233 of file itkRegionBasedLevelSetFunction.h.

◆ SetCurvatureWeight()

template<typename TInput, typename TFeature, typename TSharedData>
virtual void itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::SetCurvatureWeight ( const ScalarValueType  c)
inlinevirtual

Gamma. Scales all curvature weight values

Definition at line 285 of file itkRegionBasedLevelSetFunction.h.

◆ SetDomainFunction()

template<typename TInput, typename TFeature, typename TSharedData>
void itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::SetDomainFunction ( const HeavisideFunctionType f)
inline

Definition at line 151 of file itkRegionBasedLevelSetFunction.h.

◆ SetFeatureImage()

template<typename TInput, typename TFeature, typename TSharedData>
virtual void itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::SetFeatureImage ( const FeatureImageType f)
inlinevirtual

Definition at line 213 of file itkRegionBasedLevelSetFunction.h.

◆ SetFunctionId()

template<typename TInput, typename TFeature, typename TSharedData>
void itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::SetFunctionId ( const unsigned int &  iFid)
inline

Set function id.

Definition at line 348 of file itkRegionBasedLevelSetFunction.h.

◆ SetInitialImage()

template<typename TInput, typename TFeature, typename TSharedData>
void itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::SetInitialImage ( InputImageType f)
inline

Definition at line 202 of file itkRegionBasedLevelSetFunction.h.

◆ SetLambda1()

template<typename TInput, typename TFeature, typename TSharedData>
void itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::SetLambda1 ( const ScalarValueType lambda1)
inline

Lambda1. Internal intensity difference weight

Definition at line 246 of file itkRegionBasedLevelSetFunction.h.

◆ SetLambda2()

template<typename TInput, typename TFeature, typename TSharedData>
void itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::SetLambda2 ( const ScalarValueType lambda2)
inline

Lambda2. External intensity difference weight

Definition at line 259 of file itkRegionBasedLevelSetFunction.h.

◆ SetOverlapPenaltyWeight()

template<typename TInput, typename TFeature, typename TSharedData>
void itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::SetOverlapPenaltyWeight ( const ScalarValueType gamma)
inline

Gamma. Overlap penalty

Definition at line 272 of file itkRegionBasedLevelSetFunction.h.

◆ SetReinitializationSmoothingWeight()

template<typename TInput, typename TFeature, typename TSharedData>
void itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::SetReinitializationSmoothingWeight ( const ScalarValueType  c)
inline

Weight of the laplacian smoothing term

Definition at line 309 of file itkRegionBasedLevelSetFunction.h.

◆ SetSharedData()

template<typename TInput, typename TFeature, typename TSharedData>
void itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::SetSharedData ( SharedDataPointer  sharedDataIn)
inline

Definition at line 177 of file itkRegionBasedLevelSetFunction.h.

◆ SetVolume()

template<typename TInput, typename TFeature, typename TSharedData>
void itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::SetVolume ( const ScalarValueType volume)
inline

Pixel Volume = Number of pixels inside the level-set

Definition at line 335 of file itkRegionBasedLevelSetFunction.h.

◆ SetVolumeMatchingWeight()

template<typename TInput, typename TFeature, typename TSharedData>
void itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::SetVolumeMatchingWeight ( const ScalarValueType tau)
inline

Volume matching weight.

Definition at line 322 of file itkRegionBasedLevelSetFunction.h.

◆ UpdateSharedData()

template<typename TInput, typename TFeature, typename TSharedData>
void itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::UpdateSharedData ( bool  forceUpdate)

◆ UpdateSharedDataParameters()

template<typename TInput, typename TFeature, typename TSharedData>
virtual void itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::UpdateSharedDataParameters ( )
protectedpure virtual

Update and save the inner and outer parameters in the shared data structure.

Implemented in itk::ScalarChanAndVeseLevelSetFunction< TInputImage, TFeatureImage, TSharedData >.

Member Data Documentation

◆ ImageDimension

template<typename TInput, typename TFeature, typename TSharedData>
constexpr unsigned int itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::ImageDimension = Superclass::ImageDimension
staticconstexpr

Definition at line 78 of file itkRegionBasedLevelSetFunction.h.

◆ m_AdvectionWeight

template<typename TInput, typename TFeature, typename TSharedData>
ScalarValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_AdvectionWeight
protected

The initial level set image

Definition at line 421 of file itkRegionBasedLevelSetFunction.h.

◆ m_AreaWeight

template<typename TInput, typename TFeature, typename TSharedData>
ScalarValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_AreaWeight
protected

Area regularization weight

Definition at line 401 of file itkRegionBasedLevelSetFunction.h.

◆ m_Center

template<typename TInput, typename TFeature, typename TSharedData>
OffsetValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_Center
protected

The initial level set image

Definition at line 429 of file itkRegionBasedLevelSetFunction.h.

◆ m_CurvatureWeight

template<typename TInput, typename TFeature, typename TSharedData>
ScalarValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_CurvatureWeight
protected

Curvature Regularization Weight

Definition at line 419 of file itkRegionBasedLevelSetFunction.h.

◆ m_DomainFunction

template<typename TInput, typename TFeature, typename TSharedData>
HeavisideFunctionConstPointer itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_DomainFunction
protected

The initial level set image

Definition at line 398 of file itkRegionBasedLevelSetFunction.h.

◆ m_DT

template<typename TInput, typename TFeature, typename TSharedData>
double itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_DT
staticprotected

The initial level set image

Definition at line 434 of file itkRegionBasedLevelSetFunction.h.

◆ m_FeatureImage

template<typename TInput, typename TFeature, typename TSharedData>
FeatureImageConstPointer itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_FeatureImage
protected

The feature image

Definition at line 394 of file itkRegionBasedLevelSetFunction.h.

◆ m_FunctionId

template<typename TInput, typename TFeature, typename TSharedData>
unsigned int itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_FunctionId
protected

The initial level set image

Definition at line 426 of file itkRegionBasedLevelSetFunction.h.

◆ m_InitialImage

template<typename TInput, typename TFeature, typename TSharedData>
InputImageConstPointer itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_InitialImage
protected

The initial level set image

Definition at line 391 of file itkRegionBasedLevelSetFunction.h.

◆ m_InvSpacing

template<typename TInput, typename TFeature, typename TSharedData>
double itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_InvSpacing[Self::ImageDimension]
protected

The initial level set image

Definition at line 431 of file itkRegionBasedLevelSetFunction.h.

◆ m_Lambda1

template<typename TInput, typename TFeature, typename TSharedData>
ScalarValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_Lambda1
protected

Internal functional of the level set weight

Definition at line 404 of file itkRegionBasedLevelSetFunction.h.

◆ m_Lambda2

template<typename TInput, typename TFeature, typename TSharedData>
ScalarValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_Lambda2
protected

External functional of the level set weight

Definition at line 407 of file itkRegionBasedLevelSetFunction.h.

◆ m_OverlapPenaltyWeight

template<typename TInput, typename TFeature, typename TSharedData>
ScalarValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_OverlapPenaltyWeight
protected

Overlap Penalty Weight

Definition at line 410 of file itkRegionBasedLevelSetFunction.h.

◆ m_ReinitializationSmoothingWeight

template<typename TInput, typename TFeature, typename TSharedData>
ScalarValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_ReinitializationSmoothingWeight
protected

Laplacian Regularization Weight

Definition at line 424 of file itkRegionBasedLevelSetFunction.h.

◆ m_SharedData

template<typename TInput, typename TFeature, typename TSharedData>
SharedDataPointer itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_SharedData
protected

The initial level set image

Definition at line 396 of file itkRegionBasedLevelSetFunction.h.

◆ m_UpdateC

template<typename TInput, typename TFeature, typename TSharedData>
bool itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_UpdateC
protected

The initial level set image

Definition at line 499 of file itkRegionBasedLevelSetFunction.h.

◆ m_Volume

template<typename TInput, typename TFeature, typename TSharedData>
ScalarValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_Volume
protected

Volume Constraint in pixels

Definition at line 416 of file itkRegionBasedLevelSetFunction.h.

◆ m_VolumeMatchingWeight

template<typename TInput, typename TFeature, typename TSharedData>
ScalarValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_VolumeMatchingWeight
protected

Volume Regularization Weight

Definition at line 413 of file itkRegionBasedLevelSetFunction.h.

◆ m_WaveDT

template<typename TInput, typename TFeature, typename TSharedData>
double itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_WaveDT
staticprotected

The initial level set image

Definition at line 433 of file itkRegionBasedLevelSetFunction.h.

◆ m_xStride

template<typename TInput, typename TFeature, typename TSharedData>
OffsetValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_xStride[Self::ImageDimension]
protected

The initial level set image

Definition at line 430 of file itkRegionBasedLevelSetFunction.h.

◆ m_ZeroVectorConstant

template<typename TInput, typename TFeature, typename TSharedData>
VectorType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_ZeroVectorConstant
staticprotected

Zero vector constant.

Definition at line 507 of file itkRegionBasedLevelSetFunction.h.

◆ x_slice

template<typename TInput, typename TFeature, typename TSharedData>
std::slice itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::x_slice[Self::ImageDimension]
protected

The initial level set image

Definition at line 428 of file itkRegionBasedLevelSetFunction.h.


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