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

#include <itkRelabelComponentImageFilter.h>

+ Inheritance diagram for itk::RelabelComponentImageFilter< TInputImage, TOutputImage >:
+ Collaboration diagram for itk::RelabelComponentImageFilter< TInputImage, TOutputImage >:

List of all members.

Classes

struct  RelabelComponentObjectType
class  RelabelComponentSizeInPixelsComparator

Public Types

typedef SmartPointer< const SelfConstPointer
typedef TInputImage::IndexType IndexType
typedef
Superclass::InputImagePointer 
InputImagePointer
typedef TInputImage InputImageType
typedef IdentifierType LabelType
typedef std::vector< float > ObjectSizeInPhysicalUnitsContainerType
typedef std::vector
< ObjectSizeType
ObjectSizeInPixelsContainerType
typedef SizeValueType ObjectSizeType
typedef TOutputImage OutputImageType
typedef SmartPointer< SelfPointer
typedef TOutputImage::RegionType RegionType
typedef RelabelComponentImageFilter Self
typedef TInputImage::SizeType SizeType
typedef InPlaceImageFilter
< TInputImage, TOutputImage > 
Superclass

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
virtual ObjectSizeType GetMinimumObjectSize () const
virtual const char * GetNameOfClass () const
virtual LabelType GetNumberOfObjects () const
virtual LabelType GetOriginalNumberOfObjects () const
const
ObjectSizeInPhysicalUnitsContainerType
GetSizeOfObjectsInPhysicalUnits () const
const
ObjectSizeInPixelsContainerType
GetSizeOfObjectsInPixels () const
virtual void SetMinimumObjectSize (ObjectSizeType _arg)
 typedef (Concept::EqualityComparable< InputPixelType >) InputEqualityComparableCheck
 typedef (Concept::Convertible< LabelType, InputPixelType >) UnsignedLongConvertibleToInputCheck
 typedef (Concept::Convertible< OutputPixelType, LabelType >) OutputLongConvertibleToUnsignedLongCheck
 typedef (Concept::Convertible< InputPixelType, OutputPixelType >) InputConvertibleToOutputCheck
 typedef (Concept::SameDimension< InputImageDimension, ImageDimension >) SameDimensionCheck
virtual void SetNumberOfObjectsToPrint (LabelType _arg)
virtual const LabelTypeGetNumberOfObjectsToPrint ()
ObjectSizeType GetSizeOfObjectInPixels (LabelType obj) const
float GetSizeOfObjectInPhysicalUnits (LabelType obj) const

Static Public Member Functions

static Pointer New ()

Protected Member Functions

void GenerateData ()
void GenerateInputRequestedRegion ()
void PrintSelf (std::ostream &os, Indent indent) const
 RelabelComponentImageFilter ()
virtual ~RelabelComponentImageFilter ()

Private Member Functions

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

Private Attributes

ObjectSizeType m_MinimumObjectSize
LabelType m_NumberOfObjects
LabelType m_NumberOfObjectsToPrint
LabelType m_OriginalNumberOfObjects
ObjectSizeInPhysicalUnitsContainerType m_SizeOfObjectsInPhysicalUnits
ObjectSizeInPixelsContainerType m_SizeOfObjectsInPixels
typedef TOutputImage::PixelType OutputPixelType
typedef
TOutputImage::InternalPixelType 
OutputInternalPixelType
typedef TInputImage::PixelType InputPixelType
typedef
TInputImage::InternalPixelType 
InputInternalPixelType
static const unsigned int ImageDimension = TOutputImage::ImageDimension
static const unsigned int InputImageDimension = TInputImage::ImageDimension

Detailed Description

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

Relabel the components in an image such that consecutive labels are used.

RelabelComponentImageFilter remaps the labels associated with the objects in an image (as from the output of ConnectedComponentImageFilter) such that the label numbers are consecutive with no gaps between the label numbers used. By default, the relabeling will also sort the labels based on the size of the object: the largest object will have label #1, the second largest will have label #2, etc.

Label #0 is assumed to be background is left unaltered by the relabeling.

RelabelComponentImageFilter is typically used on the output of the ConnectedComponentImageFilter for those applications that want to extract the largest object or the "k" largest objects. Any particular object can be extracted from the relabeled output using a BinaryThresholdImageFilter. A group of objects can be extracted from the relabled output using a ThresholdImageFilter.

Once all the objects are relabeled, the application can query the number of objects and the size of each object. Object sizes are returned in a vector. The size of the background is not calculated. So the size of object #1 is GetSizeOfObjectsInPixels()[0], the size of object #2 is GetSizeOfObjectsInPixels()[1], etc.

If user sets a minimum object size, all objects with fewer pixelss than the minimum will be discarded, so that the number of objects reported will be only those remaining. The GetOriginalNumberOfObjects method can be called to find out how many objects were present before the small ones were discarded.

RelabelComponentImageFilter can be run as an "in place" filter, where it will overwrite its output. The default is run out of place (or generate a separate output). "In place" operation can be controlled via methods in the superclass, InPlaceImageFilter::InPlaceOn() and InPlaceImageFilter::InPlaceOff().

See also:
ConnectedComponentImageFilter, BinaryThresholdImageFilter, ThresholdImageFilter
Wiki Examples:

Definition at line 79 of file itkRelabelComponentImageFilter.h.


Member Typedef Documentation

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

Definition at line 113 of file itkRelabelComponentImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef Superclass::InputImagePointer itk::RelabelComponentImageFilter< TInputImage, TOutputImage >::InputImagePointer

Types from the Superclass

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

Definition at line 92 of file itkRelabelComponentImageFilter.h.

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

Image typedef support

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

Definition at line 111 of file itkRelabelComponentImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef TInputImage::InternalPixelType itk::RelabelComponentImageFilter< TInputImage, TOutputImage >::InputInternalPixelType

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

Definition at line 101 of file itkRelabelComponentImageFilter.h.

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

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

Definition at line 100 of file itkRelabelComponentImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef IdentifierType itk::RelabelComponentImageFilter< TInputImage, TOutputImage >::LabelType

Type used as identifier for the different component lables.

Definition at line 131 of file itkRelabelComponentImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef std::vector< float > itk::RelabelComponentImageFilter< TInputImage, TOutputImage >::ObjectSizeInPhysicalUnitsContainerType

Definition at line 144 of file itkRelabelComponentImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef std::vector< ObjectSizeType > itk::RelabelComponentImageFilter< TInputImage, TOutputImage >::ObjectSizeInPixelsContainerType

Definition at line 141 of file itkRelabelComponentImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef SizeValueType itk::RelabelComponentImageFilter< TInputImage, TOutputImage >::ObjectSizeType

Type used to count number of pixels in objects.

Definition at line 137 of file itkRelabelComponentImageFilter.h.

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

Superclass typedefs.

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

Definition at line 112 of file itkRelabelComponentImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef TOutputImage::InternalPixelType itk::RelabelComponentImageFilter< TInputImage, TOutputImage >::OutputInternalPixelType

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

Definition at line 99 of file itkRelabelComponentImageFilter.h.

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

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

Definition at line 98 of file itkRelabelComponentImageFilter.h.

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

Smart pointer typedef support

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

Definition at line 120 of file itkRelabelComponentImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef TOutputImage::RegionType itk::RelabelComponentImageFilter< TInputImage, TOutputImage >::RegionType

Definition at line 115 of file itkRelabelComponentImageFilter.h.

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

Standard "Self" & Superclass typedef.

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

Definition at line 86 of file itkRelabelComponentImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef TInputImage::SizeType itk::RelabelComponentImageFilter< TInputImage, TOutputImage >::SizeType

Definition at line 114 of file itkRelabelComponentImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef InPlaceImageFilter< TInputImage, TOutputImage > itk::RelabelComponentImageFilter< TInputImage, TOutputImage >::Superclass

Constructor & Destructor Documentation

template<class TInputImage , class TOutputImage >
itk::RelabelComponentImageFilter< TInputImage, TOutputImage >::RelabelComponentImageFilter ( ) [inline, protected]

End concept checking

Definition at line 247 of file itkRelabelComponentImageFilter.h.

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

Definition at line 251 of file itkRelabelComponentImageFilter.h.

template<class TInputImage , class TOutputImage >
itk::RelabelComponentImageFilter< TInputImage, TOutputImage >::RelabelComponentImageFilter ( const Self ) [private]

Member Function Documentation

template<class TInputImage , class TOutputImage >
virtual::itk::LightObject::Pointer itk::RelabelComponentImageFilter< 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::RelabelComponentImageFilter< TInputImage, TOutputImage >::GenerateData ( ) [protected, virtual]

Standard pipeline method.

Reimplemented from itk::ImageSource< TOutputImage >.

template<class TInputImage , class TOutputImage >
void itk::RelabelComponentImageFilter< TInputImage, TOutputImage >::GenerateInputRequestedRegion ( ) [protected, virtual]

RelabelComponentImageFilter needs the entire input. Therefore it must provide an implementation GenerateInputRequestedRegion().

See also:
ProcessObject::GenerateInputRequestedRegion().

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

template<class TInputImage , class TOutputImage >
virtual ObjectSizeType itk::RelabelComponentImageFilter< TInputImage, TOutputImage >::GetMinimumObjectSize ( ) const [virtual]

Get the caller-defined minimum size of an object in pixels. If the caller has not set the minimum, 0 will be returned, which is to be interpreted as meaning that no minimum exists, and all objects in the original label map will be passed through to the output.

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

Run-time type information (and related methods)

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

template<class TInputImage , class TOutputImage >
virtual LabelType itk::RelabelComponentImageFilter< TInputImage, TOutputImage >::GetNumberOfObjects ( ) const [virtual]

Get the number of objects in the image. This information is only valid after the filter has executed.

template<class TInputImage , class TOutputImage >
virtual const LabelType& itk::RelabelComponentImageFilter< TInputImage, TOutputImage >::GetNumberOfObjectsToPrint ( ) [virtual]

Get/Set the number of objects enumerated and described when the filter is printed.

template<class TInputImage , class TOutputImage >
virtual LabelType itk::RelabelComponentImageFilter< TInputImage, TOutputImage >::GetOriginalNumberOfObjects ( ) const [virtual]

Get the original number of objects in the image before small objects were discarded. This information is only valid after the filter has executed. If the caller has not specified a minimum object size, OriginalNumberOfObjects is the same as NumberOfObjects.

template<class TInputImage , class TOutputImage >
float itk::RelabelComponentImageFilter< TInputImage, TOutputImage >::GetSizeOfObjectInPhysicalUnits ( LabelType  obj) const [inline]

Get the size of a particular object in physical space (in units of pixel size). This information is only valid after the filter has executed. Size of the background (object #0) is not calculated.

Definition at line 217 of file itkRelabelComponentImageFilter.h.

template<class TInputImage , class TOutputImage >
ObjectSizeType itk::RelabelComponentImageFilter< TInputImage, TOutputImage >::GetSizeOfObjectInPixels ( LabelType  obj) const [inline]

Get the size of a particular object in pixels. This information is only valid after the filter has executed. Size of the background (object #0) is not calculated.

Definition at line 201 of file itkRelabelComponentImageFilter.h.

template<class TInputImage , class TOutputImage >
const ObjectSizeInPhysicalUnitsContainerType& itk::RelabelComponentImageFilter< TInputImage, TOutputImage >::GetSizeOfObjectsInPhysicalUnits ( ) const [inline]

Get the size of each object in physical space (in units of pixel size). This information is only valid after the filter has executed. Size of the background is not calculated. Size of object #1 is GetSizeOfObjectsInPhysicalUnits()[0]. Size of object #2 is GetSizeOfObjectsInPhysicalUnits()[1]. Etc.

Definition at line 191 of file itkRelabelComponentImageFilter.h.

template<class TInputImage , class TOutputImage >
const ObjectSizeInPixelsContainerType& itk::RelabelComponentImageFilter< TInputImage, TOutputImage >::GetSizeOfObjectsInPixels ( ) const [inline]

Get the size of each object in pixels. This information is only valid after the filter has executed. Size of the background is not calculated. Size of object #1 is GetSizeOfObjectsInPixels()[0]. Size of object #2 is GetSizeOfObjectsInPixels()[1]. Etc.

Definition at line 179 of file itkRelabelComponentImageFilter.h.

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

Method for creation through the object factory.

Reimplemented from itk::Object.

template<class TInputImage , class TOutputImage >
void itk::RelabelComponentImageFilter< 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::InPlaceImageFilter< TInputImage, TOutputImage >.

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

Standard printself method

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

template<class TInputImage , class TOutputImage >
virtual void itk::RelabelComponentImageFilter< TInputImage, TOutputImage >::SetMinimumObjectSize ( ObjectSizeType  _arg) [virtual]

Set the minimum size in pixels for an object. All objects smaller than this size will be discarded and will not appear in the output label map. NumberOfObjects will count only the objects whose pixel counts are greater than or equal to the minimum size. Call GetOriginalNumberOfObjects to find out how many objects were present in the original label map.

template<class TInputImage , class TOutputImage >
virtual void itk::RelabelComponentImageFilter< TInputImage, TOutputImage >::SetNumberOfObjectsToPrint ( LabelType  _arg) [virtual]

Get/Set the number of objects enumerated and described when the filter is printed.

template<class TInputImage , class TOutputImage >
itk::RelabelComponentImageFilter< TInputImage, TOutputImage >::typedef ( Concept::EqualityComparable< InputPixelType )

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

template<class TInputImage , class TOutputImage >
itk::RelabelComponentImageFilter< TInputImage, TOutputImage >::typedef ( Concept::Convertible< LabelType, InputPixelType )

This class requires UnsignedLongConvertibleToInputCheck in the form of ( Concept::Convertible< LabelType, InputPixelType > )

template<class TInputImage , class TOutputImage >
itk::RelabelComponentImageFilter< TInputImage, TOutputImage >::typedef ( Concept::Convertible< OutputPixelType, LabelType )

This class requires OutputLongConvertibleToUnsignedLongCheck in the form of ( Concept::Convertible< OutputPixelType, LabelType > )

template<class TInputImage , class TOutputImage >
itk::RelabelComponentImageFilter< TInputImage, TOutputImage >::typedef ( Concept::Convertible< InputPixelType, OutputPixelType )

This class requires InputConvertibleToOutputCheck in the form of ( Concept::Convertible< InputPixelType, OutputPixelType > )

template<class TInputImage , class TOutputImage >
itk::RelabelComponentImageFilter< TInputImage, TOutputImage >::typedef ( Concept::SameDimension< InputImageDimension, ImageDimension )

This class requires SameDimensionCheck in the form of ( Concept::SameDimension< InputImageDimension, ImageDimension > )


Member Data Documentation

template<class TInputImage , class TOutputImage >
const unsigned int itk::RelabelComponentImageFilter< 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 103 of file itkRelabelComponentImageFilter.h.

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

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

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

Definition at line 105 of file itkRelabelComponentImageFilter.h.

template<class TInputImage , class TOutputImage >
ObjectSizeType itk::RelabelComponentImageFilter< TInputImage, TOutputImage >::m_MinimumObjectSize [private]

Definition at line 306 of file itkRelabelComponentImageFilter.h.

template<class TInputImage , class TOutputImage >
LabelType itk::RelabelComponentImageFilter< TInputImage, TOutputImage >::m_NumberOfObjects [private]

Definition at line 303 of file itkRelabelComponentImageFilter.h.

template<class TInputImage , class TOutputImage >
LabelType itk::RelabelComponentImageFilter< TInputImage, TOutputImage >::m_NumberOfObjectsToPrint [private]

Definition at line 304 of file itkRelabelComponentImageFilter.h.

template<class TInputImage , class TOutputImage >
LabelType itk::RelabelComponentImageFilter< TInputImage, TOutputImage >::m_OriginalNumberOfObjects [private]

Definition at line 305 of file itkRelabelComponentImageFilter.h.

template<class TInputImage , class TOutputImage >
ObjectSizeInPhysicalUnitsContainerType itk::RelabelComponentImageFilter< TInputImage, TOutputImage >::m_SizeOfObjectsInPhysicalUnits [private]

Definition at line 309 of file itkRelabelComponentImageFilter.h.

template<class TInputImage , class TOutputImage >
ObjectSizeInPixelsContainerType itk::RelabelComponentImageFilter< TInputImage, TOutputImage >::m_SizeOfObjectsInPixels [private]

Definition at line 308 of file itkRelabelComponentImageFilter.h.


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