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

Classifies the intensity values of a scalar image using the K-Means algorithm. More...

#include <itkScalarImageKmeansImageFilter.h>

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

List of all members.

Public Types

typedef
itk::Statistics::ImageToListSampleAdaptor
< InputImageType
AdaptorType
typedef
itk::Statistics::SampleClassifierFilter
< AdaptorType
ClassifierType
typedef
ClassifierType::ClassLabelVectorType 
ClassLabelVectorType
typedef SmartPointer< const SelfConstPointer
typedef
itk::Statistics::MinimumDecisionRule 
DecisionRuleType
typedef
itk::Statistics::KdTreeBasedKmeansEstimator
< TreeType
EstimatorType
typedef InputImageType::RegionType ImageRegionType
typedef TInputImage InputImageType
typedef InputImageType::PixelType InputPixelType
typedef
AdaptorType::MeasurementVectorType 
MeasurementVectorType
typedef
MembershipFunctionType::CentroidType 
MembershipFunctionOriginType
typedef
MembershipFunctionType::Pointer 
MembershipFunctionPointer
typedef
itk::Statistics::DistanceToCentroidMembershipFunction
< MeasurementVectorType
MembershipFunctionType
typedef
ClassifierType::MembershipFunctionVectorType 
MembershipFunctionVectorType
typedef TOutputImage OutputImageType
typedef OutputImageType::PixelType OutputPixelType
typedef
EstimatorType::ParametersType 
ParametersType
typedef SmartPointer< SelfPointer
typedef NumericTraits
< InputPixelType >::RealType 
RealPixelType
typedef
RegionOfInterestImageFilter
< InputImageType,
InputImageType
RegionOfInterestFilterType
typedef
ScalarImageKmeansImageFilter 
Self
typedef ImageToImageFilter
< InputImageType,
OutputImageType
Superclass
typedef
itk::Statistics::WeightedCentroidKdTreeGenerator
< AdaptorType
TreeGeneratorType
typedef
TreeGeneratorType::KdTreeType 
TreeType

Public Member Functions

void AddClassWithInitialMean (RealPixelType mean)
virtual ::itk::LightObject::Pointer CreateAnother (void) const
virtual const ParametersTypeGetFinalMeans ()
virtual const ImageRegionTypeGetImageRegion ()
virtual const char * GetNameOfClass () const
void SetImageRegion (const ImageRegionType &region)
 typedef (Concept::HasNumericTraits< InputPixelType >) InputHasNumericTraitsCheck
virtual void SetUseNonContiguousLabels (bool _arg)
virtual const bool & GetUseNonContiguousLabels ()
virtual void UseNonContiguousLabelsOn ()
virtual void UseNonContiguousLabelsOff ()

Static Public Member Functions

static Pointer New ()

Static Public Attributes

static const unsigned int ImageDimension = TInputImage::ImageDimension

Protected Member Functions

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

Private Types

typedef std::vector
< RealPixelType
MeansContainer

Private Member Functions

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

Private Attributes

ParametersType m_FinalMeans
ImageRegionType m_ImageRegion
bool m_ImageRegionDefined
MeansContainer m_InitialMeans
bool m_UseNonContiguousLabels

Detailed Description

template<class TInputImage, class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
class itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >

Classifies the intensity values of a scalar image using the K-Means algorithm.

Given an input image with scalar values, it uses the K-Means statistical classifier in order to define labels for every pixel in the image. The filter is templated over the type of the input image. The output image is predefined as having the same dimension of the input image and pixel type unsigned char, under the assumption that the classifier will generate less than 256 classes.

You may want to look also at the RelabelImageFilter that may be used as a postprocessing stage, in particular if you are interested in ordering the labels by their relative size in number of pixels.

See also:
Image
ImageKmeansModelEstimator
KdTreeBasedKmeansEstimator, WeightedCentroidKdTreeGenerator, KdTree
RelabelImageFilter
Wiki Examples:

Definition at line 64 of file itkScalarImageKmeansImageFilter.h.


Member Typedef Documentation

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
typedef itk::Statistics::ImageToListSampleAdaptor< InputImageType > itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::AdaptorType

Create a List from the scalar image

Definition at line 96 of file itkScalarImageKmeansImageFilter.h.

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
typedef itk::Statistics::SampleClassifierFilter< AdaptorType > itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::ClassifierType

Definition at line 102 of file itkScalarImageKmeansImageFilter.h.

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
typedef ClassifierType::ClassLabelVectorType itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::ClassLabelVectorType

Definition at line 105 of file itkScalarImageKmeansImageFilter.h.

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
typedef SmartPointer< const Self > itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::ConstPointer
template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
typedef itk::Statistics::MinimumDecisionRule itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::DecisionRuleType

Definition at line 103 of file itkScalarImageKmeansImageFilter.h.

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
typedef itk::Statistics::KdTreeBasedKmeansEstimator< TreeType > itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::EstimatorType

Definition at line 115 of file itkScalarImageKmeansImageFilter.h.

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
typedef InputImageType::RegionType itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::ImageRegionType

Definition at line 119 of file itkScalarImageKmeansImageFilter.h.

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
typedef TInputImage itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::InputImageType

Convenient typedefs for simplifying declarations.

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

Definition at line 73 of file itkScalarImageKmeansImageFilter.h.

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
typedef InputImageType::PixelType itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::InputPixelType

Image typedef support.

Definition at line 86 of file itkScalarImageKmeansImageFilter.h.

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
typedef std::vector< RealPixelType > itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::MeansContainer [private]

Definition at line 171 of file itkScalarImageKmeansImageFilter.h.

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
typedef AdaptorType::MeasurementVectorType itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::MeasurementVectorType

Define the Measurement vector type from the AdaptorType

Definition at line 99 of file itkScalarImageKmeansImageFilter.h.

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
typedef MembershipFunctionType::CentroidType itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::MembershipFunctionOriginType

Definition at line 108 of file itkScalarImageKmeansImageFilter.h.

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
typedef MembershipFunctionType::Pointer itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::MembershipFunctionPointer

Definition at line 110 of file itkScalarImageKmeansImageFilter.h.

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
typedef itk::Statistics::DistanceToCentroidMembershipFunction< MeasurementVectorType > itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::MembershipFunctionType

Definition at line 101 of file itkScalarImageKmeansImageFilter.h.

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
typedef ClassifierType::MembershipFunctionVectorType itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::MembershipFunctionVectorType

Definition at line 107 of file itkScalarImageKmeansImageFilter.h.

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
typedef TOutputImage itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::OutputImageType

Some convenient typedefs.

Reimplemented from itk::ImageSource< TOutputImage >.

Definition at line 74 of file itkScalarImageKmeansImageFilter.h.

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
typedef OutputImageType::PixelType itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::OutputPixelType

Definition at line 90 of file itkScalarImageKmeansImageFilter.h.

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
typedef EstimatorType::ParametersType itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::ParametersType

Definition at line 117 of file itkScalarImageKmeansImageFilter.h.

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
typedef SmartPointer< Self > itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::Pointer
template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
typedef NumericTraits< InputPixelType >::RealType itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::RealPixelType

Type used for representing the Mean values

Definition at line 93 of file itkScalarImageKmeansImageFilter.h.

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
typedef RegionOfInterestImageFilter< InputImageType, InputImageType > itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::RegionOfInterestFilterType

Definition at line 123 of file itkScalarImageKmeansImageFilter.h.

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
typedef ScalarImageKmeansImageFilter itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::Self

Standard class typedefs.

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

Definition at line 77 of file itkScalarImageKmeansImageFilter.h.

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
typedef ImageToImageFilter< InputImageType, OutputImageType > itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::Superclass
template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
typedef itk::Statistics::WeightedCentroidKdTreeGenerator< AdaptorType > itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::TreeGeneratorType

Create the K-d tree structure

Definition at line 113 of file itkScalarImageKmeansImageFilter.h.

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
typedef TreeGeneratorType::KdTreeType itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::TreeType

Definition at line 114 of file itkScalarImageKmeansImageFilter.h.


Constructor & Destructor Documentation

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::ScalarImageKmeansImageFilter ( ) [protected]

End concept checking

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
virtual itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::~ScalarImageKmeansImageFilter ( ) [inline, protected, virtual]

End concept checking

Definition at line 156 of file itkScalarImageKmeansImageFilter.h.

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::ScalarImageKmeansImageFilter ( const Self ) [private]

Member Function Documentation

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
void itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::AddClassWithInitialMean ( RealPixelType  mean)

Add a new class to the classification by specifying its initial mean.

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
virtual::itk::LightObject::Pointer itk::ScalarImageKmeansImageFilter< 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 = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
void itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::GenerateData ( ) [protected, virtual]

This method runs the statistical methods that identify the means of the classes and the use the distances to those means in order to label the image pixels.

See also:
ImageToImageFilter::GenerateData()

Reimplemented from itk::ImageSource< TOutputImage >.

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
virtual const ParametersType& itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::GetFinalMeans ( ) [virtual]

Return the array of Means found after the classification

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
virtual const ImageRegionType& itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::GetImageRegion ( ) [virtual]

Get the region over which the statistics will be computed

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
virtual const char* itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::GetNameOfClass ( ) const [virtual]

Run-time type information (and related methods).

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

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
virtual const bool& itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::GetUseNonContiguousLabels ( ) [virtual]

Set/Get the UseNonContiguousLabels flag. When this is set to false the labels are numbered contiguously, like in {0,1,3..N}. When the flag is set to true, the labels are selected in order to span the dynamic range of the output image. This last option is useful when the output image is intended only for display. The default value is false.

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
static Pointer itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::New ( ) [static]

Method for creation through the object factory.

Reimplemented from itk::Object.

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
void itk::ScalarImageKmeansImageFilter< 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 = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
void itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const [protected, virtual]

End concept checking

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

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
void itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::SetImageRegion ( const ImageRegionType region)

Set Region method to constrain classfication to a certain region

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
virtual void itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::SetUseNonContiguousLabels ( bool  _arg) [virtual]

Set/Get the UseNonContiguousLabels flag. When this is set to false the labels are numbered contiguously, like in {0,1,3..N}. When the flag is set to true, the labels are selected in order to span the dynamic range of the output image. This last option is useful when the output image is intended only for display. The default value is false.

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::typedef ( Concept::HasNumericTraits< InputPixelType )

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

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
virtual void itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::UseNonContiguousLabelsOff ( ) [virtual]

Set/Get the UseNonContiguousLabels flag. When this is set to false the labels are numbered contiguously, like in {0,1,3..N}. When the flag is set to true, the labels are selected in order to span the dynamic range of the output image. This last option is useful when the output image is intended only for display. The default value is false.

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
virtual void itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::UseNonContiguousLabelsOn ( ) [virtual]

Set/Get the UseNonContiguousLabels flag. When this is set to false the labels are numbered contiguously, like in {0,1,3..N}. When the flag is set to true, the labels are selected in order to span the dynamic range of the output image. This last option is useful when the output image is intended only for display. The default value is false.


Member Data Documentation

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
const unsigned int itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::ImageDimension = TInputImage::ImageDimension [static]

Extract dimension from input and output image.

Definition at line 70 of file itkScalarImageKmeansImageFilter.h.

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
ParametersType itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::m_FinalMeans [private]

Definition at line 175 of file itkScalarImageKmeansImageFilter.h.

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
ImageRegionType itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::m_ImageRegion [private]

Definition at line 179 of file itkScalarImageKmeansImageFilter.h.

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
bool itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::m_ImageRegionDefined [private]

Definition at line 181 of file itkScalarImageKmeansImageFilter.h.

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
MeansContainer itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::m_InitialMeans [private]

Definition at line 173 of file itkScalarImageKmeansImageFilter.h.

template<class TInputImage , class TOutputImage = Image< unsigned char, ::itk::GetImageDimension< TInputImage >::ImageDimension >>
bool itk::ScalarImageKmeansImageFilter< TInputImage, TOutputImage >::m_UseNonContiguousLabels [private]

Definition at line 177 of file itkScalarImageKmeansImageFilter.h.


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