]> Creatis software - FrontAlgorithms.git/blob - lib/fpa/Filters/Image/RandomWalker.h
...
[FrontAlgorithms.git] / lib / fpa / Filters / Image / RandomWalker.h
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__
7
8 #include <fpa/Filters/RandomWalker.h>
9 #include <fpa/Filters/Image/Interface.h>
10 #include <fpa/Filters/Image/RandomWalkerTraits.h>
11
12 namespace fpa
13 {
14   namespace Filters
15   {
16     namespace Image
17     {
18       /**
19        */
20       template< class _TInputImage, class _TLabelImage, class _TCost = float, class _TTraits = fpa::Filters::Image::RandomWalkerTraits< _TInputImage, _TLabelImage, _TCost > >
21       class RandomWalker
22         : public fpa::Filters::RandomWalker< fpa::Filters::Image::Interface< _TTraits > >
23       {
24       public:
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;
32
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;
38
39       public:
40         itkNewMacro( Self );
41
42         fpaFilterInputMacro( InputLabels, _TLabelImage );
43
44       public:
45         TInputImage* GetInputImage( );
46         const TInputImage* GetInputImage( ) const;
47         void SetInputImage( const TInputImage* i );
48
49         TCostsImage* GetOutputCosts( );
50         const TCostsImage* GetOutputCosts( ) const;
51
52         TLabelImage* GetOutputLabels( );
53         const TLabelImage* GetOutputLabels( ) const;
54
55       protected:
56         RandomWalker( );
57         virtual ~RandomWalker( );
58
59         // Filter related methods
60         virtual const itk::DataObject* _GetReferenceInput( ) const override;
61
62       private:
63         RandomWalker( const Self& other );
64         Self& operator=( const Self& other );
65       };
66
67     } // ecapseman
68
69   } // ecapseman
70
71 } // ecapseman
72
73 #ifndef ITK_MANUAL_INSTANTIATION
74 #  include <fpa/Filters/Image/RandomWalker.hxx>
75 #endif // ITK_MANUAL_INSTANTIATION
76 #endif // __fpa__Filters__Image__RandomWalker__h__
77 // eof - $RCSfile$