ANIMA  4.0
animaModelInitializer.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <itkProcessObject.h>
4 #include <itkGaussianMembershipFunction.h>
5 
6 namespace anima
7 {
8 
15 class ModelInitializer: public itk::ProcessObject
16 {
17 public:
18 
21  typedef itk::ProcessObject Superclass;
22  typedef itk::SmartPointer <Self> Pointer;
23  typedef itk::SmartPointer <const Self> ConstPointer;
24 
26  itkNewMacro(Self);
27 
29  itkTypeMacro(ModelInitializer, itk::ProcessObject);
30 
31  typedef itk::VariableLengthVector<double> MeasurementVectorType;
32  typedef itk::Statistics::GaussianMembershipFunction< MeasurementVectorType > GaussianFunctionType;
33 
36  std::vector<GaussianFunctionType::Pointer> GetInitialization(){return this->m_GaussianModel;}
37  std::vector<double> GetAlphas(){return this->m_Alphas;}
38 
39  itkSetMacro(Verbose, bool)
40  itkGetMacro(Verbose, bool)
41 
42 protected:
43 
44  ModelInitializer(const Self&); //purposely not implemented
45  void operator=(const Self&); //purposely not implemented
46 
48  {
49  m_Verbose = false;
50  }
51  virtual ~ModelInitializer(){}
52 
53  std::vector<double> m_Alphas;
54 
60  std::vector<GaussianFunctionType::Pointer> m_GaussianModel;
61 
62  bool m_Verbose;
63 };
64 
65 }
66 
67 
itk::ProcessObject Superclass
std::vector< GaussianFunctionType::Pointer > GetInitialization()
returns a new initialization for the model
std::vector< double > m_Alphas
itk::SmartPointer< Self > Pointer
Gaussian model initializers Model Initializer represents the processes computing a gaussian model tha...
void operator=(const Self &)
itk::VariableLengthVector< double > MeasurementVectorType
itk::SmartPointer< const Self > ConstPointer
std::vector< GaussianFunctionType::Pointer > m_GaussianModel
itk::Statistics::GaussianMembershipFunction< MeasurementVectorType > GaussianFunctionType
std::vector< double > GetAlphas()