ITK  4.0.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Private Attributes
itk::CannySegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType > Class Template Reference

Segments structures in images based on image features derived from pseudo-canny-edges. More...

#include <itkCannySegmentationLevelSetImageFilter.h>

Inheritance diagram for itk::CannySegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >:
Collaboration diagram for itk::CannySegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >:

List of all members.

Public Types

typedef SmartPointer< const SelfConstPointer
typedef
Superclass::FeatureImageType 
FeatureImageType
typedef Superclass::OutputImageType OutputImageType
typedef SmartPointer< SelfPointer
typedef
CannyFunctionType::ScalarValueType 
ScalarValueType
typedef
CannySegmentationLevelSetImageFilter 
Self
typedef Superclass::SpeedImageType SpeedImageType
typedef
SegmentationLevelSetImageFilter
< TInputImage, TFeatureImage,
TOutputPixelType > 
Superclass
typedef Superclass::ValueType ValueType
typedef Superclass::VectorImageType VectorImageType

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
OutputImageTypeGetCannyImage (void)
virtual const char * GetNameOfClass () const
 typedef (Concept::HasNumericTraits< TOutputPixelType >) OutputHasNumericTraitsCheck
void SetThreshold (ScalarValueType v)
ScalarValueType GetThreshold () const
void SetVariance (double v)
double GetVariance () const

Static Public Member Functions

static Pointer New ()

Public Attributes

typedef::itk::CannySegmentationLevelSetFunction
< OutputImageType,
FeatureImageType
CannyFunctionType

Private Attributes

CannyFunctionType::Pointer m_CannyFunction
 ~CannySegmentationLevelSetImageFilter ()
 CannySegmentationLevelSetImageFilter ()
 CannySegmentationLevelSetImageFilter (const Self &)
void operator= (const Self &)

Detailed Description

template<class TInputImage, class TFeatureImage, class TOutputPixelType = float>
class itk::CannySegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >

Segments structures in images based on image features derived from pseudo-canny-edges.

IMPORTANT
The SegmentationLevelSetImageFilter class and the CannySegmentationLevelSetFunction class contain additional information necessary to the full understanding of how to use this filter.
OVERVIEW
This class is a level set method segmentation filter. It constructs a speed function which is designed to lock onto edges as detected by a Canny filter.
The CannySegmentationLevelSetImageFilter can be a tool for refining an existing segmentation, or it can be used to try to segment a region by itself. Like all other level-set based segmentation filters (see SegmentationLevelSetImageFilter), it works by first constructing a scalar speed term and a vector advection field based on edge features in the image. The level set front is then moved according to these two terms with the addition of a third curvature term to contol the smoothness of the solution.
The speed term is constructed as the Danielsson distance transform of the Canny edge image, as calculated by the CannyEdgeDetectionImageFilter. This scalar speed can be tuned in and out of the final evolution equation by setting the PropagationScaling parameter (a value of 0 removes the speed term).
The advection field term is constructed by minimizing Danielsson distance squared. i.e. $ \mbox{min} \int D^2 \Rightarrow D \nabla D $. This term moves the level set down the gradient of the distance transform.
In practice, you may set the speed (propagation) term to zero if your initialization is already close to the edge you are interested in. If you are trying to segment a region by seeding with a small surface (blob, sphere) then you will likely want to add speed (propagation) to the equation so that the levelsets can expand along zero gradients. The relative influence of these two terms are controlled by the SetPropagationScaling and SetAdvectionScaling parameters.
INPUTS
This filter requires two inputs. The first input is a seed image. This seed image must contain an isosurface that you want to use as the seed for your segmentation. It can be a binary, graylevel, or floating point image. The only requirement is that it contain a closed isosurface that you will identify as the seed by setting the IsosurfaceValue parameter of the filter. For a binary image you will want to set your isosurface value halfway between your on and off values (i.e. for 0's and 1's, use an isosurface value of 0.5).
The second input is the feature image. This is the image from which the speed function will be calculated. For most applications, this is the image that you want to segment. The desired isosurface in your seed image should lie within the region of your feature image that you are trying to segment.
See SegmentationLevelSetImageFilter for more information on Inputs.
OUTPUTS
The filter outputs a single, scalar, real-valued image. Positive *values in the output image are inside the segmentated region and negative *values in the image are outside of the inside region. The zero crossings of *the image correspond to the position of the level set front.
See SparseFieldLevelSetImageFilter and SegmentationLevelSetImageFilter for more information.
PARAMETERS
There are five parameters important for controlling the behavior of this filter.
(1) Threshold. Sets the thresholding value of the Canny edge detection. See CannyEdgeDetectionImageFilter for more information.
(2) Variance. Controls the smoothing parameter of the gaussian filtering done during Canny edge detection.
(3) CurvatureScaling. Controls the degree to which curvature influences the evolution of the level set. Higher values relative to Propagation and Advection scalings will yield a smoother surface.
(4) PropagationScaling. Scales the propagation (speed) term of the level set equation. Set this term to zero to allow the level set to flow _only_ down the gradient of the distance transform.
(5) AdvectionScaling. Scales influence of the advection field relative to curvature and propagation terms.
See also:
SegmentationLevelSetImageFilter
CannySegmentationLevelSetFunction,
SparseFieldLevelSetImageFilter

Definition at line 132 of file itkCannySegmentationLevelSetImageFilter.h.


Member Typedef Documentation

template<class TInputImage , class TFeatureImage , class TOutputPixelType = float>
typedef SmartPointer< const Self > itk::CannySegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::ConstPointer
template<class TInputImage , class TFeatureImage , class TOutputPixelType = float>
typedef Superclass::FeatureImageType itk::CannySegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::FeatureImageType
template<class TInputImage , class TFeatureImage , class TOutputPixelType = float>
typedef Superclass::OutputImageType itk::CannySegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::OutputImageType
template<class TInputImage , class TFeatureImage , class TOutputPixelType = float>
typedef SmartPointer< Self > itk::CannySegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::Pointer
template<class TInputImage , class TFeatureImage , class TOutputPixelType = float>
typedef CannyFunctionType::ScalarValueType itk::CannySegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::ScalarValueType

Definition at line 154 of file itkCannySegmentationLevelSetImageFilter.h.

template<class TInputImage , class TFeatureImage , class TOutputPixelType = float>
typedef CannySegmentationLevelSetImageFilter itk::CannySegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::Self
template<class TInputImage , class TFeatureImage , class TOutputPixelType = float>
typedef Superclass::SpeedImageType itk::CannySegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::SpeedImageType
template<class TInputImage , class TFeatureImage , class TOutputPixelType = float>
typedef SegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType > itk::CannySegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::Superclass
template<class TInputImage , class TFeatureImage , class TOutputPixelType = float>
typedef Superclass::ValueType itk::CannySegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::ValueType

Inherited typedef from the superclass.

Reimplemented from itk::SegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >.

Definition at line 144 of file itkCannySegmentationLevelSetImageFilter.h.

template<class TInputImage , class TFeatureImage , class TOutputPixelType = float>
typedef Superclass::VectorImageType itk::CannySegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::VectorImageType

The type used for the advection field

Reimplemented from itk::SegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >.

Definition at line 147 of file itkCannySegmentationLevelSetImageFilter.h.


Constructor & Destructor Documentation

template<class TInputImage , class TFeatureImage , class TOutputPixelType = float>
itk::CannySegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::~CannySegmentationLevelSetImageFilter ( ) [inline, protected]

End concept checking

Definition at line 191 of file itkCannySegmentationLevelSetImageFilter.h.

template<class TInputImage , class TFeatureImage , class TOutputPixelType = float>
itk::CannySegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::CannySegmentationLevelSetImageFilter ( ) [protected]

End concept checking

template<class TInputImage , class TFeatureImage , class TOutputPixelType = float>
itk::CannySegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::CannySegmentationLevelSetImageFilter ( const Self ) [private]

End concept checking


Member Function Documentation

template<class TInputImage , class TFeatureImage , class TOutputPixelType = float>
virtual::itk::LightObject::Pointer itk::CannySegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::CreateAnother ( void  ) const [virtual]

Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.

Reimplemented from itk::SparseFieldLevelSetImageFilter< TInputImage, Image< TOutputPixelType,::itk::GetImageDimension< TInputImage >::ImageDimension > >.

template<class TInputImage , class TFeatureImage , class TOutputPixelType = float>
OutputImageType* itk::CannySegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::GetCannyImage ( void  ) [inline]

Get the Canny image that was used to create the speed and advection images

Definition at line 180 of file itkCannySegmentationLevelSetImageFilter.h.

template<class TInputImage , class TFeatureImage , class TOutputPixelType = float>
virtual const char* itk::CannySegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::GetNameOfClass ( ) const [virtual]

Run-time type information (and related methods).

Reimplemented from itk::SegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >.

template<class TInputImage , class TFeatureImage , class TOutputPixelType = float>
ScalarValueType itk::CannySegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::GetThreshold ( ) const [inline]

Set the Threshold parameter of the CannyEdgeDetectionImageFilter used by the underlying level set function.

Definition at line 166 of file itkCannySegmentationLevelSetImageFilter.h.

template<class TInputImage , class TFeatureImage , class TOutputPixelType = float>
double itk::CannySegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::GetVariance ( ) const [inline]

Set the Variance parameter of the CannyEdgeDetectionImageFilter used by the underlying level set function.

Definition at line 174 of file itkCannySegmentationLevelSetImageFilter.h.

template<class TInputImage , class TFeatureImage , class TOutputPixelType = float>
static Pointer itk::CannySegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::New ( ) [static]
template<class TInputImage , class TFeatureImage , class TOutputPixelType = float>
void itk::CannySegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::operator= ( const Self ) [private]
template<class TInputImage , class TFeatureImage , class TOutputPixelType = float>
void itk::CannySegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::SetThreshold ( ScalarValueType  v) [inline]

Set the Threshold parameter of the CannyEdgeDetectionImageFilter used by the underlying level set function.

Definition at line 164 of file itkCannySegmentationLevelSetImageFilter.h.

template<class TInputImage , class TFeatureImage , class TOutputPixelType = float>
void itk::CannySegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::SetVariance ( double  v) [inline]

Set the Variance parameter of the CannyEdgeDetectionImageFilter used by the underlying level set function.

Definition at line 172 of file itkCannySegmentationLevelSetImageFilter.h.

template<class TInputImage , class TFeatureImage , class TOutputPixelType = float>
itk::CannySegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::typedef ( Concept::HasNumericTraits< TOutputPixelType >  )

Begin concept checking This class requires OutputHasNumericTraitsCheck in the form of ( Concept::HasNumericTraits< TOutputPixelType > )

Reimplemented from itk::SegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >.


Member Data Documentation

template<class TInputImage , class TFeatureImage , class TOutputPixelType = float>
typedef::itk::CannySegmentationLevelSetFunction< OutputImageType, FeatureImageType > itk::CannySegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::CannyFunctionType

Type of the segmentation function

Definition at line 152 of file itkCannySegmentationLevelSetImageFilter.h.

template<class TInputImage , class TFeatureImage , class TOutputPixelType = float>
CannyFunctionType::Pointer itk::CannySegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >::m_CannyFunction [private]

Definition at line 200 of file itkCannySegmentationLevelSetImageFilter.h.


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