1 // =========================================================================
2 // @author Leonardo Florez Valencia
3 // @email florez-l@javeriana.edu.co
4 // =========================================================================
5 #ifndef __fpa__Filters__Image__RandomWalker__h__
6 #define __fpa__Filters__Image__RandomWalker__h__
8 #include <fpa/Filters/RandomWalker.h>
9 #include <fpa/Filters/Image/Interface.h>
10 #include <fpa/Filters/Image/RandomWalkerTraits.h>
20 template< class _TInputImage, class _TLabelImage, class _TCost = float, class _TTraits = fpa::Filters::Image::RandomWalkerTraits< _TInputImage, _TLabelImage, _TCost > >
22 : public fpa::Filters::RandomWalker< fpa::Filters::Image::Interface< _TTraits > >
25 typedef _TTraits TTraits;
26 typedef typename TTraits::TInputImage TInputImage;
27 typedef typename TTraits::TLabelImage TLabelImage;
28 typedef typename TTraits::TCost TCost;
29 typedef typename TTraits::TLabel TLabel;
30 typedef typename TTraits::TOutputImage TOutputImage;
31 typedef TOutputImage TCostsImage;
33 typedef fpa::Filters::Image::Interface< TTraits > TInterface;
34 typedef fpa::Filters::RandomWalker< TInterface > Superclass;
35 typedef RandomWalker Self;
36 typedef itk::SmartPointer< Self > Pointer;
37 typedef itk::SmartPointer< const Self > ConstPointer;
42 fpaFilterInputMacro( InputLabels, _TLabelImage );
45 TInputImage* GetInputImage( );
46 const TInputImage* GetInputImage( ) const;
47 void SetInputImage( const TInputImage* i );
49 TCostsImage* GetOutputCosts( );
50 const TCostsImage* GetOutputCosts( ) const;
52 TLabelImage* GetOutputLabels( );
53 const TLabelImage* GetOutputLabels( ) const;
57 virtual ~RandomWalker( );
59 // Filter related methods
60 virtual const itk::DataObject* _GetReferenceInput( ) const override;
63 RandomWalker( const Self& other );
64 Self& operator=( const Self& other );
73 #ifndef ITK_MANUAL_INSTANTIATION
74 # include <fpa/Filters/Image/RandomWalker.hxx>
75 #endif // ITK_MANUAL_INSTANTIATION
76 #endif // __fpa__Filters__Image__RandomWalker__h__