Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage > Class Template Reference
[Level Set-Based Segmentation Filters]

Edge based shape detection using a level set approach. More...

#include <itkShapeDetectionLevelSetFilter.h>

Inheritance diagram for itk::ShapeDetectionLevelSetFilter:

Inheritance graph
[legend]
Collaboration diagram for itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >:

Collaboration graph
[legend]
List of all members.

Public Types

typedef ShapeDetectionLevelSetFilter Self
typedef LevelSetImageFilter<
TLevelSet > 
Superclass
typedef SmartPointer< SelfPointer
typedef SmartPointer< const
Self
ConstPointer
typedef LevelSetTypeDefault<
TLevelSet > 
LevelSetType
typedef LevelSetType::LevelSetImageType LevelSetImageType
typedef LevelSetType::LevelSetPointer LevelSetPointer
typedef LevelSetType::PixelType PixelType
typedef LevelSetType::NodeType NodeType
typedef LevelSetType::NodeContainer NodeContainer
typedef LevelSetType::NodeContainerPointer NodeContainerPointer
typedef TEdgeImage EdgeImageType
typedef EdgeImageType::Pointer EdgeImagePointer
typedef EdgeImageType::ConstPointer EdgeImageConstPointer

Public Methods

virtual const char * GetClassName () const
NodeContainerPointer GetOutputNarrowBand ()
void SetEdgeImage (const EdgeImageType *ptr)
const EdgeImageTypeGetEdgeImage (void)
virtual void SetLengthPenaltyStrength (double _arg)
virtual double GetLengthPenaltyStrength ()
virtual void SetPropagateOutwards (bool _arg)
virtual bool GetPropagateOutwards ()

Static Public Methods

Pointer New ()

Protected Methods

 ShapeDetectionLevelSetFilter ()
 ~ShapeDetectionLevelSetFilter ()
void PrintSelf (std::ostream &os, Indent indent) const
virtual void AllocateOutput ()
void GenerateData ()
virtual void GenerateDataFull ()
virtual void GenerateDataNarrowBand ()
virtual void GenerateInputRequestedRegion ()
void SetOutputNarrowBand (NodeContainer *ptr)

Detailed Description

template<class TLevelSet, class TEdgeImage>
class itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >

Edge based shape detection using a level set approach.

ShapeDetectionLevelSetFilter is a level set approach for boundary detection. An initial contour is propagated outwards until it sticks to the shape boundaries. This is done by using a speed function which is based on image edge features.

Propagation is done by the evolution of a higher-order level-set with the propagation front embedded as the zero level set.

This class requires two inputs: an initial level set and and edge potential image.

The initial level set is a floating point image which contains the initial front as the zero level set. For example, a signed function from the intial front is typically used.

A signed function image can be constructed using the ReinitializeLevel class where the input is a binary image with all the pixels on the inside of the front assigned a value of -0.5 and all pixels on the outside assigned a value of +0.5.

The edge potential image has values close to zero in regions of high image gradient and values close to one in regions with relatively constant intensity. For example, functions

are typically used, where is image intensity and is the derivative of Gaussian operator.

EdgePotentialImageFilter computes the potential map using the latter equation with the image gradient as the input.

The user can force the propagation to go inwards via method SetPropagateOutwards( false ).

This class is templated on the image type which represent the level set and the type of the edge potential image.

This class supports narrowbanding, where at each iteration only a narrow band surrounding the propagating front is updated.

Implementation of this class is based on: "Shape Modeling with Front Propagation: A Level Set Approach", R. Malladi, J. A. Sethian and B. C. Vermuri. IEEE Trans. on Pattern Analysis and Machine Intelligence, Vol 17, No. 2, pp 158-174, February 1995

Possible improvements:

Note: this filter will eventually be re-implemented as part of the Finite Difference Solver framework.

See also:
EdgePotentialImageFilter

Definition at line 92 of file itkShapeDetectionLevelSetFilter.h.


Member Typedef Documentation

template<class TLevelSet, class TEdgeImage>
typedef SmartPointer<const Self> itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >::ConstPointer
 

Reimplemented from itk::LevelSetImageFilter< TLevelSet >.

Reimplemented in itk::GeodesicActiveContourImageFilter< TLevelSet, TEdgeImage, TDerivImage >.

Definition at line 100 of file itkShapeDetectionLevelSetFilter.h.

template<class TLevelSet, class TEdgeImage>
typedef EdgeImageType::ConstPointer itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >::EdgeImageConstPointer
 

Definition at line 122 of file itkShapeDetectionLevelSetFilter.h.

template<class TLevelSet, class TEdgeImage>
typedef EdgeImageType::Pointer itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >::EdgeImagePointer
 

EdgeImagePointer typedef support.

Reimplemented in itk::GeodesicActiveContourImageFilter< TLevelSet, TEdgeImage, TDerivImage >.

Definition at line 121 of file itkShapeDetectionLevelSetFilter.h.

template<class TLevelSet, class TEdgeImage>
typedef TEdgeImage itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >::EdgeImageType
 

Typedef support for the edge image type.

Reimplemented in itk::GeodesicActiveContourImageFilter< TLevelSet, TEdgeImage, TDerivImage >.

Definition at line 118 of file itkShapeDetectionLevelSetFilter.h.

template<class TLevelSet, class TEdgeImage>
typedef LevelSetType::LevelSetImageType itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >::LevelSetImageType
 

Reimplemented from itk::LevelSetImageFilter< TLevelSet >.

Reimplemented in itk::GeodesicActiveContourImageFilter< TLevelSet, TEdgeImage, TDerivImage >.

Definition at line 110 of file itkShapeDetectionLevelSetFilter.h.

template<class TLevelSet, class TEdgeImage>
typedef LevelSetType::LevelSetPointer itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >::LevelSetPointer
 

Reimplemented from itk::LevelSetImageFilter< TLevelSet >.

Reimplemented in itk::GeodesicActiveContourImageFilter< TLevelSet, TEdgeImage, TDerivImage >.

Definition at line 111 of file itkShapeDetectionLevelSetFilter.h.

template<class TLevelSet, class TEdgeImage>
typedef LevelSetTypeDefault<TLevelSet> itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >::LevelSetType
 

Typedef support for level set related types.

Reimplemented from itk::LevelSetImageFilter< TLevelSet >.

Reimplemented in itk::GeodesicActiveContourImageFilter< TLevelSet, TEdgeImage, TDerivImage >.

Definition at line 109 of file itkShapeDetectionLevelSetFilter.h.

template<class TLevelSet, class TEdgeImage>
typedef LevelSetType::NodeContainer itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >::NodeContainer
 

Reimplemented from itk::LevelSetImageFilter< TLevelSet >.

Reimplemented in itk::GeodesicActiveContourImageFilter< TLevelSet, TEdgeImage, TDerivImage >.

Definition at line 114 of file itkShapeDetectionLevelSetFilter.h.

template<class TLevelSet, class TEdgeImage>
typedef LevelSetType::NodeContainerPointer itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >::NodeContainerPointer
 

Reimplemented from itk::LevelSetImageFilter< TLevelSet >.

Reimplemented in itk::GeodesicActiveContourImageFilter< TLevelSet, TEdgeImage, TDerivImage >.

Definition at line 115 of file itkShapeDetectionLevelSetFilter.h.

template<class TLevelSet, class TEdgeImage>
typedef LevelSetType::NodeType itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >::NodeType
 

Reimplemented from itk::LevelSetImageFilter< TLevelSet >.

Reimplemented in itk::GeodesicActiveContourImageFilter< TLevelSet, TEdgeImage, TDerivImage >.

Definition at line 113 of file itkShapeDetectionLevelSetFilter.h.

template<class TLevelSet, class TEdgeImage>
typedef LevelSetType::PixelType itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >::PixelType
 

Reimplemented from itk::LevelSetImageFilter< TLevelSet >.

Reimplemented in itk::GeodesicActiveContourImageFilter< TLevelSet, TEdgeImage, TDerivImage >.

Definition at line 112 of file itkShapeDetectionLevelSetFilter.h.

template<class TLevelSet, class TEdgeImage>
typedef SmartPointer<Self> itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >::Pointer
 

Reimplemented from itk::LevelSetImageFilter< TLevelSet >.

Reimplemented in itk::GeodesicActiveContourImageFilter< TLevelSet, TEdgeImage, TDerivImage >.

Definition at line 99 of file itkShapeDetectionLevelSetFilter.h.

template<class TLevelSet, class TEdgeImage>
typedef ShapeDetectionLevelSetFilter itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >::Self
 

Standard class typedefs.

Reimplemented from itk::LevelSetImageFilter< TLevelSet >.

Reimplemented in itk::GeodesicActiveContourImageFilter< TLevelSet, TEdgeImage, TDerivImage >.

Definition at line 97 of file itkShapeDetectionLevelSetFilter.h.

template<class TLevelSet, class TEdgeImage>
typedef LevelSetImageFilter<TLevelSet> itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >::Superclass
 

Reimplemented from itk::LevelSetImageFilter< TLevelSet >.

Reimplemented in itk::GeodesicActiveContourImageFilter< TLevelSet, TEdgeImage, TDerivImage >.

Definition at line 98 of file itkShapeDetectionLevelSetFilter.h.


Constructor & Destructor Documentation

template<class TLevelSet, class TEdgeImage>
itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >::ShapeDetectionLevelSetFilter   [protected]
 

template<class TLevelSet, class TEdgeImage>
itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >::~ShapeDetectionLevelSetFilter   [inline, protected]
 

Definition at line 154 of file itkShapeDetectionLevelSetFilter.h.

References HardConnectedComponentImageFilter::GenerateData().


Member Function Documentation

template<class TLevelSet, class TEdgeImage>
virtual void itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >::AllocateOutput   [protected, virtual]
 

template<class TLevelSet, class TEdgeImage>
void itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >::GenerateData void    [protected, virtual]
 

This method causes the filter to generate its output.

Reimplemented from itk::ImageSource< TLevelSet >.

template<class TLevelSet, class TEdgeImage>
virtual void itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >::GenerateDataFull   [protected, virtual]
 

Reimplemented in itk::GeodesicActiveContourImageFilter< TLevelSet, TEdgeImage, TDerivImage >.

template<class TLevelSet, class TEdgeImage>
virtual void itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >::GenerateDataNarrowBand   [protected, virtual]
 

Reimplemented in itk::GeodesicActiveContourImageFilter< TLevelSet, TEdgeImage, TDerivImage >.

template<class TLevelSet, class TEdgeImage>
virtual void itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >::GenerateInputRequestedRegion   [protected, virtual]
 

Specify the required input region to satisfiy the output request. The default is to request for the largest possible region for any output. Subclasses should override this method if a different input size is desired.

See also:
ProcessObject::GenerateInputRequestedRegion()

Reimplemented from itk::LevelSetImageFilter< TLevelSet >.

Reimplemented in itk::GeodesicActiveContourImageFilter< TLevelSet, TEdgeImage, TDerivImage >.

template<class TLevelSet, class TEdgeImage>
virtual const char* itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >::GetClassName   const [virtual]
 

Run-time type information (and related methods).

Reimplemented from itk::LevelSetImageFilter< TLevelSet >.

Reimplemented in itk::GeodesicActiveContourImageFilter< TLevelSet, TEdgeImage, TDerivImage >.

template<class TLevelSet, class TEdgeImage>
const EdgeImageType* itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >::GetEdgeImage void   
 

Set/Get the edge image.

template<class TLevelSet, class TEdgeImage>
virtual double itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >::GetLengthPenaltyStrength   [virtual]
 

Set/Get the length penalty strength. This parameter can be viewed as the weighting given to length of the front in an energy functional. The larger the value, the smoother the resulting front. This is the "epsilon" parameter in the Malladi et al paper. Typically, the value is application dependent (e.g. noise level, shape complexity, intensity range). Default value is 0.05

template<class TLevelSet, class TEdgeImage>
NodeContainerPointer itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >::GetOutputNarrowBand   [inline]
 

Get the output narrow band.

Definition at line 149 of file itkShapeDetectionLevelSetFilter.h.

template<class TLevelSet, class TEdgeImage>
virtual bool itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >::GetPropagateOutwards   [virtual]
 

Set/Get the propagation direction. If PropagateOutwards is true then the front propagated outwards in each iteration. If set to false the front is propagated inwards. By default, PropagateOutwards is set to true.

template<class TLevelSet, class TEdgeImage>
Pointer itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >::New   [static]
 

Method for creation through the object factory.

Reimplemented from itk::ImageToImageFilter< TLevelSet, TLevelSet >.

Reimplemented in itk::GeodesicActiveContourImageFilter< TLevelSet, TEdgeImage, TDerivImage >.

template<class TLevelSet, class TEdgeImage>
void itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >::PrintSelf std::ostream &    os,
Indent    indent
const [protected, virtual]
 

Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from itk::LevelSetImageFilter< TLevelSet >.

Reimplemented in itk::GeodesicActiveContourImageFilter< TLevelSet, TEdgeImage, TDerivImage >.

template<class TLevelSet, class TEdgeImage>
void itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >::SetEdgeImage const EdgeImageType   ptr
 

Set/Get the edge image.

template<class TLevelSet, class TEdgeImage>
virtual void itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >::SetLengthPenaltyStrength double    _arg [virtual]
 

Set/Get the length penalty strength. This parameter can be viewed as the weighting given to length of the front in an energy functional. The larger the value, the smoother the resulting front. This is the "epsilon" parameter in the Malladi et al paper. Typically, the value is application dependent (e.g. noise level, shape complexity, intensity range). Default value is 0.05

template<class TLevelSet, class TEdgeImage>
void itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >::SetOutputNarrowBand NodeContainer   ptr [inline, protected]
 

Definition at line 163 of file itkShapeDetectionLevelSetFilter.h.

template<class TLevelSet, class TEdgeImage>
virtual void itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >::SetPropagateOutwards bool    _arg [virtual]
 

Set/Get the propagation direction. If PropagateOutwards is true then the front propagated outwards in each iteration. If set to false the front is propagated inwards. By default, PropagateOutwards is set to true.


The documentation for this class was generated from the following file:
Generated at Wed Mar 12 01:21:48 2003 for ITK by doxygen 1.2.15 written by Dimitri van Heesch, © 1997-2000