ITK  4.9.0
Insight Segmentation and Registration Toolkit
Classes | Public Types | Public Member Functions | Static Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | 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 >:

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
http://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
http://hdl.handle.net/1926/1532

and

"Level set segmentation using coupled active surfaces"
http://www.insight-journal.org/browse/publication/323
http://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.

Classes

struct  GlobalDataStruct
 

Public Types

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

Public Member Functions

virtual VectorType AdvectionField (const NeighborhoodType &, const FloatOffsetType &, GlobalDataStruct *=0) const
 
virtual void CalculateAdvectionImage ()
 
virtual ScalarValueType ComputeCurvature (const NeighborhoodType &, const FloatOffsetType &, GlobalDataStruct *gd)
 
TimeStepType ComputeGlobalTimeStep (void *GlobalData) const override
 
virtual PixelType ComputeUpdate (const NeighborhoodType &neighborhood, void *globalData, const FloatOffsetType &=FloatOffsetType(0.0)) override
 
virtual ScalarValueType CurvatureSpeed (const NeighborhoodType &, const FloatOffsetType &, GlobalDataStruct *=0) const
 
ScalarValueType GetAdvectionWeight () const
 
virtual const FeatureImageTypeGetFeatureImage () const
 
void * GetGlobalDataPointer () const override
 
virtual const char * GetNameOfClass () const
 
virtual void Initialize (const RadiusType &r)
 
virtual ScalarValueType LaplacianSmoothingSpeed (const NeighborhoodType &, const FloatOffsetType &, GlobalDataStruct *=0) const
 
virtual void ReleaseGlobalDataPointer (void *GlobalData) const override
 
void SetAdvectionWeight (const ScalarValueType &iA)
 
void SetDomainFunction (const HeavisideFunctionType *f)
 
virtual void SetFeatureImage (const FeatureImageType *f)
 
void SetFunctionId (const unsigned int &iFid)
 
void SetInitialImage (InputImageType *f)
 
void SetSharedData (SharedDataPointer sharedDataIn)
 
void UpdateSharedData (bool forceUpdate)
 
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 SetReinitializationSmoothingWeight (const ScalarValueType c)
 
ScalarValueType GetReinitializationSmoothingWeight () const
 
void SetVolumeMatchingWeight (const ScalarValueType &tau)
 
ScalarValueType GetVolumeMatchingWeight () const
 
void SetVolume (const ScalarValueType &volume)
 
ScalarValueType GetVolume () const
 
- Public Member Functions inherited from itk::FiniteDifferenceFunction< TInput >
const NeighborhoodScalesType ComputeNeighborhoodScales () const
 
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 const unsigned int ImageDimension = Superclass::ImageDimension
 
- Static Public Attributes inherited from itk::FiniteDifferenceFunction< TInput >
static const unsigned int ImageDimension
 

Protected Member Functions

virtual ScalarValueType ComputeExternalTerm (const FeaturePixelType &iValue, const FeatureIndexType &iIdx)=0
 
ScalarValueType ComputeGlobalTerm (const ScalarValueType &imagePixel, const InputIndexType &inputIndex)
 
void ComputeHessian (const NeighborhoodType &it, GlobalDataStruct *globalData)
 
void ComputeHImage ()
 
virtual ScalarValueType ComputeInternalTerm (const FeaturePixelType &iValue, const FeatureIndexType &iIdx)=0
 
ScalarValueType ComputeLaplacian (GlobalDataStruct *gd)
 
virtual ScalarValueType ComputeOverlapParameters (const FeatureIndexType &featIndex, ScalarValueType &pr)=0
 
virtual void ComputeParameters ()=0
 
ScalarValueType ComputeVolumeRegularizationTerm ()
 
 RegionBasedLevelSetFunction ()
 
virtual void UpdateSharedDataParameters ()=0
 
virtual ~RegionBasedLevelSetFunction ()
 
- Protected Member Functions inherited from itk::FiniteDifferenceFunction< TInput >
 FiniteDifferenceFunction ()
 
virtual void PrintSelf (std::ostream &os, Indent indent) const override
 
 ~FiniteDifferenceFunction ()
 
- 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 ()
 

Static Protected Member Functions

static VectorType InitializeZeroVectorConstant ()
 

Protected Attributes

ScalarValueType m_AdvectionWeight
 
ScalarValueType m_AreaWeight
 
OffsetValueType m_Center
 
ScalarValueType m_CurvatureWeight
 
HeavisideFunctionConstPointer m_DomainFunction
 
FeatureImageConstPointer m_FeatureImage
 
unsigned int m_FunctionId
 
InputImageConstPointer m_InitialImage
 
double m_InvSpacing [itkGetStaticConstMacro(ImageDimension)]
 
ScalarValueType m_Lambda1
 
ScalarValueType m_Lambda2
 
ScalarValueType m_OverlapPenaltyWeight
 
ScalarValueType m_ReinitializationSmoothingWeight
 
SharedDataPointer m_SharedData
 
bool m_UpdateC
 
ScalarValueType m_Volume
 
ScalarValueType m_VolumeMatchingWeight
 
OffsetValueType m_xStride [itkGetStaticConstMacro(ImageDimension)]
 
std::slice x_slice [itkGetStaticConstMacro(ImageDimension)]
 
- Protected Attributes inherited from itk::FiniteDifferenceFunction< TInput >
RadiusType m_Radius
 
PixelRealType m_ScaleCoefficients [ImageDimension]
 
- Protected Attributes inherited from itk::LightObject
AtomicInt< int > m_ReferenceCount
 

Static Protected Attributes

static double m_DT
 
static double m_WaveDT
 
static VectorType m_ZeroVectorConstant
 

Private Member Functions

void operator= (const Self &) ITK_DELETE_FUNCTION
 
 RegionBasedLevelSetFunction (const Self &) ITK_DELETE_FUNCTION
 

Additional Inherited Members

- Static Public Member Functions inherited from itk::LightObject
static void BreakOnError ()
 
static Pointer New ()
 

Member Typedef Documentation

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

Definition at line 75 of file itkRegionBasedLevelSetFunction.h.

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

Definition at line 139 of file itkRegionBasedLevelSetFunction.h.

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

Definition at line 138 of file itkRegionBasedLevelSetFunction.h.

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

Definition at line 141 of file itkRegionBasedLevelSetFunction.h.

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

Definition at line 143 of file itkRegionBasedLevelSetFunction.h.

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

Definition at line 140 of file itkRegionBasedLevelSetFunction.h.

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

Definition at line 142 of file itkRegionBasedLevelSetFunction.h.

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

Definition at line 92 of file itkRegionBasedLevelSetFunction.h.

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

Definition at line 149 of file itkRegionBasedLevelSetFunction.h.

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

Definition at line 148 of file itkRegionBasedLevelSetFunction.h.

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

Definition at line 86 of file itkRegionBasedLevelSetFunction.h.

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

Definition at line 128 of file itkRegionBasedLevelSetFunction.h.

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

Definition at line 129 of file itkRegionBasedLevelSetFunction.h.

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

Definition at line 127 of file itkRegionBasedLevelSetFunction.h.

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

Definition at line 131 of file itkRegionBasedLevelSetFunction.h.

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

Definition at line 132 of file itkRegionBasedLevelSetFunction.h.

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

Definition at line 130 of file itkRegionBasedLevelSetFunction.h.

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

Definition at line 136 of file itkRegionBasedLevelSetFunction.h.

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

Definition at line 135 of file itkRegionBasedLevelSetFunction.h.

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

Definition at line 133 of file itkRegionBasedLevelSetFunction.h.

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

Definition at line 134 of file itkRegionBasedLevelSetFunction.h.

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

Definition at line 91 of file itkRegionBasedLevelSetFunction.h.

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

Definition at line 90 of file itkRegionBasedLevelSetFunction.h.

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

Definition at line 87 of file itkRegionBasedLevelSetFunction.h.

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

Definition at line 74 of file itkRegionBasedLevelSetFunction.h.

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

Definition at line 89 of file itkRegionBasedLevelSetFunction.h.

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

Definition at line 88 of file itkRegionBasedLevelSetFunction.h.

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

Standard class typedefs.

Definition at line 72 of file itkRegionBasedLevelSetFunction.h.

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

Definition at line 146 of file itkRegionBasedLevelSetFunction.h.

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

Definition at line 145 of file itkRegionBasedLevelSetFunction.h.

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

Definition at line 73 of file itkRegionBasedLevelSetFunction.h.

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

Extract some parameters from the superclass.

Definition at line 82 of file itkRegionBasedLevelSetFunction.h.

template<typename TInput, typename TFeature, typename TSharedData>
typedef FixedArray< ScalarValueType, itkGetStaticConstMacro(ImageDimension) > itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::VectorType

Definition at line 94 of file itkRegionBasedLevelSetFunction.h.

Constructor & Destructor Documentation

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

Definition at line 311 of file itkRegionBasedLevelSetFunction.h.

template<typename TInput, typename TFeature, typename TSharedData>
itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::RegionBasedLevelSetFunction ( const Self )
private

Member Function Documentation

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 213 of file itkRegionBasedLevelSetFunction.h.

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 306 of file itkRegionBasedLevelSetFunction.h.

template<typename TInput, typename TFeature, typename TSharedData>
virtual ScalarValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::ComputeCurvature ( const NeighborhoodType ,
const FloatOffsetType ,
GlobalDataStruct gd 
)
virtual
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
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.

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 >.

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

Compute Hessian Matrix.

template<typename TInput, typename TFeature, typename TSharedData>
void itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::ComputeHImage ( )
protected
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
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 $
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)$
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 >.

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

Compute the equation value.

Implements itk::FiniteDifferenceFunction< TInput >.

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).
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 297 of file itkRegionBasedLevelSetFunction.h.

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

Definition at line 254 of file itkRegionBasedLevelSetFunction.h.

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

Nu. Area regularization values

Definition at line 220 of file itkRegionBasedLevelSetFunction.h.

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

Gamma. Scales all curvature weight values

Definition at line 248 of file itkRegionBasedLevelSetFunction.h.

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

Definition at line 199 of file itkRegionBasedLevelSetFunction.h.

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 183 of file itkRegionBasedLevelSetFunction.h.

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

Lambda1. Internal intensity difference weight

Definition at line 227 of file itkRegionBasedLevelSetFunction.h.

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

Lambda2. External intensity difference weight

Definition at line 234 of file itkRegionBasedLevelSetFunction.h.

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

Gamma. Overlap penalty

Definition at line 241 of file itkRegionBasedLevelSetFunction.h.

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

Weight of the laplacian smoothing term

Definition at line 260 of file itkRegionBasedLevelSetFunction.h.

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

Pixel Volume = Number of pixels inside the level-set

Definition at line 274 of file itkRegionBasedLevelSetFunction.h.

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

Volume matching weight.

Definition at line 267 of file itkRegionBasedLevelSetFunction.h.

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

Definition at line 156 of file itkRegionBasedLevelSetFunction.h.

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.

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 290 of file itkRegionBasedLevelSetFunction.h.

template<typename TInput, typename TFeature, typename TSharedData>
void itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::operator= ( const Self )
private
template<typename TInput, typename TFeature, typename TSharedData>
virtual void itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::ReleaseGlobalDataPointer ( void *  GlobalData) const
inlineoverridevirtual

When the finite difference solver filter has finished using a global data pointer, it passes it to this method, which frees the memory.

The solver cannot free the memory because it does not know the type to which the pointer points.

Implements itk::FiniteDifferenceFunction< TInput >.

Definition at line 282 of file itkRegionBasedLevelSetFunction.h.

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

Definition at line 252 of file itkRegionBasedLevelSetFunction.h.

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 218 of file itkRegionBasedLevelSetFunction.h.

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 246 of file itkRegionBasedLevelSetFunction.h.

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.

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

Definition at line 201 of file itkRegionBasedLevelSetFunction.h.

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 279 of file itkRegionBasedLevelSetFunction.h.

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

Definition at line 194 of file itkRegionBasedLevelSetFunction.h.

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 225 of file itkRegionBasedLevelSetFunction.h.

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 232 of file itkRegionBasedLevelSetFunction.h.

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

Gamma. Overlap penalty

Definition at line 239 of file itkRegionBasedLevelSetFunction.h.

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 258 of file itkRegionBasedLevelSetFunction.h.

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

Definition at line 175 of file itkRegionBasedLevelSetFunction.h.

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 272 of file itkRegionBasedLevelSetFunction.h.

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

Volume matching weight.

Definition at line 265 of file itkRegionBasedLevelSetFunction.h.

template<typename TInput, typename TFeature, typename TSharedData>
void itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::UpdateSharedData ( bool  forceUpdate)
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

template<typename TInput, typename TFeature, typename TSharedData>
const unsigned int itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::ImageDimension = Superclass::ImageDimension
static
template<typename TInput, typename TFeature, typename TSharedData>
ScalarValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_AdvectionWeight
protected
template<typename TInput, typename TFeature, typename TSharedData>
ScalarValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_AreaWeight
protected
template<typename TInput, typename TFeature, typename TSharedData>
OffsetValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_Center
protected
template<typename TInput, typename TFeature, typename TSharedData>
ScalarValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_CurvatureWeight
protected
template<typename TInput, typename TFeature, typename TSharedData>
HeavisideFunctionConstPointer itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_DomainFunction
protected
template<typename TInput, typename TFeature, typename TSharedData>
double itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_DT
staticprotected

Definition at line 357 of file itkRegionBasedLevelSetFunction.h.

template<typename TInput, typename TFeature, typename TSharedData>
FeatureImageConstPointer itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_FeatureImage
protected
template<typename TInput, typename TFeature, typename TSharedData>
unsigned int itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_FunctionId
protected
template<typename TInput, typename TFeature, typename TSharedData>
InputImageConstPointer itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_InitialImage
protected
template<typename TInput, typename TFeature, typename TSharedData>
double itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_InvSpacing[itkGetStaticConstMacro(ImageDimension)]
protected
template<typename TInput, typename TFeature, typename TSharedData>
ScalarValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_Lambda1
protected
template<typename TInput, typename TFeature, typename TSharedData>
ScalarValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_Lambda2
protected
template<typename TInput, typename TFeature, typename TSharedData>
ScalarValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_OverlapPenaltyWeight
protected
template<typename TInput, typename TFeature, typename TSharedData>
ScalarValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_ReinitializationSmoothingWeight
protected
template<typename TInput, typename TFeature, typename TSharedData>
SharedDataPointer itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_SharedData
protected
template<typename TInput, typename TFeature, typename TSharedData>
bool itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_UpdateC
protected

Definition at line 418 of file itkRegionBasedLevelSetFunction.h.

template<typename TInput, typename TFeature, typename TSharedData>
ScalarValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_Volume
protected
template<typename TInput, typename TFeature, typename TSharedData>
ScalarValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_VolumeMatchingWeight
protected
template<typename TInput, typename TFeature, typename TSharedData>
double itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_WaveDT
staticprotected

Definition at line 356 of file itkRegionBasedLevelSetFunction.h.

template<typename TInput, typename TFeature, typename TSharedData>
OffsetValueType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_xStride[itkGetStaticConstMacro(ImageDimension)]
protected
template<typename TInput, typename TFeature, typename TSharedData>
VectorType itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::m_ZeroVectorConstant
staticprotected
template<typename TInput, typename TFeature, typename TSharedData>
std::slice itk::RegionBasedLevelSetFunction< TInput, TFeature, TSharedData >::x_slice[itkGetStaticConstMacro(ImageDimension)]
protected

Definition at line 351 of file itkRegionBasedLevelSetFunction.h.


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