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

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

Fast binary dilation. More...

#include <itkBinaryDilateImageFilter.h>

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

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

Collaboration graph
[legend]
List of all members.

Public Types

typedef TInputImage InputImageType
typedef TOutputImage OutputImageType
typedef TKernel KernelType
typedef BinaryDilateImageFilter Self
typedef BinaryMorphologyImageFilter<
InputImageType, OutputImageType,
KernelType
Superclass
typedef SmartPointer< SelfPointer
typedef SmartPointer< const
Self
ConstPointer
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

Public Member Functions

 itkStaticConstMacro (KernelDimension, unsigned int, TKernel::NeighborhoodDimension)
virtual const char * GetNameOfClass () const
void SetDilateValue (const InputPixelType &value)
InputPixelType GetDilateValue () const
 itkStaticConstMacro (InputImageDimension, unsigned int, TInputImage::ImageDimension)
 itkStaticConstMacro (OutputImageDimension, unsigned int, TOutputImage::ImageDimension)

Static Public Member Functions

Pointer New ()

Protected Types

typedef Superclass::NeighborIndexContainer NeighborIndexContainer
typedef Superclass::BorderCellContainer BorderCellContainer
typedef Superclass::BorderCell BorderCell

Protected Member Functions

 BinaryDilateImageFilter ()
virtual ~BinaryDilateImageFilter ()
void PrintSelf (std::ostream &os, Indent indent) const
void ThreadedGenerateData (const OutputImageRegionType &outputRegionForThread, int threadId)
void BeforeThreadedGenerateData ()

Detailed Description

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

Fast binary dilation.

BinaryDilateImageFilter 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

BinaryErodeImageFilter

Definition at line 103 of file itkBinaryDilateImageFilter.h.


Member Typedef Documentation

template<class TInputImage, class TOutputImage, class TKernel>
typedef Superclass::BorderCell itk::BinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::BorderCell [protected]
 

Definition at line 186 of file itkBinaryDilateImageFilter.h.

template<class TInputImage, class TOutputImage, class TKernel>
typedef Superclass::BorderCellContainer itk::BinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::BorderCellContainer [protected]
 

Reimplemented from itk::BinaryMorphologyImageFilter< TInputImage, TOutputImage, TKernel >.

Definition at line 185 of file itkBinaryDilateImageFilter.h.

Referenced by itk::BinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::~BinaryDilateImageFilter().

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

Reimplemented from itk::BinaryMorphologyImageFilter< TInputImage, TOutputImage, TKernel >.

Reimplemented in itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >.

Definition at line 129 of file itkBinaryDilateImageFilter.h.

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

Reimplemented from itk::BinaryMorphologyImageFilter< TInputImage, TOutputImage, TKernel >.

Definition at line 145 of file itkBinaryDilateImageFilter.h.

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

Reimplemented from itk::BinaryMorphologyImageFilter< TInputImage, TOutputImage, TKernel >.

Definition at line 147 of file itkBinaryDilateImageFilter.h.

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

Convenient typedefs for simplifying declarations.

Reimplemented from itk::BinaryMorphologyImageFilter< TInputImage, TOutputImage, TKernel >.

Reimplemented in itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >.

Definition at line 120 of file itkBinaryDilateImageFilter.h.

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

Image typedef support.

Reimplemented from itk::BinaryMorphologyImageFilter< TInputImage, TOutputImage, TKernel >.

Definition at line 141 of file itkBinaryDilateImageFilter.h.

Referenced by itk::BinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::SetDilateValue().

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

Reimplemented from itk::BinaryMorphologyImageFilter< TInputImage, TOutputImage, TKernel >.

Definition at line 143 of file itkBinaryDilateImageFilter.h.

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

Reimplemented from itk::BinaryMorphologyImageFilter< TInputImage, TOutputImage, TKernel >.

Definition at line 149 of file itkBinaryDilateImageFilter.h.

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

Kernel (structuring element) iterator.

Reimplemented from itk::BinaryMorphologyImageFilter< TInputImage, TOutputImage, TKernel >.

Definition at line 138 of file itkBinaryDilateImageFilter.h.

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

Kernel typedef.

Reimplemented from itk::BinaryMorphologyImageFilter< TInputImage, TOutputImage, TKernel >.

Reimplemented in itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >.

Definition at line 122 of file itkBinaryDilateImageFilter.h.

template<class TInputImage, class TOutputImage, class TKernel>
typedef Superclass::NeighborIndexContainer itk::BinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::NeighborIndexContainer [protected]
 

Reimplemented from itk::BinaryMorphologyImageFilter< TInputImage, TOutputImage, TKernel >.

Definition at line 184 of file itkBinaryDilateImageFilter.h.

Referenced by itk::BinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::~BinaryDilateImageFilter().

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

Reimplemented from itk::BinaryMorphologyImageFilter< TInputImage, TOutputImage, TKernel >.

Definition at line 144 of file itkBinaryDilateImageFilter.h.

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

Superclass typedefs.

Reimplemented from itk::BinaryMorphologyImageFilter< TInputImage, TOutputImage, TKernel >.

Definition at line 148 of file itkBinaryDilateImageFilter.h.

Referenced by itk::BinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::~BinaryDilateImageFilter().

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

Some convenient typedefs.

Reimplemented from itk::BinaryMorphologyImageFilter< TInputImage, TOutputImage, TKernel >.

Reimplemented in itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >.

Definition at line 121 of file itkBinaryDilateImageFilter.h.

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

Reimplemented from itk::BinaryMorphologyImageFilter< TInputImage, TOutputImage, TKernel >.

Definition at line 142 of file itkBinaryDilateImageFilter.h.

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

Reimplemented from itk::BinaryMorphologyImageFilter< TInputImage, TOutputImage, TKernel >.

Reimplemented in itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >.

Definition at line 128 of file itkBinaryDilateImageFilter.h.

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

Standard class typedefs.

Reimplemented from itk::BinaryMorphologyImageFilter< TInputImage, TOutputImage, TKernel >.

Reimplemented in itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >.

Definition at line 126 of file itkBinaryDilateImageFilter.h.

template<class TInputImage, class TOutputImage, class TKernel>
typedef BinaryMorphologyImageFilter<InputImageType, OutputImageType, KernelType> itk::BinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::Superclass
 

Reimplemented from itk::BinaryMorphologyImageFilter< TInputImage, TOutputImage, TKernel >.

Reimplemented in itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >.

Definition at line 127 of file itkBinaryDilateImageFilter.h.


Constructor & Destructor Documentation

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

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

Definition at line 165 of file itkBinaryDilateImageFilter.h.

References itk::BinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::BorderCellContainer, itk::BinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::NeighborIndexContainer, and itk::BinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::OutputImageRegionType.


Member Function Documentation

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

If an imaging filter needs to perform processing after the buffer has been allocated but before threads are spawned, the filter can can provide an implementation for BeforeThreadedGenerateData(). The execution flow in the default GenerateData() method will be: 1) Allocate the output buffer 2) Call BeforeThreadedGenerateData() 3) Spawn threads, calling ThreadedGenerateData() in each thread. 4) Call AfterThreadedGenerateData() Note that this flow of control is only available if a filter provides a ThreadedGenerateData() method and NOT a GenerateData() method.

Reimplemented from itk::ImageSource< TOutputImage >.

template<class TInputImage, class TOutputImage, class TKernel>
InputPixelType itk::BinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::GetDilateValue  )  const [inline]
 

Get the value in the image considered as "foreground". Defaults to maximum value of PixelType. This is an alias to the ForegroundValue in the superclass.

Definition at line 160 of file itkBinaryDilateImageFilter.h.

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

Run-time type information (and related methods).

Reimplemented from itk::BinaryMorphologyImageFilter< TInputImage, TOutputImage, TKernel >.

Reimplemented in itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >.

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

Extract the dimension of the kernel

Reimplemented from itk::BinaryMorphologyImageFilter< TInputImage, TOutputImage, TKernel >.

Reimplemented in itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >.

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

Extract dimension from input and output image.

Reimplemented from itk::BinaryMorphologyImageFilter< TInputImage, TOutputImage, TKernel >.

Reimplemented in itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >.

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

Extract dimension from input and output image.

Reimplemented from itk::BinaryMorphologyImageFilter< TInputImage, TOutputImage, TKernel >.

Reimplemented in itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >.

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

Method for creation through the object factory.

Reimplemented from itk::BinaryMorphologyImageFilter< TInputImage, TOutputImage, TKernel >.

Reimplemented in itk::FastIncrementalBinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >.

template<class TInputImage, class TOutputImage, class TKernel>
void itk::BinaryDilateImageFilter< 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::BinaryMorphologyImageFilter< TInputImage, TOutputImage, TKernel >.

template<class TInputImage, class TOutputImage, class TKernel>
void itk::BinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::SetDilateValue const InputPixelType value  )  [inline]
 

Set the value in the image to consider as "foreground". Defaults to maximum value of PixelType. This is an alias to the ForegroundValue in the superclass.

Definition at line 154 of file itkBinaryDilateImageFilter.h.

References itk::BinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::InputPixelType.

template<class TInputImage, class TOutputImage, class TKernel>
void itk::BinaryDilateImageFilter< TInputImage, TOutputImage, TKernel >::ThreadedGenerateData const OutputImageRegionType outputRegionForThread,
int  threadId
[protected, virtual]
 

BinaryDilateImageFilter can be implemented as a multithreaded filter. Therefore, this implementation provides a ThreadedGenerateData() routine which is called for each processing thread. The output image data is allocated automatically by the superclass prior to calling ThreadedGenerateData(). ThreadedGenerateData can only write to the portion of the output image specified by the parameter "outputRegionForThread"

See also:
ImageToImageFilter::ThreadedGenerateData(), ImageToImageFilter::GenerateData()

Reimplemented from itk::ImageSource< TOutputImage >.


The documentation for this class was generated from the following file:
Generated at Thu May 25 00:24:30 2006 for ITK by doxygen 1.3.5 written by Dimitri van Heesch, © 1997-2000