open_iA  2020.01
A tool for the visual analysis and processing of volumetric datasets, with a focus on industrial computed tomography.
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision > Class Template Reference

Performs Fuzzy C-Means (FCM) Classification on an image. More...

#include <itkFCMClassifierInitializationImageFilter.h>

Inheritance diagram for itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >:
Collaboration diagram for itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >:

Public Types

typedef Superclass::CentroidArrayType CentroidArrayType
 
typedef NumericTraits< CentroidTypeCentroidNumericTraitsType
 Other centroid typedefs. More...
 
typedef Superclass::CentroidType CentroidType
 Centroid typedefs (types inherited from the superclass). More...
 
typedef NumericTraits< CentroidValueTypeCentroidValueNumericTraitsType
 
typedef Superclass::CentroidValueType CentroidValueType
 
typedef SmartPointer< const SelfConstPointer
 
typedef DistanceMetricType::Pointer DistanceMetricPointer
 
typedef Statistics::EuclideanDistanceMetric< CentroidTypeDistanceMetricType
 Distance metric measure typdefs. More...
 
typedef Superclass::InputImagePixelType InputImagePixelType
 
typedef Superclass::InputImageRegionType InputImageRegionType
 
typedef Superclass::InputImageType InputImageType
 Input image typedef support (types inherited from the superclass). More...
 
typedef Superclass::InternalImageConstIterator InternalImageConstIterator
 
typedef Superclass::InternalImageConstPointer InternalImageConstPointer
 
typedef Superclass::InternalImagePointer InternalImagePointer
 
typedef Superclass::InternalImageType InternalImageType
 Internal image typedef support (types inherited from the superclass). More...
 
typedef Superclass::MembershipImageIterator MembershipImageIterator
 
typedef Superclass::MembershipImagePixelType MembershipImagePixelType
 
typedef Superclass::MembershipImagePointer MembershipImagePointer
 
typedef Superclass::MembershipImageType MembershipImageType
 Membership matrix typedef support (types inherited from the superclass). More...
 
typedef NumericTraits< MembershipValueTypeMembershipValueNumericTraitsType
 
typedef Superclass::MembershipValueType MembershipValueType
 
typedef FastMutexLock MutexLockType
 Type definitions for mutex lock. More...
 
typedef MembershipImageType::RegionType OutputImageRegionType
 Other membership typedefs. More...
 
typedef SmartPointer< SelfPointer
 
typedef FCMClassifierInitializationImageFilter Self
 Standard class typedefs. More...
 
typedef FuzzyClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision > Superclass
 
- Public Types inherited from itk::FuzzyClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >
typedef std::vector< CentroidTypeCentroidArrayType
 Typdef for the array of centroids. More...
 
typedef itk::Vector< CentroidValueType, InputImagePixelDimension > CentroidType
 Centroid typedef. More...
 
typedef NumericTraits< CentroidValueTypeCentroidValueNumericTraitsType
 Other centroid typedefs. More...
 
typedef TCentroidValuePrecision CentroidValueType
 
typedef SmartPointer< const SelfConstPointer
 
typedef ImageRegionConstIterator< InputImageTypeInputImageConstIterator
 
typedef Superclass::InputImageConstPointer InputImageConstPointer
 
typedef InputImageType::IndexType InputImageIndexType
 
typedef NumericTraits< InputImagePixelTypeInputImagePixelNumericTraitsType
 Input image pixel typedefs. More...
 
typedef PixelTraits< InputImagePixelTypeInputImagePixelTraitsType
 
typedef Superclass::InputImagePixelType InputImagePixelType
 
typedef InputImagePixelTraitsType::ValueType InputImagePixelValueType
 
typedef Superclass::InputImagePointer InputImagePointer
 Input image typedef support (types inherited from the superclass). More...
 
typedef Superclass::InputImageRegionType InputImageRegionType
 
typedef InputImageType::SizeType InputImageSizeType
 Other input image typedefs. More...
 
typedef TInputImage InputImageType
 Convenient typedefs for simplifying declarations. More...
 
typedef ImageRegionConstIterator< InternalImageTypeInternalImageConstIterator
 
typedef InternalImageType::ConstPointer InternalImageConstPointer
 
typedef ImageRegionIterator< InternalImageTypeInternalImageIterator
 Other internal image typedefs. More...
 
typedef InternalImageType::Pointer InternalImagePointer
 
typedef Image< CentroidType, itkGetStaticConstMacro(InputImageDimension) > InternalImageType
 Internal image typedef support. More...
 
typedef ImageRegionIterator< MembershipImageTypeMembershipImageIterator
 
typedef MembershipImageType::PixelType MembershipImagePixelType
 
typedef MembershipImageType::Pointer MembershipImagePointer
 
typedef OutputImageType MembershipImageType
 Membership image typedef support. More...
 
typedef TProbabilityPrecision MembershipValueType
 
typedef VectorImage< MembershipValueType, itkGetStaticConstMacro(InputImageDimension) > OutputImageType
 Convenient typedefs for simplifying declarations. More...
 
typedef SmartPointer< SelfPointer
 
typedef FuzzyClassifierInitializationImageFilter Self
 Standard class typedefs. More...
 
typedef ImageToImageFilter< InputImageType, OutputImageTypeSuperclass
 Standard class typedefs. More...
 

Public Member Functions

 itkNewMacro (Self)
 Method for creation through the object factory. More...
 
 itkTypeMacro (FCMClassifierInitializationImageFilter, FuzzyClassifierInitializationImageFilter)
 Run-time type information (and related methods). More...
 
void SetNumberOfClasses (const unsigned int &numOfClasses) override
 Set number of classes. More...
 
- Public Member Functions inherited from itk::FuzzyClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >
virtual double ComputeDifference (const CentroidArrayType &arrayOfCentroids)
 Computes the mean square error between centroids and the centroid array passed as parameter. More...
 
virtual CentroidArrayType GetCentroids () const
 Get cluster centroids. More...
 
 itkBooleanMacro (IgnoreBackgroundPixels)
 Turn on and off the IgnoreBackgroundPixels flag. More...
 
 itkGetConstMacro (BackgroundPixel, InputImagePixelType)
 Get the pixel used as background value in the input image. More...
 
 itkGetConstMacro (Error, double)
 Get error between the new class centroids and their values from the previous iteration. More...
 
 itkGetConstMacro (IgnoreBackgroundPixels, bool)
 Get true/false depending on whether the algorithm ignores the background pixels or not. More...
 
 itkGetConstMacro (M, double)
 Get m fuzziness degree value. More...
 
 itkGetConstMacro (MaximumError, double)
 Get maximum error used to stop the algorithm. More...
 
 itkGetConstMacro (MaximumNumberOfIterations, unsigned int)
 Get maximum number of iterations. More...
 
 itkGetConstMacro (NumberOfClasses, unsigned int)
 Get the number of classes. More...
 
 itkGetConstMacro (NumberOfIterations, unsigned int)
 Get number of iterations performed. More...
 
 itkSetClampMacro (M, double, 1.0, NumericTraits< double >::max())
 Set m fuzziness degree value. More...
 
 itkSetClampMacro (MaximumError, double, 0.0, NumericTraits< double >::max())
 Set maximum error used to stop the algorithm. More...
 
 itkSetClampMacro (MaximumNumberOfIterations, unsigned int, 1, NumericTraits< unsigned int >::max())
 Set maximum number of iterations. More...
 
 itkSetMacro (BackgroundPixel, InputImagePixelType)
 Set the pixel used as background value in the input image. More...
 
 itkSetMacro (IgnoreBackgroundPixels, bool)
 Set true/false depending on whether the algorithm ignores the background pixels or not. More...
 
 itkStaticConstMacro (InputImageDimension, unsigned int, InputImageType::ImageDimension)
 Extract dimension from input image. More...
 
 itkStaticConstMacro (InputImagePixelDimension, unsigned int, InputImagePixelTraitsType::Dimension)
 Extract dimension from the pixel of the input image. More...
 
 itkTypeMacro (FuzzyClassifierInitializationImageFilter, ImageToImageFilter)
 Run-time type information (and related methods). More...
 
virtual void SetCentroids (const CentroidArrayType newCentroids)
 Set class centroids. More...
 

Protected Member Functions

void AfterThreadedGenerateData () override
 FCMClassifierInitializationImageFilter is implemented as a multithreaded filter and needs to perform processing after all processing threads have completed. More...
 
void BeforeThreadedGenerateData () override
 FCMClassifierInitializationImageFilter is implemented as a multithreaded filter and needs to perform processing after the output image has been allocated but before threads are spawned. More...
 
 FCMClassifierInitializationImageFilter ()
 Constructor. More...
 
void PrintSelf (std::ostream &os, Indent indent) const override
 Write the name-value pairs of the class data members to the supplied output stream. More...
 
void ThreadedGenerateData (const OutputImageRegionType &outputRegionForThread, ThreadIdType threadId) override
 FCMClassifierInitializationImageFilter is implemented as a multithreaded filter. More...
 
virtual ~FCMClassifierInitializationImageFilter ()
 Destructor. More...
 
- Protected Member Functions inherited from itk::FuzzyClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >
void ComputeImageToProcess (InternalImageType *imageToProcess)
 Get the internal image to process. More...
 
void ComputePixelAsCentroid (const InputImagePixelType &pixel, CentroidType &pixelAsCentroid)
 Transforms a given pixel of the input image to the equivalent pixel of centroid type. More...
 
 FuzzyClassifierInitializationImageFilter ()
 Constructor. More...
 
void GenerateData () override
 A version of GenerateData() specific for fuzzy classifiers. More...
 
void GenerateOutputInformation () override
 Generate the information describing the output data. More...
 
virtual void Initialize ()
 If a subclass of FuzzyClassifierInitializationImageFilter needs to initialize some data or perform some calculations before to start the first iteration, it should provide an implementation of Initialize(). More...
 
void PrintSelf (std::ostream &os, Indent indent) const override
 Write the name-value pairs of the filter data members to the supplied output stream. More...
 
virtual ~FuzzyClassifierInitializationImageFilter ()
 Destructor. More...
 

Protected Attributes

MutexLockType::Pointer m_CentroidsModificationAttributesLock
 Mutex lock used to protect the modification of attributes wich are accessed through different threads. More...
 
DistanceMetricPointer m_DistanceMetric
 Pointer to the distance metric to be used. More...
 
- Protected Attributes inherited from itk::FuzzyClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >
InputImagePixelType m_BackgroundPixel
 Pixel of the input image used as background value. More...
 
CentroidArrayType m_Centroids
 Array of class centroids. More...
 
double m_Error
 Error obtained between the new class centroids and the old values of the centroids (i.e. More...
 
bool m_IgnoreBackgroundPixels
 Flag indicating whether to ignore the background pixels. More...
 
InternalImagePointer m_ImageToProcess
 Pointer to the image to be used internally by the algorithm. More...
 
double m_M
 Fuzzification parameter (m) in the range [1, n], which determines the degree of fuzziness in the clusters. More...
 
double m_MaximumError
 Error threshold used to stop the algorithm. More...
 
unsigned int m_MaximumNumberOfIterations
 Maximum number of iterations allowed. More...
 
unsigned int m_NumberOfClasses
 Number of fuzzy clusters used to classify the image. More...
 
unsigned int m_NumberOfIterations
 Number of iterations performed. More...
 

Detailed Description

template<class TInputImage, class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
class itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >

Performs Fuzzy C-Means (FCM) Classification on an image.

This implementation is based on Bezdek et al.'s paper "FCM: The fuzzy c-means clustering algorithm" (Computers & Geosciences, 10 (2), 191-203., 1984).

FCMClassifierInitializationImageFilter is implemented as a multithreaded filter. This implementation provides BeforeThreadedGenerateData(), ThreadedGenerateData() and AfterThreadedGenerateData() methods. Documentation of the superclass (FuzzyClassifierInitializationImageFilter) explains multhithreaded support in fuzzy classifiers.

Version
0.1
Author
Alberto Rey, Alfonso Castro and Bernardino Arcay. University of A Coruña. Spain
See also
FuzzyClassifierInitializationImageFilter
KFCMSClassifierInitializationImageFilter
MSKFCMClassifierInitializationImageFilter
MSFKCMClassifierInitializationImageFilter
FuzzyClassifierImageFilter

Member Typedef Documentation

◆ CentroidArrayType

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef Superclass::CentroidArrayType itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::CentroidArrayType

◆ CentroidNumericTraitsType

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef NumericTraits< CentroidType > itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::CentroidNumericTraitsType

Other centroid typedefs.

◆ CentroidType

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef Superclass::CentroidType itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::CentroidType

Centroid typedefs (types inherited from the superclass).

◆ CentroidValueNumericTraitsType

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef NumericTraits< CentroidValueType > itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::CentroidValueNumericTraitsType

◆ CentroidValueType

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef Superclass::CentroidValueType itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::CentroidValueType

◆ ConstPointer

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef SmartPointer< const Self > itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::ConstPointer

◆ DistanceMetricPointer

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef DistanceMetricType::Pointer itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::DistanceMetricPointer

◆ DistanceMetricType

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef Statistics::EuclideanDistanceMetric< CentroidType > itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::DistanceMetricType

Distance metric measure typdefs.

◆ InputImagePixelType

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef Superclass::InputImagePixelType itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::InputImagePixelType

◆ InputImageRegionType

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef Superclass::InputImageRegionType itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::InputImageRegionType

◆ InputImageType

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef Superclass::InputImageType itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::InputImageType

Input image typedef support (types inherited from the superclass).

◆ InternalImageConstIterator

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef Superclass::InternalImageConstIterator itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::InternalImageConstIterator

◆ InternalImageConstPointer

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef Superclass::InternalImageConstPointer itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::InternalImageConstPointer

◆ InternalImagePointer

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef Superclass::InternalImagePointer itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::InternalImagePointer

◆ InternalImageType

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef Superclass::InternalImageType itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::InternalImageType

Internal image typedef support (types inherited from the superclass).

This image is used for internal processing.

◆ MembershipImageIterator

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef Superclass::MembershipImageIterator itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::MembershipImageIterator

◆ MembershipImagePixelType

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef Superclass::MembershipImagePixelType itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::MembershipImagePixelType

◆ MembershipImagePointer

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef Superclass::MembershipImagePointer itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::MembershipImagePointer

◆ MembershipImageType

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef Superclass::MembershipImageType itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::MembershipImageType

Membership matrix typedef support (types inherited from the superclass).

◆ MembershipValueNumericTraitsType

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef NumericTraits< MembershipValueType > itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::MembershipValueNumericTraitsType

◆ MembershipValueType

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef Superclass::MembershipValueType itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::MembershipValueType

◆ MutexLockType

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef FastMutexLock itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::MutexLockType

Type definitions for mutex lock.

Mutex lock allows the locking of variables which are accessed through different threads.

◆ OutputImageRegionType

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef MembershipImageType::RegionType itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::OutputImageRegionType

Other membership typedefs.

◆ Pointer

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef SmartPointer< Self > itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::Pointer

◆ Self

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef FCMClassifierInitializationImageFilter itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::Self

Standard class typedefs.

◆ Superclass

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef FuzzyClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision > itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::Superclass

Constructor & Destructor Documentation

◆ FCMClassifierInitializationImageFilter()

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::FCMClassifierInitializationImageFilter ( )
protected

Constructor.

◆ ~FCMClassifierInitializationImageFilter()

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
virtual itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::~FCMClassifierInitializationImageFilter ( )
inlineprotectedvirtual

Destructor.

Member Function Documentation

◆ AfterThreadedGenerateData()

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
void itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::AfterThreadedGenerateData ( )
overrideprotected

FCMClassifierInitializationImageFilter is implemented as a multithreaded filter and needs to perform processing after all processing threads have completed.

Therefore, this implementation provides an AfterThreadedGenerateData() method. This method is executed once per iteration of the FCM algorithm and will update the centroids and calculate the error.

◆ BeforeThreadedGenerateData()

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
void itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::BeforeThreadedGenerateData ( )
overrideprotected

FCMClassifierInitializationImageFilter is implemented as a multithreaded filter and needs to perform processing after the output image has been allocated but before threads are spawned.

Therefore, this implementation provides a BeforeThreadedGenerateData() method. This method is executed once per iteration of the FCM algorithm and will store the old values of the centroids and initialize some variables used internally.

◆ itkNewMacro()

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::itkNewMacro ( Self  )

Method for creation through the object factory.

◆ itkTypeMacro()

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::itkTypeMacro ( FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >  ,
FuzzyClassifierInitializationImageFilter   
)

Run-time type information (and related methods).

◆ PrintSelf()

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
void itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
overrideprotected

Write the name-value pairs of the class data members to the supplied output stream.

◆ SetNumberOfClasses()

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
void itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::SetNumberOfClasses ( const unsigned int &  numOfClasses)
overridevirtual

Set number of classes.

This method calls Superclass::SetNumberOfClasses(numOfClasses) and creates some variables used for centroids calculations. This method also sets the size of the vector of old centroids.

Reimplemented from itk::FuzzyClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >.

◆ ThreadedGenerateData()

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
void itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::ThreadedGenerateData ( const OutputImageRegionType outputRegionForThread,
ThreadIdType  threadId 
)
overrideprotected

FCMClassifierInitializationImageFilter is implemented as a multithreaded filter.

Therefore, this implementation provides a ThreadedGenerateData() method which is called for each processing thread. The output image data is allocated automatically by the supercalss prior to calling ThreadedGenerateData(). ThreadedGenerateData() can only write to the portion of the output membership image specified by the parameter "outputRegionForThread". This method is executed once per iteration of the FCM algorithm and will set that portion of the membership image and perform some calulations used later to update the centroids.

See also
FuzzyClassifierInitializationImageFilter::GenerateData()

Member Data Documentation

◆ m_CentroidsModificationAttributesLock

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
MutexLockType::Pointer itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::m_CentroidsModificationAttributesLock
protected

Mutex lock used to protect the modification of attributes wich are accessed through different threads.

◆ m_DistanceMetric

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
DistanceMetricPointer itk::FCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::m_DistanceMetric
protected

Pointer to the distance metric to be used.


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