]> Creatis software - FrontAlgorithms.git/blob - lib/fpa/Image/Mori.h
...
[FrontAlgorithms.git] / lib / fpa / Image / Mori.h
1 // =========================================================================
2 // @author Leonardo Florez Valencia
3 // @email florez-l@javeriana.edu.co
4 // =========================================================================
5
6 #ifndef __fpa__Image__Mori__h__
7 #define __fpa__Image__Mori__h__
8
9 #include <fpa/Base/Mori.h>
10 #include <fpa/Base/MarksInterface.h>
11 #include <fpa/Base/SingleSeedInterface.h>
12 #include <fpa/Image/Algorithm.h>
13 #include <fpa/Image/DefaultTraits.h>
14
15 namespace fpa
16 {
17   namespace Image
18   {
19     /**
20      */
21     template< class _TInputImage, class _TOutputImage, class _TTraits = fpa::Image::DefaultTraits< _TInputImage, _TOutputImage, typename _TOutputImage::PixelType > >
22     class Mori
23       : public fpa::Base::Mori< fpa::Image::Algorithm< _TTraits, fpa::Base::MarksInterface< _TTraits >, fpa::Base::SingleSeedInterface< _TTraits > > >
24     {
25     public:
26       typedef _TInputImage  TInputImage;
27       typedef _TOutputImage TOutputImage;
28       typedef _TTraits      TTraits;
29       typedef fpa::Base::MarksInterface< _TTraits >      TMarksInterface;
30       typedef fpa::Base::SingleSeedInterface< _TTraits > TSeedsInterface;
31       typedef fpa::Image::Algorithm< TTraits, TMarksInterface, TSeedsInterface > TAlgorithm;
32
33       typedef Mori                            Self;
34       typedef fpa::Base::Mori< TAlgorithm >   Superclass;
35       typedef itk::SmartPointer< Self >       Pointer;
36       typedef itk::SmartPointer< const Self > ConstPointer;
37
38       typedef typename TAlgorithm::TMarks TMarks;
39
40     public:
41       itkNewMacro( Self );
42       itkTypeMacro( fpa::Image::Mori, fpa::Base::Mori );
43
44     public:
45       TOutputImage* GetThresholdedOutput( );
46       const TOutputImage* GetThresholdedOutput( ) const;
47
48     protected:
49       Mori( );
50       virtual ~Mori( );
51
52       virtual void _AfterGenerateData( ) override;
53
54     private:
55       // Purposely not implemented.
56       Mori( const Self& other );
57       Self& operator=( const Self& other );
58
59     protected:
60       unsigned long m_ThresholdedOutputIdx;
61     };
62
63   } // ecapseman
64
65 } // ecapseman
66
67 #ifndef ITK_MANUAL_INSTANTIATION
68 #  include <fpa/Image/Mori.hxx>
69 #endif // ITK_MANUAL_INSTANTIATION
70
71 #endif // __fpa__Image__Mori__h__
72
73 // eof - $RCSfile$