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

itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel > Class Template Reference

Fast binary dilation. More...

#include <itkFastIncrementalBinaryDilateImageFilter.h>

Inheritance diagram for itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >:

Inheritance graph
[legend]
Collaboration diagram for itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >:

Collaboration graph
[legend]
List of all members.

Public Types

typedef TInputImage InputImageType
typedef TOutputImage OutputImageType
typedef FastIncrementalBinaryDilateImageFilter Self
typedef ImageToImageFilter<
InputImageType, OutputImageType
Superclass
typedef SmartPointer< SelfPointer
typedef SmartPointer< const
Self
ConstPointer
typedef TKernel KernelType
typedef KernelType::ConstIterator KernelIteratorType
typedef InputImageType::PixelType InputPixelType
typedef OutputImageType::PixelType OutputPixelType
typedef NumericTraits< InputPixelType
>::RealType 
InputRealType
typedef InputImageType::OffsetType OffsetType
typedef InputImageType::IndexType IndexType
typedef InputImageType::RegionType InputImageRegionType
typedef OutputImageType::RegionType OutputImageRegionType
typedef InputImageType::SizeType InputSizeType
enum  { ImageDimensionCheck = 0 }

Public Member Functions

 itkStaticConstMacro (KernelDimension, unsigned int, TKernel::NeighborhoodDimension)
virtual const char * GetNameOfClass () const
void SetKernel (const KernelType &kernel)
virtual const KernelTypeGetKernel ()
virtual void SetDilateValue (InputPixelType _arg)
virtual InputPixelType GetDilateValue ()
virtual void SetBackgroundValue (OutputPixelType _arg)
virtual OutputPixelType GetBackgroundValue ()
 itkStaticConstMacro (InputImageDimension, unsigned int, TInputImage::ImageDimension)
 itkStaticConstMacro (OutputImageDimension, unsigned int, TOutputImage::ImageDimension)

Static Public Member Functions

static Pointer New ()

Protected Member Functions

 FastIncrementalBinaryDilateImageFilter ()
virtual ~FastIncrementalBinaryDilateImageFilter ()
void PrintSelf (std::ostream &os, Indent indent) const
void AnalyzeKernel ()
void GenerateData ()
void GenerateInputRequestedRegion () throw (InvalidRequestedRegionError)

Classes

struct  BorderCell

Detailed Description

template<class TInputImage, class TOutputImage, class TKernel>
class itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >

Fast binary dilation.

FastIncrementalBinaryDilateImageFilter is a binary dilation morphologic operation. This implementation is based on the papers:

L.Vincent "Morphological transformations of binary images with arbitrary structuring elements", and

N.Nikopoulos et al. "An efficient algorithm for 3d binary morphological transformations with 3d structuring elements for arbitrary size and shape". IEEE Transactions on Image Processing. Vol. 9. No. 3. 2000. pp. 283-286.

Gray scale images can be processed as binary images by selecting a "DilateValue". Pixel values matching the dilate value are considered the "foreground" and all other pixels are "background". This is useful in processing segmented images where all pixels in segment #1 have value 1 and pixels in segment #2 have value 2, etc. A particular "segment number" can be processed. DilateValue defaults to the maximum possible value of the PixelType.

The structuring element is assumed to be composed of binary values (zero or one). Only elements of the structuring element having values > 0 are candidates for affecting the center pixel. A reasonable choice of structuring element is itk::BinaryBallStructuringElement.

Description of the algorithm: ---------------------------------------------- Let's consider the set of the ON elements of the input image as X.

Let's consider the structuring element as B = {B0, B1, ..., Bn}, where Bi denotes a connected component of B.

Let's consider bi, i in [0,n], an arbitrary point of Bi.

We use hence the next property in order to compute minkoswki addition ( which will be written (+) ):

X (+) B = ( Xb0 UNION Xb1 UNION ... Xbn ) UNION ( BORDER(X) (+) B ),

where Xbi is the set X translated with respect to vector bi :

Xbi ={ x + bi, x belongs to X }

where BORDER(X) is the extracted border of X ( 8 connectivity in 2D, 26 in 3D )

Our implementation for dilation is defined as:

X (+) SYM(B) = DILATION(X)_B

Where DILATION(X)_B is the dilation of set with structuring element B. Where SYM(B) is the symmetric of the structuring element relatively to its center.

This class was contributed by Jerome Schmid from the University of Strasbourg.

Todo:
Implement a threaded version ?
See also:
ImageToImageFilter

BinaryDilateImageFilter

Definition at line 103 of file itkFastIncrementalBinaryDilateImageFilter.h.


Member Typedef Documentation

template<class TInputImage, class TOutputImage, class TKernel>
typedef SmartPointer<const Self> itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::ConstPointer
 

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

Definition at line 127 of file itkFastIncrementalBinaryDilateImageFilter.h.

template<class TInputImage, class TOutputImage, class TKernel>
typedef InputImageType::IndexType itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::IndexType
 

Definition at line 146 of file itkFastIncrementalBinaryDilateImageFilter.h.

template<class TInputImage, class TOutputImage, class TKernel>
typedef InputImageType::RegionType itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::InputImageRegionType
 

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

Definition at line 148 of file itkFastIncrementalBinaryDilateImageFilter.h.

template<class TInputImage, class TOutputImage, class TKernel>
typedef TInputImage itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::InputImageType
 

Convenient typedefs for simplifying declarations.

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

Definition at line 120 of file itkFastIncrementalBinaryDilateImageFilter.h.

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

Image typedef support.

Definition at line 142 of file itkFastIncrementalBinaryDilateImageFilter.h.

template<class TInputImage, class TOutputImage, class TKernel>
typedef NumericTraits<InputPixelType>::RealType itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::InputRealType
 

Definition at line 144 of file itkFastIncrementalBinaryDilateImageFilter.h.

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

Definition at line 150 of file itkFastIncrementalBinaryDilateImageFilter.h.

template<class TInputImage, class TOutputImage, class TKernel>
typedef KernelType::ConstIterator itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::KernelIteratorType
 

Kernel (structuring element) iterator.

Definition at line 139 of file itkFastIncrementalBinaryDilateImageFilter.h.

template<class TInputImage, class TOutputImage, class TKernel>
typedef TKernel itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::KernelType
 

Kernel typedef.

Definition at line 133 of file itkFastIncrementalBinaryDilateImageFilter.h.

template<class TInputImage, class TOutputImage, class TKernel>
typedef InputImageType::OffsetType itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::OffsetType
 

Definition at line 145 of file itkFastIncrementalBinaryDilateImageFilter.h.

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

Superclass typedefs.

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

Definition at line 149 of file itkFastIncrementalBinaryDilateImageFilter.h.

template<class TInputImage, class TOutputImage, class TKernel>
typedef TOutputImage itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::OutputImageType
 

Some convenient typedefs.

Reimplemented from itk::ImageSource< TOutputImage >.

Definition at line 121 of file itkFastIncrementalBinaryDilateImageFilter.h.

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

Definition at line 143 of file itkFastIncrementalBinaryDilateImageFilter.h.

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

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

Definition at line 126 of file itkFastIncrementalBinaryDilateImageFilter.h.

template<class TInputImage, class TOutputImage, class TKernel>
typedef FastIncrementalBinaryDilateImageFilter itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::Self
 

Standard class typedefs.

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

Definition at line 124 of file itkFastIncrementalBinaryDilateImageFilter.h.

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

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

Definition at line 125 of file itkFastIncrementalBinaryDilateImageFilter.h.


Member Enumeration Documentation

template<class TInputImage, class TOutputImage, class TKernel>
anonymous enum
 

Input and output images must be the same dimension.

Enumeration values:
ImageDimensionCheck 

Definition at line 155 of file itkFastIncrementalBinaryDilateImageFilter.h.


Constructor & Destructor Documentation

template<class TInputImage, class TOutputImage, class TKernel>
itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::FastIncrementalBinaryDilateImageFilter  )  [protected]
 

template<class TInputImage, class TOutputImage, class TKernel>
virtual itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::~FastIncrementalBinaryDilateImageFilter  )  [inline, protected, virtual]
 

Definition at line 193 of file itkFastIncrementalBinaryDilateImageFilter.h.


Member Function Documentation

template<class TInputImage, class TOutputImage, class TKernel>
void itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::AnalyzeKernel  )  [protected]
 

Analyze kernel and prepare data for GenerateData() function

template<class TInputImage, class TOutputImage, class TKernel>
void itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::GenerateData  )  [protected, virtual]
 

Standard pipeline method.

Reimplemented from itk::ImageSource< TOutputImage >.

template<class TInputImage, class TOutputImage, class TKernel>
void itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::GenerateInputRequestedRegion  )  throw (InvalidRequestedRegionError) [protected, virtual]
 

FastIncrementalBinaryDilateImageFilter needs to request enough of an input image to account for the structuring element and connectivity element size. The input requested region is expanded by the maximum of the radius of the structuring element and the radius used to determine connectivity (typically one). If the request extends past the LargestPossibleRegion for the input, the request is cropped by the LargestPossibleRegion.

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

template<class TInputImage, class TOutputImage, class TKernel>
virtual OutputPixelType itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::GetBackgroundValue  )  [virtual]
 

Get the value used as "background". Any pixel value which is not DilateValue is considered background. BackgroundValue is used for defining boundary conditions. Defaults to NumericTraits<PixelType>::NonpositiveMin().

template<class TInputImage, class TOutputImage, class TKernel>
virtual InputPixelType itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::GetDilateValue  )  [virtual]
 

Get the value in the image considered as "foreground". Defaults to maximum value of PixelType.

template<class TInputImage, class TOutputImage, class TKernel>
virtual const KernelType& itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::GetKernel  )  [virtual]
 

Get the kernel (structuring element).

template<class TInputImage, class TOutputImage, class TKernel>
virtual const char* itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::GetNameOfClass  )  const [virtual]
 

Run-time type information (and related methods).

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

template<class TInputImage, class TOutputImage, class TKernel>
itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::itkStaticConstMacro KernelDimension  ,
unsigned  int,
TKernel::NeighborhoodDimension 
 

Extract the dimension of the kernel

template<class TInputImage, class TOutputImage, class TKernel>
itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::itkStaticConstMacro OutputImageDimension  ,
unsigned  int,
TOutputImage::ImageDimension 
 

Extract dimension from input and output image.

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

template<class TInputImage, class TOutputImage, class TKernel>
itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::itkStaticConstMacro InputImageDimension  ,
unsigned  int,
TInputImage::ImageDimension 
 

Extract dimension from input and output image.

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

template<class TInputImage, class TOutputImage, class TKernel>
static Pointer itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::New  )  [static]
 

Method for creation through the object factory.

Reimplemented from itk::Object.

template<class TInputImage, class TOutputImage, class TKernel>
void itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::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, class TKernel>
virtual void itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::SetBackgroundValue OutputPixelType  _arg  )  [virtual]
 

Set the value used as "background". Any pixel value which is not DilateValue is considered background. BackgroundValue is used for defining boundary conditions. Defaults to NumericTraits<PixelType>::NonpositiveMin().

template<class TInputImage, class TOutputImage, class TKernel>
virtual void itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::SetDilateValue InputPixelType  _arg  )  [virtual]
 

Set the value in the image to consider as "foreground". Defaults to maximum value of PixelType.

template<class TInputImage, class TOutputImage, class TKernel>
void itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::SetKernel const KernelType kernel  ) 
 

Set kernel (structuring element).


The documentation for this class was generated from the following file:
Generated at Tue Aug 30 16:54:05 2005 for ITK by doxygen 1.4.1 written by Dimitri van Heesch, © 1997-2000