1 // -------------------------------------------------------------------------
2 // @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
3 // -------------------------------------------------------------------------
5 #ifndef __CPPLUGINS__EXTENSIONS__ALGORITHMS__ITERATIVEGAUSSIANMODELESTIMATOR__H__
6 #define __CPPLUGINS__EXTENSIONS__ALGORITHMS__ITERATIVEGAUSSIANMODELESTIMATOR__H__
8 #include <itkConceptChecking.h>
10 #include <vnl/vnl_matrix.h>
20 template< class S, unsigned int D >
21 class IterativeGaussianModelEstimator
25 typedef IterativeGaussianModelEstimator Self;
26 typedef itk::Object Superclass;
27 typedef itk::SmartPointer< Self > Pointer;
28 typedef itk::SmartPointer< const Self > ConstPointer;
31 itkStaticConstMacro( Dimension, unsigned int, D );
33 // Begin concept checking
34 #ifdef ITK_USE_CONCEPT_CHECKING
36 ScalarTypeHasFloatResolution,
37 ( itk::Concept::IsFloatingPoint< S > )
40 // End concept checking
42 typedef vnl_matrix< S > TMatrix;
46 itkTypeMacro( IterativeGaussianModelEstimator, itkObject );
49 const unsigned long& GetNumberOfSamples( ) const
50 { return( this->m_N ); }
52 template< class V, class M >
53 void GetModel( V& m, M& E ) const;
58 void AddSample( const V& sample );
60 void AddSample( const S& s_x, const S& s_y, ... );
63 IterativeGaussianModelEstimator( );
64 virtual ~IterativeGaussianModelEstimator( );
67 // Purposely not implemented
68 IterativeGaussianModelEstimator( const Self& other );
69 void operator=( const Self& other );
83 #include <cpPlugins/Extensions/Algorithms/IterativeGaussianModelEstimator.hxx>
85 #endif // __CPPLUGINS__EXTENSIONS__ALGORITHMS__ITERATIVEGAUSSIANMODELESTIMATOR__H__