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

Selects a region of space where two independent fronts run towards each other. More...

#include <itkCollidingFrontsImageFilter.h>

Inheritance diagram for itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >:
Collaboration diagram for itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >:

List of all members.

Public Types

typedef SmartPointer< const SelfConstPointer
typedef
itk::FastMarchingUpwindGradientImageFilter
< TInputImage, TOutputImage > 
FastMarchingUpwindGradientImageFilterType
typedef
FastMarchingUpwindGradientImageFilterType::GradientImageType 
GradientImageType
typedef
FastMarchingUpwindGradientImageFilterType::IndexType 
IndexType
typedef InputImageType::Pointer InputImagePointer
typedef TInputImage InputImageType
typedef TInputImage::PixelType InputPixelType
typedef
FastMarchingUpwindGradientImageFilterType::NodeContainer 
NodeContainer
typedef
FastMarchingUpwindGradientImageFilterType::NodeContainerPointer 
NodeContainerPointer
typedef
FastMarchingUpwindGradientImageFilterType::NodeType 
NodeType
typedef OutputImageType::Pointer OutputImagePointer
typedef
Superclass::OutputImageRegionType 
OutputImageRegionType
typedef TOutputImage OutputImageType
typedef TOutputImage::PixelType OutputPixelType
typedef
FastMarchingUpwindGradientImageFilterType::PixelType 
PixelType
typedef SmartPointer< SelfPointer
typedef NumericTraits
< InputPixelType >::RealType 
RealType
typedef CollidingFrontsImageFilter Self
typedef ImageToImageFilter
< TInputImage, TOutputImage > 
Superclass

Public Member Functions

virtual void ApplyConnectivityOff ()
virtual void ApplyConnectivityOn ()
virtual ::itk::LightObject::Pointer CreateAnother (void) const
virtual bool GetApplyConnectivity () const
virtual const char * GetNameOfClass () const
virtual double GetNegativeEpsilon () const
NodeContainerPointer GetSeedPoints1 ()
NodeContainerPointer GetSeedPoints2 ()
virtual bool GetStopOnTargets () const
virtual void SetApplyConnectivity (bool _arg)
virtual void SetNegativeEpsilon (double _arg)
virtual void SetStopOnTargets (bool _arg)
virtual void StopOnTargetsOff ()
virtual void StopOnTargetsOn ()
 typedef (Concept::HasNumericTraits< InputPixelType >) InputHasNumericTraitsCheck
void SetSeedPoints1 (NodeContainer *points)
void SetSeedPoints2 (NodeContainer *points)

Static Public Member Functions

static Pointer New ()

Static Public Attributes

static const unsigned int ImageDimension = TOutputImage::ImageDimension

Protected Member Functions

 CollidingFrontsImageFilter ()
void GenerateData ()
void PrintSelf (std::ostream &, Indent) const
virtual ~CollidingFrontsImageFilter ()

Private Member Functions

 CollidingFrontsImageFilter (const Self &)
void operator= (const Self &)

Private Attributes

bool m_ApplyConnectivity
double m_NegativeEpsilon
NodeContainerPointer m_SeedPoints1
NodeContainerPointer m_SeedPoints2
bool m_StopOnTargets

Detailed Description

template<typename TInputImage, typename TOutputImage>
class itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >

Selects a region of space where two independent fronts run towards each other.

The filter can be used to quickly segment anatomical structures (e.g. for level set initialization).

The filter uses two instances of FastMarchingUpwindGradientImageFilter to compute the gradients of arrival times of two wavefronts propagating from two sets of seeds. The input of the filter is used as the speed of the two wavefronts. The output is the dot product between the two gradient vector fields.

The filter works on the following basic idea. In the regions where the dot product between the two gradient fields is negative, the two fronts propagate in opposite directions. In the regions where the dot product is positive, the two fronts propagate in the same direction. This can be used to extract the region of space between two sets of points.

If StopOnTargets is On, then each front will stop as soon as all seeds of the other front have been reached. This can markedly speed up the execution of the filter, since wave propagation does not take place on the complete image.

Optionally, a connectivity criterion can be applied to the resulting dot product image. In this case, the only negative region in the output image is the one connected to the seeds.

Author:
Luca Antiga Ph.D. Biomedical Technologies Laboratory, Bioengineering Deparment, Mario Negri Institute, Italy.

Definition at line 61 of file itkCollidingFrontsImageFilter.h.


Member Typedef Documentation

template<typename TInputImage , typename TOutputImage >
typedef SmartPointer< const Self > itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::ConstPointer
template<typename TInputImage , typename TOutputImage >
typedef itk::FastMarchingUpwindGradientImageFilter< TInputImage, TOutputImage > itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::FastMarchingUpwindGradientImageFilterType
template<typename TInputImage , typename TOutputImage >
typedef FastMarchingUpwindGradientImageFilterType::GradientImageType itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::GradientImageType

Definition at line 111 of file itkCollidingFrontsImageFilter.h.

template<typename TInputImage , typename TOutputImage >
typedef FastMarchingUpwindGradientImageFilterType::IndexType itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::IndexType

Definition at line 112 of file itkCollidingFrontsImageFilter.h.

template<typename TInputImage , typename TOutputImage >
typedef InputImageType::Pointer itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::InputImagePointer
template<typename TInputImage , typename TOutputImage >
typedef TInputImage itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::InputImageType

Image typedef support

Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.

Definition at line 89 of file itkCollidingFrontsImageFilter.h.

template<typename TInputImage , typename TOutputImage >
typedef TInputImage::PixelType itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::InputPixelType

Definition at line 80 of file itkCollidingFrontsImageFilter.h.

template<typename TInputImage , typename TOutputImage >
typedef FastMarchingUpwindGradientImageFilterType::NodeContainer itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::NodeContainer

Definition at line 107 of file itkCollidingFrontsImageFilter.h.

template<typename TInputImage , typename TOutputImage >
typedef FastMarchingUpwindGradientImageFilterType::NodeContainerPointer itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::NodeContainerPointer

Definition at line 109 of file itkCollidingFrontsImageFilter.h.

template<typename TInputImage , typename TOutputImage >
typedef FastMarchingUpwindGradientImageFilterType::NodeType itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::NodeType

Definition at line 105 of file itkCollidingFrontsImageFilter.h.

template<typename TInputImage , typename TOutputImage >
typedef OutputImageType::Pointer itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::OutputImagePointer

Reimplemented from itk::ImageSource< TOutputImage >.

Definition at line 92 of file itkCollidingFrontsImageFilter.h.

template<typename TInputImage , typename TOutputImage >
typedef Superclass::OutputImageRegionType itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::OutputImageRegionType

Superclass typedefs.

Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.

Definition at line 95 of file itkCollidingFrontsImageFilter.h.

template<typename TInputImage , typename TOutputImage >
typedef TOutputImage itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::OutputImageType

Some convenient typedefs.

Reimplemented from itk::ImageSource< TOutputImage >.

Definition at line 91 of file itkCollidingFrontsImageFilter.h.

template<typename TInputImage , typename TOutputImage >
typedef TOutputImage::PixelType itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::OutputPixelType

Extract some information from the image types. Dimensionality of the two images is assumed to be the same.

Definition at line 75 of file itkCollidingFrontsImageFilter.h.

template<typename TInputImage , typename TOutputImage >
typedef FastMarchingUpwindGradientImageFilterType::PixelType itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::PixelType

Typedef support of level set method types.

Definition at line 103 of file itkCollidingFrontsImageFilter.h.

template<typename TInputImage , typename TOutputImage >
typedef SmartPointer< Self > itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::Pointer
template<typename TInputImage , typename TOutputImage >
typedef NumericTraits< InputPixelType >::RealType itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::RealType

Definition at line 81 of file itkCollidingFrontsImageFilter.h.

template<typename TInputImage , typename TOutputImage >
typedef CollidingFrontsImageFilter itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::Self

Standard class typedefs.

Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.

Definition at line 66 of file itkCollidingFrontsImageFilter.h.

template<typename TInputImage , typename TOutputImage >
typedef ImageToImageFilter< TInputImage, TOutputImage > itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::Superclass

Constructor & Destructor Documentation

template<typename TInputImage , typename TOutputImage >
itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::CollidingFrontsImageFilter ( ) [protected]

End concept checking

template<typename TInputImage , typename TOutputImage >
virtual itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::~CollidingFrontsImageFilter ( ) [inline, protected, virtual]

Definition at line 160 of file itkCollidingFrontsImageFilter.h.

template<typename TInputImage , typename TOutputImage >
itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::CollidingFrontsImageFilter ( const Self ) [private]

Member Function Documentation

template<typename TInputImage , typename TOutputImage >
virtual void itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::ApplyConnectivityOff ( ) [virtual]
template<typename TInputImage , typename TOutputImage >
virtual void itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::ApplyConnectivityOn ( ) [virtual]
template<typename TInputImage , typename TOutputImage >
virtual::itk::LightObject::Pointer itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::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::Object.

template<typename TInputImage , typename TOutputImage >
void itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::GenerateData ( ) [protected, virtual]

A version of GenerateData() specific for image processing filters. This implementation will split the processing across multiple threads. The buffer is allocated by this method. Then the BeforeThreadedGenerateData() method is called (if provided). Then, a series of threads are spawned each calling ThreadedGenerateData(). After all the threads have completed processing, the AfterThreadedGenerateData() method is called (if provided). If an image processing filter cannot be threaded, the filter should provide an implementation of GenerateData(). That implementation is responsible for allocating the output buffer. If a filter an be threaded, it should NOT provide a GenerateData() method but should provide a ThreadedGenerateData() instead.

See also:
ThreadedGenerateData()

Reimplemented from itk::ImageSource< TOutputImage >.

template<typename TInputImage , typename TOutputImage >
virtual bool itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::GetApplyConnectivity ( ) const [virtual]
template<typename TInputImage , typename TOutputImage >
virtual const char* itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::GetNameOfClass ( ) const [virtual]

Run-time type information (and related methods)

Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.

template<typename TInputImage , typename TOutputImage >
virtual double itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::GetNegativeEpsilon ( ) const [virtual]
template<typename TInputImage , typename TOutputImage >
NodeContainerPointer itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::GetSeedPoints1 ( ) [inline]

Get the container of Seed Points representing the first initial front.

Definition at line 124 of file itkCollidingFrontsImageFilter.h.

template<typename TInputImage , typename TOutputImage >
NodeContainerPointer itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::GetSeedPoints2 ( ) [inline]

Get the container of Seed Points representing the second initial front.

Definition at line 137 of file itkCollidingFrontsImageFilter.h.

template<typename TInputImage , typename TOutputImage >
virtual bool itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::GetStopOnTargets ( ) const [virtual]
template<typename TInputImage , typename TOutputImage >
static Pointer itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::New ( ) [static]

Method for creation through the object factory.

Reimplemented from itk::Object.

template<typename TInputImage , typename TOutputImage >
void itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::operator= ( const Self ) [private]

PushBackInput(), PushFronInput() in the public section force the input to be the type expected by an ImageToImageFilter. However, these methods end of "hiding" the versions from the superclass (ProcessObject) whose arguments are DataObjects. Here, we re-expose the versions from ProcessObject to avoid warnings about hiding methods from the superclass.

Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.

template<typename TInputImage , typename TOutputImage >
void itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::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::ImageToImageFilter< TInputImage, TOutputImage >.

template<typename TInputImage , typename TOutputImage >
virtual void itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::SetApplyConnectivity ( bool  _arg) [virtual]
template<typename TInputImage , typename TOutputImage >
virtual void itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::SetNegativeEpsilon ( double  _arg) [virtual]
template<typename TInputImage , typename TOutputImage >
void itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::SetSeedPoints1 ( NodeContainer points) [inline]

Set the container of Seed Points representing the first initial front. Seed points are represented as a VectorContainer of LevelSetNodes.

Definition at line 116 of file itkCollidingFrontsImageFilter.h.

template<typename TInputImage , typename TOutputImage >
void itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::SetSeedPoints2 ( NodeContainer points) [inline]

Set the container of Seed Points representing the second initial front. Seed points are represented as a VectorContainer of LevelSetNodes.

Definition at line 129 of file itkCollidingFrontsImageFilter.h.

template<typename TInputImage , typename TOutputImage >
virtual void itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::SetStopOnTargets ( bool  _arg) [virtual]
template<typename TInputImage , typename TOutputImage >
virtual void itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::StopOnTargetsOff ( ) [virtual]
template<typename TInputImage , typename TOutputImage >
virtual void itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::StopOnTargetsOn ( ) [virtual]
template<typename TInputImage , typename TOutputImage >
itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::typedef ( Concept::HasNumericTraits< InputPixelType )

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


Member Data Documentation

template<typename TInputImage , typename TOutputImage >
const unsigned int itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::ImageDimension = TOutputImage::ImageDimension [static]

Extract some information from the image types. Dimensionality of the two images is assumed to be the same.

Definition at line 86 of file itkCollidingFrontsImageFilter.h.

template<typename TInputImage , typename TOutputImage >
bool itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::m_ApplyConnectivity [private]

Definition at line 173 of file itkCollidingFrontsImageFilter.h.

template<typename TInputImage , typename TOutputImage >
double itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::m_NegativeEpsilon [private]

Definition at line 175 of file itkCollidingFrontsImageFilter.h.

template<typename TInputImage , typename TOutputImage >
NodeContainerPointer itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::m_SeedPoints1 [private]

Definition at line 169 of file itkCollidingFrontsImageFilter.h.

template<typename TInputImage , typename TOutputImage >
NodeContainerPointer itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::m_SeedPoints2 [private]

Definition at line 170 of file itkCollidingFrontsImageFilter.h.

template<typename TInputImage , typename TOutputImage >
bool itk::CollidingFrontsImageFilter< TInputImage, TOutputImage >::m_StopOnTargets [private]

Definition at line 172 of file itkCollidingFrontsImageFilter.h.


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