open_iA 2021.08
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::MSKFCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision > Class Template Reference

Performs Modified Spatial Kernelized Fuzzy C-Means (MSKFCM) Classification on an image. More...

#include <itkMSKFCMClassifierInitializationImageFilter.h>

Inheritance diagram for itk::MSKFCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >:
[legend]
Collaboration diagram for itk::MSKFCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >:
[legend]

Public Types

typedef itk::Barrier BarrierType
 Type definitions for barrier class used to synchronize threaded execution. More...
 
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 Superclass::InputImageIndexType InputImageIndexType
 
typedef Superclass::InputImagePixelType InputImagePixelType
 
typedef Superclass::InputImagePixelValueType InputImagePixelValueType
 
typedef Superclass::InputImageRegionType InputImageRegionType
 
typedef Superclass::InputImageSizeType InputImageSizeType
 
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 KernelDistanceMetricType::Pointer KernelDistanceMetricPointer
 
typedef Statistics::KernelInducedDistanceMetric< CentroidTypeKernelDistanceMetricType
 Type definitions for kernel distance metric measure to be used. More...
 
typedef ConstShapedNeighborhoodIterator< MembershipImageTypeMembershipImageConstShapedNeighborhoodIterator
 
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 itk::FastMutexLock MutexLockType
 Type definitions for mutex lock. More...
 
typedef itk::Vector< unsigned int, itkGetStaticConstMacro(InputImageDimension) > NeighborhoodRadiusType
 Neighborhood region radius typedef. More...
 
typedef MembershipImageType::RegionType OutputImageRegionType
 Other membership typedefs. More...
 
typedef SmartPointer< SelfPointer
 
typedef MSKFCMClassifierInitializationImageFilter Self
 Standard class typedefs. More...
 
typedef StructuringElementType::RadiusType StructuringElementRadiusType
 
typedef itk::FlatStructuringElement< itkGetStaticConstMacro(InputImageDimension) > StructuringElementType
 Structuring element typedef. More...
 
typedef FuzzyClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision > Superclass
 
- Public Types inherited from itk::FuzzyClassifierInitializationImageFilter< TInputImage, double, double >
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 double 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 double 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

 itkGetConstMacro (P, double)
 Get the exponent p that controls the relevance of the memberships in the second step of the algorithm (when the spatial information is introduced as in the SFCM). More...
 
 itkGetConstMacro (Q, double)
 Get the exponent q that controls the relevance of the function h in the second step of the algorithm (when the spatial information is introduced as in the SFCM). More...
 
 itkNewMacro (Self)
 Method for creation through the object factory. More...
 
 itkSetMacro (P, double)
 Set the exponent p that controls the relevance of the memberships in the second step of the algorithm (when the spatial information is introduced as in the SFCM). More...
 
 itkSetMacro (Q, double)
 Set the exponent q that controls the relevance of the function h in the second step of the algorithm (when the spatial information is introduced as in the SFCM). More...
 
 itkStaticConstMacro (InputImageDimension, unsigned int, InputImageType::ImageDimension)
 Extract dimension from input image. More...
 
 itkTypeMacro (MSKFCMClassifierInitializationImageFilter, FuzzyClassifierInitializationImageFilter)
 Run-time type information (and related methods). More...
 
void SetInput (const InputImageType *input) override
 Set the input image of this process object. More...
 
virtual void SetKernelDistanceMetric (KernelDistanceMetricPointer kernelDistanceMetricPtr)
 Set the pointer to the kernel distance metric to be used. More...
 
void SetNumberOfClasses (const unsigned int &numOfClasses) override
 Set number of classes. More...
 
void SetStructuringElement (StructuringElementType &structuringEl)
 Set the structuring element to be used in the shaped neighborhood iterator. More...
 
- Public Member Functions inherited from itk::FuzzyClassifierInitializationImageFilter< TInputImage, double, double >
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

 MSKFCMClassifierInitializationImageFilter ()
 Constructor. More...
 
virtual ~MSKFCMClassifierInitializationImageFilter ()
 Destructor. More...
 
void AfterThreadedGenerateData () override
 MSKFCMClassifierInitializationImageFilter is implemented as a multithreaded filter and needs to perform processing after all processing threads have completed. More...
 
void BeforeThreadedGenerateData () override
 MSKFCMClassifierInitializationImageFilter is implemented as a multithreaded filter and needs to perform processing after the output image has been allocated but before threads are spawned. More...
 
void Initialize () override
 Initialize the barrier used for synchronizing the execution of threads. 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
 MSKFCMClassifierInitializationImageFilter is implemented as a multithreaded filter. More...
 
- Protected Member Functions inherited from itk::FuzzyClassifierInitializationImageFilter< TInputImage, double, double >
 FuzzyClassifierInitializationImageFilter ()
 Constructor. More...
 
virtual ~FuzzyClassifierInitializationImageFilter ()
 Destructor. More...
 
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...
 
void GenerateData () override
 A version of GenerateData() specific for fuzzy classifiers. More...
 
void GenerateOutputInformation () override
 Generate the information describing the output data. 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...
 

Protected Attributes

BarrierType::Pointer m_Barrier
 Standard barrier for synchronizing the execution of threads. More...
 
MutexLockType::Pointer m_CentroidsModificationAttributesLock
 Mutex lock used to protect the modification of attributes wich are accessed through different threads. More...
 
KernelDistanceMetricPointer m_KernelDistanceMetric
 Pointer to the kernel distance metric to be used. More...
 
double m_P
 Exponent that controls the relevance of the memberships in the second step of the algorithm (when the spatial information is introduced as in the SFCM). More...
 
double m_Q
 Exponent that controls the relevance of the function h in the second step of the algorithm (when the spatial information is introduced as in the SFCM). More...
 
StructuringElementType m_StructuringElement
 Structuring element of the shaped neighborhood iterator. More...
 
- Protected Attributes inherited from itk::FuzzyClassifierInitializationImageFilter< TInputImage, double, double >
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::MSKFCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >

Performs Modified Spatial Kernelized Fuzzy C-Means (MSKFCM) Classification on an image.

This implementation is a modified version of the algorithm MSFKCM proposed by Castro et al. in the paper "Comparison of various fuzzy clustering algorithms in the detection of ROI in lung CT and a modified kernelized-spatial fuzzy c-means algorithm" (Proc. of 10th IEEE Int. Conf. On Inf. Tech. and Appl. in Biom., Corfu, Greece, 2010). This modification consists in the combination of the algorithms SFCM (as in the MSFKCM version) and the KFCM (instead of the KFCM used in the MSFKCM version). The KFCM algorithm was presented in S. C. Chen et al.'s paper "Robust Image Segmentation Using FCM With Spatial Constraints Based on New Kernel-Induced Distance Measure" (IEEE Transactions on Systems, Man, and Cybernetics - Part B: Cybernetics, vol. 34, no. 4, August 2004)

MSKFCMClassifierInitializationImageFilter 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.

Caveats
The user should set the RBF kernel distance metric.
Version
0.1
Author
Alberto Rey, Alfonso Castro and Bernardino Arcay. University of A Coruña. Spain
See also
FuzzyClassifierInitializationImageFilter
FCMClassifierInitializationImageFilter
KFCMSClassifierInitializationImageFilter
MSFKCMClassifierInitializationImageFilter
FuzzyClassifierImageFilter

Member Typedef Documentation

◆ BarrierType

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef itk::Barrier itk::MSKFCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::BarrierType

Type definitions for barrier class used to synchronize threaded execution.

◆ CentroidArrayType

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

◆ CentroidNumericTraitsType

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

Other centroid typedefs.

◆ CentroidType

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef Superclass::CentroidType itk::MSKFCMClassifierInitializationImageFilter< 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::MSKFCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::CentroidValueNumericTraitsType

◆ CentroidValueType

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

◆ ConstPointer

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

◆ InputImageIndexType

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef Superclass::InputImageIndexType itk::MSKFCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::InputImageIndexType

◆ InputImagePixelType

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

◆ InputImagePixelValueType

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef Superclass::InputImagePixelValueType itk::MSKFCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::InputImagePixelValueType

◆ InputImageRegionType

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

◆ InputImageSizeType

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef Superclass::InputImageSizeType itk::MSKFCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::InputImageSizeType

◆ InputImageType

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef Superclass::InputImageType itk::MSKFCMClassifierInitializationImageFilter< 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::MSKFCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::InternalImageConstIterator

◆ InternalImageConstPointer

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

◆ InternalImagePointer

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

◆ InternalImageType

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

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

This image is used for internal processing.

◆ KernelDistanceMetricPointer

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef KernelDistanceMetricType::Pointer itk::MSKFCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::KernelDistanceMetricPointer

◆ KernelDistanceMetricType

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef Statistics::KernelInducedDistanceMetric< CentroidType > itk::MSKFCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::KernelDistanceMetricType

Type definitions for kernel distance metric measure to be used.

◆ MembershipImageConstShapedNeighborhoodIterator

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef ConstShapedNeighborhoodIterator< MembershipImageType > itk::MSKFCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::MembershipImageConstShapedNeighborhoodIterator

◆ MembershipImageIterator

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

◆ MembershipImagePixelType

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

◆ MembershipImagePointer

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

◆ MembershipImageType

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef Superclass::MembershipImageType itk::MSKFCMClassifierInitializationImageFilter< 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::MSKFCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::MembershipValueNumericTraitsType

◆ MembershipValueType

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

◆ MutexLockType

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

Type definitions for mutex lock.

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

◆ NeighborhoodRadiusType

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef itk::Vector< unsigned int, itkGetStaticConstMacro(InputImageDimension) > itk::MSKFCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::NeighborhoodRadiusType

Neighborhood region radius typedef.

◆ OutputImageRegionType

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

Other membership typedefs.

◆ Pointer

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

◆ Self

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

Standard class typedefs.

◆ StructuringElementRadiusType

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef StructuringElementType::RadiusType itk::MSKFCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::StructuringElementRadiusType

◆ StructuringElementType

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
typedef itk::FlatStructuringElement< itkGetStaticConstMacro(InputImageDimension) > itk::MSKFCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::StructuringElementType

Structuring element typedef.

◆ Superclass

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

Constructor & Destructor Documentation

◆ MSKFCMClassifierInitializationImageFilter()

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

Constructor.

◆ ~MSKFCMClassifierInitializationImageFilter()

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

Destructor.

Member Function Documentation

◆ AfterThreadedGenerateData()

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

MSKFCMClassifierInitializationImageFilter 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 MSKFCM algorithm and will update the centroids and calculate the error.

◆ BeforeThreadedGenerateData()

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

MSKFCMClassifierInitializationImageFilter 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 MSKFCM algorithm and will store the old values of the centroids and initialize some variables used internally.

◆ Initialize()

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
void itk::MSKFCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::Initialize ( )
overrideprotectedvirtual

Initialize the barrier used for synchronizing the execution of threads.

Reimplemented from itk::FuzzyClassifierInitializationImageFilter< TInputImage, double, double >.

◆ itkGetConstMacro() [1/2]

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
itk::MSKFCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::itkGetConstMacro ( ,
double   
)

Get the exponent p that controls the relevance of the memberships in the second step of the algorithm (when the spatial information is introduced as in the SFCM).

◆ itkGetConstMacro() [2/2]

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
itk::MSKFCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::itkGetConstMacro ( ,
double   
)

Get the exponent q that controls the relevance of the function h in the second step of the algorithm (when the spatial information is introduced as in the SFCM).

◆ itkNewMacro()

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

Method for creation through the object factory.

◆ itkSetMacro() [1/2]

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
itk::MSKFCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::itkSetMacro ( ,
double   
)

Set the exponent p that controls the relevance of the memberships in the second step of the algorithm (when the spatial information is introduced as in the SFCM).

◆ itkSetMacro() [2/2]

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
itk::MSKFCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::itkSetMacro ( ,
double   
)

Set the exponent q that controls the relevance of the function h in the second step of the algorithm (when the spatial information is introduced as in the SFCM).

◆ itkStaticConstMacro()

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
itk::MSKFCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::itkStaticConstMacro ( InputImageDimension  ,
unsigned int  ,
InputImageType::ImageDimension   
)

Extract dimension from input image.

◆ itkTypeMacro()

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

Run-time type information (and related methods).

◆ PrintSelf()

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
void itk::MSKFCMClassifierInitializationImageFilter< 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.

◆ SetInput()

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
void itk::MSKFCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::SetInput ( const InputImageType input)
override

Set the input image of this process object.

This method calls Superclass::SetInput() and allocates the temporary membership image.

◆ SetKernelDistanceMetric()

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
virtual void itk::MSKFCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::SetKernelDistanceMetric ( KernelDistanceMetricPointer  kernelDistanceMetricPtr)
virtual

Set the pointer to the kernel distance metric to be used.

This kernel distance should be a RBF kernel distance metric.

◆ SetNumberOfClasses()

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
void itk::MSKFCMClassifierInitializationImageFilter< 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 and the length of the vector of the temporary membership matrix.

Reimplemented from itk::FuzzyClassifierInitializationImageFilter< TInputImage, double, double >.

◆ SetStructuringElement()

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
void itk::MSKFCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::SetStructuringElement ( StructuringElementType structuringEl)

Set the structuring element to be used in the shaped neighborhood iterator.

◆ ThreadedGenerateData()

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

MSKFCMClassifierInitializationImageFilter 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 MSKFCM 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_Barrier

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
BarrierType::Pointer itk::MSKFCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::m_Barrier
protected

Standard barrier for synchronizing the execution of threads.

◆ m_CentroidsModificationAttributesLock

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

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

◆ m_KernelDistanceMetric

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
KernelDistanceMetricPointer itk::MSKFCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::m_KernelDistanceMetric
protected

Pointer to the kernel distance metric to be used.

◆ m_P

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
double itk::MSKFCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::m_P
protected

Exponent that controls the relevance of the memberships in the second step of the algorithm (when the spatial information is introduced as in the SFCM).

◆ m_Q

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
double itk::MSKFCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::m_Q
protected

Exponent that controls the relevance of the function h in the second step of the algorithm (when the spatial information is introduced as in the SFCM).

◆ m_StructuringElement

template<class TInputImage , class TProbabilityPrecision = double, class TCentroidValuePrecision = double>
StructuringElementType itk::MSKFCMClassifierInitializationImageFilter< TInputImage, TProbabilityPrecision, TCentroidValuePrecision >::m_StructuringElement
protected

Structuring element of the shaped neighborhood iterator.


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