CustusX  2023.01.05-dev+develop.0da12
An IGT application
itk::BinaryThinningImageFilter3D< TInputImage, TOutputImage > Class Template Reference

This filter computes one-pixel-wide skeleton of a 3D input image. More...

#include <itkBinaryThinningImageFilter3D.h>

Inheritance diagram for itk::BinaryThinningImageFilter3D< TInputImage, TOutputImage >:

Public Types

typedef BinaryThinningImageFilter3D Self
 
typedef ImageToImageFilter< TInputImage, TOutputImage > Superclass
 
typedef SmartPointer< SelfPointer
 
typedef SmartPointer< const SelfConstPointer
 
typedef TInputImage InputImageType
 
typedef TOutputImage OutputImageType
 
typedef InputImageType::RegionType RegionType
 
typedef RegionType::IndexType IndexType
 
typedef InputImageType::PixelType InputImagePixelType
 
typedef OutputImageType::PixelType OutputImagePixelType
 
typedef RegionType::SizeType SizeType
 
typedef InputImageType::ConstPointer InputImagePointer
 
typedef OutputImageType::Pointer OutputImagePointer
 
typedef ConstantBoundaryCondition< TInputImage > ConstBoundaryConditionType
 
typedef NeighborhoodIterator< TInputImage, ConstBoundaryConditionTypeNeighborhoodIteratorType
 
typedef NeighborhoodIteratorType::NeighborhoodType NeighborhoodType
 

Public Member Functions

 itkNewMacro (Self)
 
 itkTypeMacro (BinaryThinningImageFilter3D, ImageToImageFilter)
 
OutputImageTypeGetThinning (void)
 
 itkStaticConstMacro (InputImageDimension, unsigned int, TInputImage::ImageDimension)
 
 itkStaticConstMacro (OutputImageDimension, unsigned int, TOutputImage::ImageDimension)
 

Protected Member Functions

 BinaryThinningImageFilter3D ()
 
virtual ~BinaryThinningImageFilter3D ()
 
void PrintSelf (std::ostream &os, Indent indent) const
 
void GenerateData ()
 
void PrepareData ()
 
void ComputeThinImage ()
 
bool isEulerInvariant (NeighborhoodType neighbors, int *LUT)
 
void fillEulerLUT (int *LUT)
 
bool isSimplePoint (NeighborhoodType neighbors)
 
void Octree_labeling (int octant, int label, int *cube)
 

Detailed Description

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

This filter computes one-pixel-wide skeleton of a 3D input image.

This class is parametrized over the type of the input image and the type of the output image.

The input is assumed to be a binary image. All non-zero valued voxels are set to 1 internally to simplify the computation. The filter will produce a skeleton of the object. The output background values are 0, and the foreground values are 1.

A 26-neighbourhood configuration is used for the foreground and a 6-neighbourhood configuration for the background. Thinning is performed symmetrically in order to guarantee that the skeleton lies medial within the object.

This filter is a parallel thinning algorithm and is an implementation of the algorithm described in:

T.C. Lee, R.L. Kashyap, and C.N. Chu. Building skeleton models via 3-D medial surface/axis thinning algorithms. Computer Vision, Graphics, and Image Processing, 56(6):462–478, 1994.

To do: Make use of multi-threading.

Author
Hanno Homann, Oxford University, Wolfson Medical Vision Lab, UK.
See also
MorphologyImageFilter

Definition at line 57 of file itkBinaryThinningImageFilter3D.h.

Member Typedef Documentation

template<class TInputImage , class TOutputImage >
typedef ConstantBoundaryCondition< TInputImage > itk::BinaryThinningImageFilter3D< TInputImage, TOutputImage >::ConstBoundaryConditionType

Boundary condition type for the neighborhood iterator

Definition at line 101 of file itkBinaryThinningImageFilter3D.h.

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

Definition at line 65 of file itkBinaryThinningImageFilter3D.h.

template<class TInputImage , class TOutputImage >
typedef RegionType::IndexType itk::BinaryThinningImageFilter3D< TInputImage, TOutputImage >::IndexType

Type for the index of the input image.

Definition at line 83 of file itkBinaryThinningImageFilter3D.h.

template<class TInputImage , class TOutputImage >
typedef InputImageType::PixelType itk::BinaryThinningImageFilter3D< TInputImage, TOutputImage >::InputImagePixelType

Type for the pixel type of the input image.

Definition at line 86 of file itkBinaryThinningImageFilter3D.h.

template<class TInputImage , class TOutputImage >
typedef InputImageType::ConstPointer itk::BinaryThinningImageFilter3D< TInputImage, TOutputImage >::InputImagePointer

Pointer Type for input image.

Definition at line 95 of file itkBinaryThinningImageFilter3D.h.

template<class TInputImage , class TOutputImage >
typedef TInputImage itk::BinaryThinningImageFilter3D< TInputImage, TOutputImage >::InputImageType

Type for input image.

Definition at line 74 of file itkBinaryThinningImageFilter3D.h.

template<class TInputImage , class TOutputImage >
typedef NeighborhoodIterator<TInputImage, ConstBoundaryConditionType> itk::BinaryThinningImageFilter3D< TInputImage, TOutputImage >::NeighborhoodIteratorType

Neighborhood iterator type

Definition at line 104 of file itkBinaryThinningImageFilter3D.h.

template<class TInputImage , class TOutputImage >
typedef NeighborhoodIteratorType::NeighborhoodType itk::BinaryThinningImageFilter3D< TInputImage, TOutputImage >::NeighborhoodType

Neighborhood type

Definition at line 107 of file itkBinaryThinningImageFilter3D.h.

template<class TInputImage , class TOutputImage >
typedef OutputImageType::PixelType itk::BinaryThinningImageFilter3D< TInputImage, TOutputImage >::OutputImagePixelType

Type for the pixel type of the input image.

Definition at line 89 of file itkBinaryThinningImageFilter3D.h.

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

Pointer Type for the output image.

Definition at line 98 of file itkBinaryThinningImageFilter3D.h.

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

Type for output image: Skelenton of the object.

Definition at line 77 of file itkBinaryThinningImageFilter3D.h.

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

Definition at line 64 of file itkBinaryThinningImageFilter3D.h.

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

Type for the region of the input image.

Definition at line 80 of file itkBinaryThinningImageFilter3D.h.

template<class TInputImage , class TOutputImage >
typedef BinaryThinningImageFilter3D itk::BinaryThinningImageFilter3D< TInputImage, TOutputImage >::Self

Standard class typedefs.

Definition at line 62 of file itkBinaryThinningImageFilter3D.h.

template<class TInputImage , class TOutputImage >
typedef RegionType::SizeType itk::BinaryThinningImageFilter3D< TInputImage, TOutputImage >::SizeType

Type for the size of the input image.

Definition at line 92 of file itkBinaryThinningImageFilter3D.h.

template<class TInputImage , class TOutputImage >
typedef ImageToImageFilter<TInputImage,TOutputImage> itk::BinaryThinningImageFilter3D< TInputImage, TOutputImage >::Superclass

Definition at line 63 of file itkBinaryThinningImageFilter3D.h.

Constructor & Destructor Documentation

template<class TInputImage , class TOutputImage >
itk::BinaryThinningImageFilter3D< TInputImage, TOutputImage >::BinaryThinningImageFilter3D ( )
protected
template<class TInputImage , class TOutputImage >
virtual itk::BinaryThinningImageFilter3D< TInputImage, TOutputImage >::~BinaryThinningImageFilter3D ( )
inlineprotectedvirtual

Definition at line 137 of file itkBinaryThinningImageFilter3D.h.

Member Function Documentation

template<class TInputImage , class TOutputImage >
void itk::BinaryThinningImageFilter3D< TInputImage, TOutputImage >::ComputeThinImage ( )
protected

Compute thinning Image.

template<class TInputImage , class TOutputImage >
void itk::BinaryThinningImageFilter3D< TInputImage, TOutputImage >::fillEulerLUT ( int *  LUT)
protected
template<class TInputImage , class TOutputImage >
void itk::BinaryThinningImageFilter3D< TInputImage, TOutputImage >::GenerateData ( )
protected

Compute thinning Image.

template<class TInputImage , class TOutputImage >
OutputImageType* itk::BinaryThinningImageFilter3D< TInputImage, TOutputImage >::GetThinning ( void  )

Get Skelenton by thinning image.

template<class TInputImage , class TOutputImage >
bool itk::BinaryThinningImageFilter3D< TInputImage, TOutputImage >::isEulerInvariant ( NeighborhoodType  neighbors,
int *  LUT 
)
protected

isEulerInvariant [Lee94]

template<class TInputImage , class TOutputImage >
bool itk::BinaryThinningImageFilter3D< TInputImage, TOutputImage >::isSimplePoint ( NeighborhoodType  neighbors)
protected

isSimplePoint [Lee94]

template<class TInputImage , class TOutputImage >
itk::BinaryThinningImageFilter3D< TInputImage, TOutputImage >::itkNewMacro ( Self  )

Method for creation through the object factory

template<class TInputImage , class TOutputImage >
itk::BinaryThinningImageFilter3D< TInputImage, TOutputImage >::itkStaticConstMacro ( InputImageDimension  ,
unsigned  int,
TInputImage::ImageDimension   
)

ImageDimension enumeration

template<class TInputImage , class TOutputImage >
itk::BinaryThinningImageFilter3D< TInputImage, TOutputImage >::itkStaticConstMacro ( OutputImageDimension  ,
unsigned  int,
TOutputImage::ImageDimension   
)
template<class TInputImage , class TOutputImage >
itk::BinaryThinningImageFilter3D< TInputImage, TOutputImage >::itkTypeMacro ( BinaryThinningImageFilter3D< TInputImage, TOutputImage >  ,
ImageToImageFilter   
)

Run-time type information (and related methods).

template<class TInputImage , class TOutputImage >
void itk::BinaryThinningImageFilter3D< TInputImage, TOutputImage >::Octree_labeling ( int  octant,
int  label,
int *  cube 
)
protected

Octree_labeling [Lee94]

template<class TInputImage , class TOutputImage >
void itk::BinaryThinningImageFilter3D< TInputImage, TOutputImage >::PrepareData ( )
protected

Prepare data.

template<class TInputImage , class TOutputImage >
void itk::BinaryThinningImageFilter3D< TInputImage, TOutputImage >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
protected

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