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

This filter calculates the Euclidean distance transform of a binary image in linear time for arbitrary dimensions. More...

#include <itkSignedMaurerDistanceMapImageFilter.h>

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

List of all members.

Public Types

typedef SmartPointer< const SelfConstPointer
typedef
InputImageType::ConstPointer 
InputImageConstPointer
typedef TInputImage InputImageType
typedef InputImageType::IndexType InputIndexType
typedef
InputImageType::IndexValueType 
InputIndexValueType
typedef InputImageType::PixelType InputPixelType
typedef InputImageType::RegionType InputRegionType
typedef InputImageType::SizeType InputSizeType
typedef
InputImageType::SizeValueType 
InputSizeValueType
typedef InputImageType::SpacingType InputSpacingType
typedef OutputImageType::Pointer OutputImagePointer
typedef OutputImageType::RegionType OutputImageRegionType
typedef TOutputImage OutputImageType
typedef OutputImageType::IndexType OutputIndexType
typedef
OutputImageType::IndexValueType 
OutputIndexValueType
typedef OutputImageType::PixelType OutputPixelType
typedef OutputImageType::RegionType OutputRegionType
typedef OutputImageType::SizeType OutputSizeType
typedef
OutputImageType::SizeValueType 
OutputSizeValueType
typedef
OutputImageType::SpacingType 
OutputSpacingType
typedef SmartPointer< SelfPointer
typedef
SignedMaurerDistanceMapImageFilter 
Self
typedef ImageToImageFilter
< InputImageType,
OutputImageType
Superclass

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
virtual const bool & GetInsideIsPositive ()
virtual const char * GetNameOfClass () const
virtual const bool & GetSquaredDistance ()
virtual const bool & GetUseImageSpacing ()
virtual void InsideIsPositiveOff ()
virtual void InsideIsPositiveOn ()
virtual void SetInsideIsPositive (bool _arg)
virtual void SetSquaredDistance (bool _arg)
virtual void SetUseImageSpacing (bool _arg)
virtual void SquaredDistanceOff ()
virtual void SquaredDistanceOn ()
virtual void UseImageSpacingOff ()
virtual void UseImageSpacingOn ()
virtual void SetBackgroundValue (InputPixelType _arg)
virtual const InputPixelTypeGetBackgroundValue ()

Static Public Member Functions

static Pointer New ()

Static Public Attributes

static const unsigned int InputImageDimension = TInputImage::ImageDimension
static const unsigned int OutputImageDimension = TOutputImage::ImageDimension
static const unsigned int ImageDimension = TOutputImage::ImageDimension

Protected Member Functions

void GenerateData ()
void PrintSelf (std::ostream &os, Indent indent) const
 SignedMaurerDistanceMapImageFilter ()
unsigned int SplitRequestedRegion (unsigned int i, unsigned int num, OutputImageRegionType &splitRegion)
void ThreadedGenerateData (const OutputImageRegionType &outputRegionForThread, ThreadIdType threadId)
virtual ~SignedMaurerDistanceMapImageFilter ()

Private Member Functions

void operator= (const Self &)
bool Remove (OutputPixelType, OutputPixelType, OutputPixelType, OutputPixelType, OutputPixelType, OutputPixelType)
 SignedMaurerDistanceMapImageFilter (const Self &)
void Voronoi (unsigned int, OutputIndexType)

Private Attributes

InputPixelType m_BackgroundValue
unsigned int m_CurrentDimension
bool m_InsideIsPositive
InputSpacingType m_Spacing
bool m_SquaredDistance
bool m_UseImageSpacing

Detailed Description

template<class TInputImage, class TOutputImage>
class itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >

This filter calculates the Euclidean distance transform of a binary image in linear time for arbitrary dimensions.

Inputs and Outputs
This is an image-to-image filter. The dimensionality is arbitrary. The only dimensionality constraint is that the input and output images be of the same dimensions and size. To maintain integer arithmetic within the filter, the default output is the signed squared distance. This implies that the input image should be of type "unsigned int" or "int" whereas the output image is of type "int". Obviously, if the user wishes to utilize the image spacing or to have a filter with the Euclidean distance (as opposed to the squared distance), output image types of float or double should be used.

The inside is considered as having negative distances. Outside is treated as having positive distances. To change the convention, use the InsideIsPositive(bool) function.

Parameters
Set/GetBackgroundValue specifies the background of the value of the input binary image. Normally this is zero and, as such, zero is the default value. Other than that, the usage is completely analagous to the itk::DanielssonDistanceImageFilter class except it does not return the Voronoi map.

Reference: C. R. Maurer, Jr., R. Qi, and V. Raghavan, "A Linear Time Algorithm for Computing Exact Euclidean Distance Transforms of Binary Images in Arbitrary Dimensions", IEEE - Transactions on Pattern Analysis and Machine Intelligence, 25(2): 265-270, 2003.

Definition at line 62 of file itkSignedMaurerDistanceMapImageFilter.h.


Member Typedef Documentation

template<class TInputImage , class TOutputImage >
typedef SmartPointer< const Self > itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::ConstPointer
template<class TInputImage , class TOutputImage >
typedef InputImageType::ConstPointer itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::InputImageConstPointer
template<class TInputImage , class TOutputImage >
typedef TInputImage itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::InputImageType

Convenient typedefs for simplifying declarations.

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

Definition at line 77 of file itkSignedMaurerDistanceMapImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef InputImageType::IndexType itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::InputIndexType

Definition at line 111 of file itkSignedMaurerDistanceMapImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef InputImageType::IndexValueType itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::InputIndexValueType

Definition at line 112 of file itkSignedMaurerDistanceMapImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef InputImageType::PixelType itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::InputPixelType

Image typedef support.

Definition at line 103 of file itkSignedMaurerDistanceMapImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef InputImageType::RegionType itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::InputRegionType

Definition at line 97 of file itkSignedMaurerDistanceMapImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef InputImageType::SizeType itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::InputSizeType

Definition at line 106 of file itkSignedMaurerDistanceMapImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef InputImageType::SizeValueType itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::InputSizeValueType

Definition at line 107 of file itkSignedMaurerDistanceMapImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef InputImageType::SpacingType itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::InputSpacingType

Definition at line 116 of file itkSignedMaurerDistanceMapImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef OutputImageType::Pointer itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::OutputImagePointer

Reimplemented from itk::ImageSource< TOutputImage >.

Definition at line 81 of file itkSignedMaurerDistanceMapImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef OutputImageType::RegionType itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::OutputImageRegionType

Superclass typedefs.

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

Definition at line 118 of file itkSignedMaurerDistanceMapImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef TOutputImage itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::OutputImageType

Some convenient typedefs.

Reimplemented from itk::ImageSource< TOutputImage >.

Definition at line 80 of file itkSignedMaurerDistanceMapImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef OutputImageType::IndexType itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::OutputIndexType

Definition at line 113 of file itkSignedMaurerDistanceMapImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef OutputImageType::IndexValueType itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::OutputIndexValueType

Definition at line 114 of file itkSignedMaurerDistanceMapImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef OutputImageType::PixelType itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::OutputPixelType

Definition at line 104 of file itkSignedMaurerDistanceMapImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef OutputImageType::RegionType itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::OutputRegionType

Definition at line 100 of file itkSignedMaurerDistanceMapImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef OutputImageType::SizeType itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::OutputSizeType

Definition at line 108 of file itkSignedMaurerDistanceMapImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef OutputImageType::SizeValueType itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::OutputSizeValueType

Definition at line 109 of file itkSignedMaurerDistanceMapImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef OutputImageType::SpacingType itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::OutputSpacingType

Definition at line 117 of file itkSignedMaurerDistanceMapImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef SmartPointer< Self > itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::Pointer
template<class TInputImage , class TOutputImage >
typedef SignedMaurerDistanceMapImageFilter itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::Self

Standard class typedefs.

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

Definition at line 84 of file itkSignedMaurerDistanceMapImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef ImageToImageFilter< InputImageType, OutputImageType > itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::Superclass

Constructor & Destructor Documentation

template<class TInputImage , class TOutputImage >
itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::SignedMaurerDistanceMapImageFilter ( ) [protected]
template<class TInputImage , class TOutputImage >
virtual itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::~SignedMaurerDistanceMapImageFilter ( ) [protected, virtual]
template<class TInputImage , class TOutputImage >
itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::SignedMaurerDistanceMapImageFilter ( const Self ) [private]

Member Function Documentation

template<class TInputImage , class TOutputImage >
virtual::itk::LightObject::Pointer itk::SignedMaurerDistanceMapImageFilter< 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<class TInputImage , class TOutputImage >
void itk::SignedMaurerDistanceMapImageFilter< 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<class TInputImage , class TOutputImage >
virtual const InputPixelType& itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::GetBackgroundValue ( ) [virtual]

Set the background value which defines the object. Usually this value is = 0.

template<class TInputImage , class TOutputImage >
virtual const bool& itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::GetInsideIsPositive ( ) [virtual]

Get if the inside represents positive values in the signed distance map.

See also:
GetInsideIsPositive()
template<class TInputImage , class TOutputImage >
virtual const char* itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::GetNameOfClass ( ) const [virtual]

Runtime information support.

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

template<class TInputImage , class TOutputImage >
virtual const bool& itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::GetSquaredDistance ( ) [virtual]

Get the distance squared.

template<class TInputImage , class TOutputImage >
virtual const bool& itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::GetUseImageSpacing ( ) [virtual]

Get whether spacing is used.

template<class TInputImage , class TOutputImage >
virtual void itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::InsideIsPositiveOff ( ) [virtual]
template<class TInputImage , class TOutputImage >
virtual void itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::InsideIsPositiveOn ( ) [virtual]

Set if the inside represents positive values in the signed distance map. By convention ON pixels are treated as inside pixels. Default is true.

template<class TInputImage , class TOutputImage >
static Pointer itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::New ( ) [static]

Method for creation through the object factory.

Reimplemented from itk::Object.

template<class TInputImage , class TOutputImage >
void itk::SignedMaurerDistanceMapImageFilter< 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<class TInputImage , class TOutputImage >
void itk::SignedMaurerDistanceMapImageFilter< 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<class TInputImage , class TOutputImage >
bool itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::Remove ( OutputPixelType  ,
OutputPixelType  ,
OutputPixelType  ,
OutputPixelType  ,
OutputPixelType  ,
OutputPixelType   
) [private]
template<class TInputImage , class TOutputImage >
virtual void itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::SetBackgroundValue ( InputPixelType  _arg) [virtual]

Set the background value which defines the object. Usually this value is = 0.

template<class TInputImage , class TOutputImage >
virtual void itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::SetInsideIsPositive ( bool  _arg) [virtual]

Set if the inside represents positive values in the signed distance map. By convention ON pixels are treated as inside pixels.

template<class TInputImage , class TOutputImage >
virtual void itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::SetSquaredDistance ( bool  _arg) [virtual]

Set if the distance should be squared.

template<class TInputImage , class TOutputImage >
virtual void itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::SetUseImageSpacing ( bool  _arg) [virtual]

Set if image spacing should be used in computing distances.

template<class TInputImage , class TOutputImage >
unsigned int itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::SplitRequestedRegion ( unsigned int  i,
unsigned int  num,
OutputImageRegionType splitRegion 
) [protected, virtual]

Split the output's RequestedRegion into "num" pieces, returning region "i" as "splitRegion". This method is called "num" times. The regions must not overlap. The method returns the number of pieces that the routine is capable of splitting the output RequestedRegion, i.e. return value is less than or equal to "num".

Reimplemented from itk::ImageSource< TOutputImage >.

template<class TInputImage , class TOutputImage >
virtual void itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::SquaredDistanceOff ( ) [virtual]
template<class TInputImage , class TOutputImage >
virtual void itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::SquaredDistanceOn ( ) [virtual]

Set On/Off if the distance is squared.

template<class TInputImage , class TOutputImage >
void itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::ThreadedGenerateData ( const OutputImageRegionType outputRegionForThread,
ThreadIdType  threadId 
) [protected, virtual]

If an imaging filter can be implemented as a multithreaded algorithm, the filter will provide an implementation of ThreadedGenerateData(). This superclass will automatically split the output image into a number of pieces, spawn multiple threads, and call ThreadedGenerateData() in each thread. Prior to spawning threads, the BeforeThreadedGenerateData() method is called. After all the threads have completed, the AfterThreadedGenerateData() method is called. If an image processing filter cannot support threading, that filter should provide an implementation of the GenerateData() method instead of providing an implementation of ThreadedGenerateData(). If a filter provides a GenerateData() method as its implementation, then the filter is responsible for allocating the output data. If a filter provides a ThreadedGenerateData() method as its implementation, then the output memory will allocated automatically by this superclass. The ThreadedGenerateData() method should only produce the output specified by "outputThreadRegion" parameter. ThreadedGenerateData() cannot write to any other portion of the output image (as this is responsibility of a different thread).

See also:
GenerateData(), SplitRequestedRegion()

Reimplemented from itk::ImageSource< TOutputImage >.

template<class TInputImage , class TOutputImage >
virtual void itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::UseImageSpacingOff ( ) [virtual]
template<class TInputImage , class TOutputImage >
virtual void itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::UseImageSpacingOn ( ) [virtual]

Set On/Off whether spacing is used.

template<class TInputImage , class TOutputImage >
void itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::Voronoi ( unsigned  int,
OutputIndexType   
) [private]

Member Data Documentation

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

Extract dimension from input and output image.

Definition at line 73 of file itkSignedMaurerDistanceMapImageFilter.h.

template<class TInputImage , class TOutputImage >
const unsigned int itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::InputImageDimension = TInputImage::ImageDimension [static]

Extract dimension from input and output image.

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

Definition at line 69 of file itkSignedMaurerDistanceMapImageFilter.h.

template<class TInputImage , class TOutputImage >
InputPixelType itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::m_BackgroundValue [private]

Definition at line 183 of file itkSignedMaurerDistanceMapImageFilter.h.

template<class TInputImage , class TOutputImage >
unsigned int itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::m_CurrentDimension [private]

Definition at line 186 of file itkSignedMaurerDistanceMapImageFilter.h.

template<class TInputImage , class TOutputImage >
bool itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::m_InsideIsPositive [private]

Definition at line 188 of file itkSignedMaurerDistanceMapImageFilter.h.

template<class TInputImage , class TOutputImage >
InputSpacingType itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::m_Spacing [private]

Definition at line 184 of file itkSignedMaurerDistanceMapImageFilter.h.

template<class TInputImage , class TOutputImage >
bool itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::m_SquaredDistance [private]

Definition at line 190 of file itkSignedMaurerDistanceMapImageFilter.h.

template<class TInputImage , class TOutputImage >
bool itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::m_UseImageSpacing [private]

Definition at line 189 of file itkSignedMaurerDistanceMapImageFilter.h.

template<class TInputImage , class TOutputImage >
const unsigned int itk::SignedMaurerDistanceMapImageFilter< TInputImage, TOutputImage >::OutputImageDimension = TOutputImage::ImageDimension [static]

Extract dimension from input and output image.

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

Definition at line 71 of file itkSignedMaurerDistanceMapImageFilter.h.


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