1 // =========================================================================
2 // @author Leonardo Florez Valencia
3 // @email florez-l@javeriana.edu.co
4 // =========================================================================
6 #ifndef __fpa__Image__Mori__h__
7 #define __fpa__Image__Mori__h__
9 #include <fpa/Base/Mori.h>
10 #include <fpa/Base/MarksInterface.h>
11 #include <fpa/Base/SingleSeedInterface.h>
12 #include <fpa/Image/Algorithm.h>
20 template< class _TInputImage, class _TOutputImage, class _TFrontId = unsigned char >
22 : public fpa::Base::Mori< fpa::Image::Algorithm< _TInputImage, _TOutputImage, fpa::Base::MarksInterface< typename _TInputImage::IndexType >, fpa::Base::SingleSeedInterface< typename _TInputImage::IndexType, typename _TInputImage::PointType, typename _TInputImage::PixelType, typename _TOutputImage::PixelType, _TFrontId, typename _TInputImage::IndexType::LexicographicCompare > > >
25 typedef _TInputImage TInputImage;
26 typedef _TOutputImage TOutputImage;
27 typedef _TFrontId TFrontId;
29 typedef typename TInputImage::IndexType TVertex;
30 typedef typename TInputImage::PointType TPoint;
31 typedef typename TVertex::LexicographicCompare TVertexCompare;
32 typedef typename TInputImage::PixelType TInputValue;
33 typedef typename TOutputImage::PixelType TOutputValue;
35 typedef fpa::Base::MarksInterface< TVertex > TMarksInterface;
36 typedef fpa::Base::SingleSeedInterface< TVertex, TPoint, TInputValue, TOutputValue, TFrontId, TVertexCompare > TSeedsInterface;
37 typedef fpa::Image::Algorithm< TInputImage, TOutputImage, TMarksInterface, TSeedsInterface > TAlgorithm;
40 typedef fpa::Base::Mori< TAlgorithm > Superclass;
41 typedef itk::SmartPointer< Self > Pointer;
42 typedef itk::SmartPointer< const Self > ConstPointer;
44 typedef typename TSeedsInterface::TNode TNode;
45 typedef typename TSeedsInterface::TNodes TNodes;
46 typedef typename TAlgorithm::TMarks TMarks;
50 itkTypeMacro( fpa::Image::Mori, fpa::Base::Mori );
53 TMarks* GetOutputLevels( )
55 return( this->GetMarks( ) );
57 const TMarks* GetOutputLevels( ) const
59 return( this->GetMarks( ) );
72 // Purposely not implemented.
73 Mori( const Self& other );
74 Self& operator=( const Self& other );
81 #endif // __fpa__Image__Mori__h__