1 // =========================================================================
2 // @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
3 // =========================================================================
4 #ifndef __DijkstraWithMeanAndVariance__h__
5 #define __DijkstraWithMeanAndVariance__h__
7 #include <fpa/Common/IncrementalMeanAndVariance.h>
8 #include <fpa/Filters/Image/Dijkstra.h>
9 #include <fpa/Functors/Dijkstra/Image/Gaussian.h>
13 template< class _TInput, class _TOutput >
14 class DijkstraWithMeanAndVariance
15 : public fpa::Filters::Image::Dijkstra< _TInput, _TOutput >
18 typedef fpa::Filters::Image::Dijkstra< _TInput, _TOutput > Superclass;
19 typedef DijkstraWithMeanAndVariance Self;
20 typedef itk::SmartPointer< Self > Pointer;
21 typedef itk::SmartPointer< const Self > ConstPointer;
23 typedef typename Superclass::TTraits TTraits;
24 fpaTraitsMacro( typename TTraits );
25 typedef fpa::Common::IncrementalMeanAndVariance TMeanAndVar;
29 itkTypeMacro( DijkstraWithMeanAndVariance, fpa::Image::Dijkstra );
31 itkGetConstMacro( MinVertex, TVertex );
32 itkGetConstMacro( MaxVertex, TVertex );
35 double GetMean( ) const;
36 double GetDeviation( ) const;
37 double GetVariance( ) const;
40 DijkstraWithMeanAndVariance( );
41 virtual ~DijkstraWithMeanAndVariance( );
43 virtual void _BeforeGenerateData( ) override;
44 virtual void _PostComputeOutputValue( TNode& n ) override;
47 // Purposely not implemented
48 DijkstraWithMeanAndVariance( const Self& other );
49 Self& operator=( const Self& other );
52 TMeanAndVar m_MeanAndVar;
57 #ifndef ITK_MANUAL_INSTANTIATION
58 # include "DijkstraWithMeanAndVariance.hxx"
59 #endif // ITK_MANUAL_INSTANTIATION
60 #endif // __DijkstraWithMeanAndVariance__h__