#ifndef __fpa__Base__Functors__GaussianModel__h__ #define __fpa__Base__Functors__GaussianModel__h__ #include #include #include namespace fpa { namespace Base { namespace Functors { /** */ template< class _TInput, class _TOutput > class GaussianModel : public itk::FunctionBase< _TInput, _TOutput > { public: typedef GaussianModel Self; typedef itk::FunctionBase< _TInput, _TOutput > Superclass; typedef itk::SmartPointer< Self > Pointer; typedef itk::SmartPointer< const Self > ConstPointer; typedef _TInput TInput; typedef _TOutput TOutput; // Model estimator typedef cpExtensions::Algorithms::IterativeGaussianModelEstimator< TOutput, 1 > TModel; public: itkNewMacro( Self ); itkTypeMacro( GaussianModel, itk::FunctionBase ); /* TODO itkGetConstMacro( SupportSize, unsigned int ); itkGetConstMacro( MinimumCost, TOutput ); itkGetObjectMacro( Model, TModel ); itkGetConstObjectMacro( Model, TModel ); itkSetMacro( SupportSize, unsigned int ); itkSetMacro( MinimumCost, TOutput ); */ public: virtual TOutput Evaluate( const TInput& x ) const override; protected: GaussianModel( ); virtual ~GaussianModel( ); private: // Purposely not implemented GaussianModel( const Self& other ); Self& operator=( const Self& other ); protected: /* TODO unsigned int m_SupportSize; TOutput m_MinimumCost; typename TModel::Pointer m_Model; */ mutable double m_S1; mutable double m_S2; mutable unsigned long m_N; }; } // ecapseman } // ecapseman } // ecapseman #ifndef ITK_MANUAL_INSTANTIATION # include #endif // ITK_MANUAL_INSTANTIATION #endif // __fpa__Base__Functors__GaussianModel__h__ // eof - $RCSfile$