15 #ifndef itkSimpleKMeansClusteringImageFilter_h
16 #define itkSimpleKMeansClusteringImageFilter_h
18 #include <itkImageToImageFilter.h>
20 #include <itkWeightedCentroidKdTreeGenerator.h>
21 #include <itkKdTreeBasedKmeansEstimator.h>
22 #include <itkListSample.h>
31 template <
class TInputImage,
class TInputMask,
class TOutputImage>
33 public ImageToImageFilter<TInputImage, TOutputImage>
40 typedef ImageToImageFilter<TInputImage,TOutputImage>
Superclass;
57 typedef typename itk::Statistics::ListSample< MeasurementVectorType >
SampleType ;
59 typedef typename TreeGeneratorType::KdTreeType
TreeType;
60 typedef itk::Statistics::KdTreeBasedKmeansEstimator<TreeType>
EstimatorType;
65 itkSetMacro(InputMask, TInputMaskPointer);
66 itkGetMacro(InputMask, TInputMaskPointer);
67 itkSetMacro(NumberOfClasses,
unsigned int);
68 itkGetMacro(NumberOfClasses,
unsigned int);
69 itkSetMacro(InitialMeans, ParametersType);
70 itkGetMacro(InitialMeans, ParametersType);
71 itkGetMacro(FinalMeans, ParametersType);
72 itkGetMacro(FinalStds, ParametersType);
73 itkGetMacro(RSS,
double);
74 itkGetMacro(NumberOfSamples,
double);
75 itkGetMacro(FinalClassSizes, ParametersType);
76 itkSetMacro(IsEstimateInitValuesUsingMask,
bool);
84 this->m_NumberOfClasses = 3;
86 this->m_NumberOfSamples = 0.0;
87 this->m_IsEstimateInitValuesUsingMask =
false;
100 void EstimateIntensityFromDilatedMask(
double& csfMean,
double& csfSd,
double& gmMean,
double& wmMean);
106 TInputMaskPointer m_InputMask;
110 unsigned int m_NumberOfClasses;
114 ParametersType m_InitialMeans;
118 ParametersType m_FinalMeans;
119 ParametersType m_FinalStds;
120 ParametersType m_FinalClassSizes;
128 double m_NumberOfSamples;
132 bool m_IsEstimateInitValuesUsingMask;
139 #ifndef ITK_MANUAL_INSTANTIATION
140 #include "itkSimpleKMeansClusteringImageFilter.txx"
TreeGeneratorType::KdTreeType TreeType
Definition: itkSimpleKMeansClusteringImageFilter.h:59
EstimatorType::ParametersType ParametersType
Definition: itkSimpleKMeansClusteringImageFilter.h:61
ImageToImageFilter< TInputImage, TOutputImage > Superclass
Definition: itkSimpleKMeansClusteringImageFilter.h:40
SmartPointer< Self > Pointer
Definition: itkSimpleKMeansClusteringImageFilter.h:41
Definition: niftkITKAffineResampleImage.cxx:74
itk::Statistics::ListSample< MeasurementVectorType > SampleType
Definition: itkSimpleKMeansClusteringImageFilter.h:57
SimpleKMeansClusteringImageFilter()
Definition: itkSimpleKMeansClusteringImageFilter.h:82
TInputImage::Pointer TInputImagePointer
Definition: itkSimpleKMeansClusteringImageFilter.h:50
itk::Statistics::WeightedCentroidKdTreeGenerator< SampleType > TreeGeneratorType
Definition: itkSimpleKMeansClusteringImageFilter.h:58
virtual ~SimpleKMeansClusteringImageFilter()
Definition: itkSimpleKMeansClusteringImageFilter.h:92
SmartPointer< const Self > ConstPointer
Definition: itkSimpleKMeansClusteringImageFilter.h:42
Definition: itkSimpleKMeansClusteringImageFilter.h:32
SimpleKMeansClusteringImageFilter Self
Definition: itkSimpleKMeansClusteringImageFilter.h:39
itk::Vector< double, 1 > MeasurementVectorType
Definition: itkSimpleKMeansClusteringImageFilter.h:56
itk::Statistics::KdTreeBasedKmeansEstimator< TreeType > EstimatorType
Definition: itkSimpleKMeansClusteringImageFilter.h:60
TInputMask::Pointer TInputMaskPointer
Definition: itkSimpleKMeansClusteringImageFilter.h:55