]> Creatis software - FrontAlgorithms.git/blob - appli/CTBronchi/MoriLabelling.h
0a9c58609735f86daea46fd91cb60c9ef4518333
[FrontAlgorithms.git] / appli / CTBronchi / MoriLabelling.h
1 // =========================================================================
2 // @author Leonardo Florez Valencia
3 // @email florez-l@javeriana.edu.co
4 // =========================================================================
5
6 #ifndef __CTBronchi__MoriLabelling__h__
7 #define __CTBronchi__MoriLabelling__h__
8
9 /* TODO
10    #include <fpa/Base/RegionGrow.h>
11    #include <fpa/Base/MarksInterface.h>
12    #include <fpa/Base/Functors/RegionGrow/BinaryThreshold.h>
13    #include <fpa/Image/Algorithm.h>
14    #include <fpa/Image/DefaultTraits.h>
15    #include <fpa/Image/LabelledSeedsInterface.h>
16 */
17
18 namespace CTBronchi
19 {
20   /**
21    */
22   /* TODO
23      template< class _TInputImage, class _TLabelImage, class _TTraits = fpa::Image::DefaultTraits< _TInputImage, _TLabelImage, typename _TLabelImage::PixelType > >
24      class MoriLabelling
25      : public fpa::Base::RegionGrow< fpa::Image::Algorithm< _TTraits, fpa::Base::MarksInterface< _TTraits >, fpa::Image::LabelledSeedsInterface< _TTraits > > >
26      {
27      public:
28      typedef _TInputImage TInputImage;
29      typedef _TLabelImage TLabelImage;
30      typedef _TTraits     TTraits;
31      fpa_Base_TraitTypes( typename TTraits );
32
33      typedef fpa::Base::MarksInterface< TTraits > TMarksInterface;
34      typedef fpa::Image::LabelledSeedsInterface< TTraits > TSeedsInterface;
35      typedef fpa::Image::Algorithm< TTraits, TMarksInterface, TSeedsInterface > TAlgorithm;
36
37      typedef MoriLabelling                       Self;
38      typedef fpa::Base::RegionGrow< TAlgorithm > Superclass;
39      typedef itk::SmartPointer< Self >           Pointer;
40      typedef itk::SmartPointer< const Self >     ConstPointer;
41
42      typedef fpa::Base::Functors::RegionGrow::BinaryThreshold< TInputValue > TThresholdFunction;
43
44      public:
45      itkNewMacro( Self );
46      itkTypeMacro( MoriLabelling, fpa::Base::RegionGrow );
47
48      itkGetConstMacro( InsideLabel, TOutputValue );
49      itkSetMacro( InsideLabel, TOutputValue );
50
51      public:
52      const TLabelImage* GetInputLabelImage( ) const;
53      void SetInputLabelImage( TLabelImage* image );
54
55      const TInputImage* GetInputRawImage( ) const;
56      void SetInputRawImage( TInputImage* image );
57
58      TInputValue GetUpperThreshold( ) const;
59      void SetUpperThreshold( TInputValue t );
60
61      TOutputValue GetOutsideValue( ) const;
62      void SetOutsideLabel( TOutputValue o );
63
64      protected:
65      MoriLabelling( );
66      virtual ~MoriLabelling( );
67
68      virtual TNodes _UnifySeeds( ) override;
69      virtual void _UpdateOutputValue( TNode& n ) override;
70
71      private:
72      // Purposely not implemented.
73      MoriLabelling( const Self& other );
74      Self& operator=( const Self& other );
75
76      protected:
77      TOutputValue m_InsideLabel;
78      };
79   */
80
81 } // ecapseman
82
83 #ifndef ITK_MANUAL_INSTANTIATION
84 #  include <CTBronchi/MoriLabelling.hxx>
85 #endif // ITK_MANUAL_INSTANTIATION
86
87 #endif // __CTBronchi__MoriLabelling__h__
88
89 // eof - $RCSfile$