3 #include "itkProcessObject.h" 4 #include "itkGaussianMembershipFunction.h" 12 template <
typename TInputImage,
typename TMaskImage>
61 virtual void Update() ITK_OVERRIDE;
63 virtual bool maximization(std::vector<GaussianFunctionType::Pointer> &newModel, std::vector<double> &newAlphas);
66 double likelihood(GaussianFunctionType::CovarianceMatrixType *invCovariance=NULL,
double *detCovariance=NULL);
68 double computeDistance(std::vector<GaussianFunctionType::Pointer> &newModel);
89 void SetMask(
const TMaskImage* mask);
90 typename TMaskImage::ConstPointer
GetMask();
92 itkSetMacro(Likelihood,
double);
93 itkGetMacro(Likelihood,
double);
95 itkSetMacro(ModelMinDistance,
double);
96 itkGetMacro(ModelMinDistance,
double);
98 itkSetMacro(MaxIterations,
unsigned int);
99 itkGetMacro(MaxIterations,
unsigned int);
101 itkSetMacro(Verbose,
bool);
102 itkGetMacro(Verbose,
bool);
itk::VariableLengthVector< NumericType > MeasurementVectorType
InputImageType::ConstPointer InputImageConstPointer
std::vector< MeasureType > Intensities
unsigned int m_IndexImage6
void SetInputImage1(const TInputImage *image)
virtual double expectation()
unsigned int m_IndexImage4
Gaussian Model estimator Class performing expectation-maximation algorithm.
unsigned int m_nbMaxImages
Histogram m_JointHistogram
joint histogram The points stored here will be used for estimate de model
TInputImage::ConstPointer GetInputImage1()
Histogram GetJointHistogram()
return joint histogram
itk::ProcessObject Superclass
void SetMask(const TMaskImage *mask)
itk::ImageRegionConstIterator< MaskImageType > MaskConstIteratorType
Histogram m_JointHistogramInitial
void SetInitialAlphas(std::vector< double > &theValue)
unsigned int m_IndexImage5
virtual void Update() ITK_OVERRIDE
unsigned int m_IndexImage1
TInputImage::ConstPointer GetInputImage2()
void createJointHistogram()
unsigned int m_MaxIterations
GenericContainer m_APosterioriProbability
void SetInputImage5(const TInputImage *image)
double likelihood(GaussianFunctionType::CovarianceMatrixType *invCovariance=NULL, double *detCovariance=NULL)
itk::SmartPointer< Self > Pointer
itk::ImageRegionIterator< MaskImageType > MaskIteratorType
virtual bool maximization(std::vector< GaussianFunctionType::Pointer > &newModel, std::vector< double > &newAlphas)
void SetInputImage4(const TInputImage *image)
unsigned int m_IndexImage2
std::vector< InputImageConstPointer > m_ImagesVector
unsigned short MeasureType
itk::SmartPointer< const Self > ConstPointer
std::map< Intensities, Ocurrences > Histogram
itk::ImageRegionConstIterator< InputImageType > InputConstIteratorType
TInputImage::ConstPointer GetInputImage5()
unsigned int m_IndexImage3
std::vector< GaussianFunctionType::Pointer > m_GaussianModel
TInputImage::ConstPointer GetInputImage3()
void SetInitialGaussianModel(std::vector< GaussianFunctionType::Pointer > &theValue)
Set model to be estimated.
TInputImage::ConstPointer GetInputImage4()
void operator=(const Self &)
GenericContainer GetAPosterioriProbability()
double computeDistance(std::vector< GaussianFunctionType::Pointer > &newModel)
virtual ~GaussianEMEstimator()
std::vector< double > m_Alphas
model to be estimated (and solution if already run)
std::vector< double > GetAlphas()
double m_ModelMinDistance
void SetInputImage2(const TInputImage *image)
std::vector< GaussianFunctionType::Pointer > GetGaussianModel()
TInputImage InputImageType
TMaskImage::ConstPointer GetMask()
itk::Statistics::GaussianMembershipFunction< MeasurementVectorType > GaussianFunctionType
void SetInputImage3(const TInputImage *image)
std::map< Intensities, std::vector< Ocurrences > > GenericContainer