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 template< class V, class M >
50 void GetModel( V& m, M& E ) const;
55 void AddSample( const V& sample );
57 void AddSample( const S& s_x, const S& s_y, ... );
60 IterativeGaussianModelEstimator( );
61 virtual ~IterativeGaussianModelEstimator( );
64 // Purposely not implemented
65 IterativeGaussianModelEstimator( const Self& other );
66 void operator=( const Self& other );
80 #include <cpPlugins/Extensions/Algorithms/IterativeGaussianModelEstimator.hxx>
82 #endif // __CPPLUGINS__EXTENSIONS__ALGORITHMS__ITERATIVEGAUSSIANMODELESTIMATOR__H__