1 #ifndef __fpa__Image__SkeletonFilter__h__
2 #define __fpa__Image__SkeletonFilter__h__
4 #include <itkProcessObject.h>
5 #include <fpa/Image/MinimumSpanningTree.h>
6 #include <cpExtensions/DataStructures/Skeleton.h>
15 template< class _TDistanceMap, class _TCostMap >
17 : public itk::ProcessObject
20 typedef SkeletonFilter Self;
21 typedef itk::ProcessObject Superclass;
22 typedef itk::SmartPointer< Self > Pointer;
23 typedef itk::SmartPointer< const Self > ConstPointer;
25 #ifdef ITK_USE_CONCEPT_CHECKING
28 ( itk::Concept::SameDimension< _TDistanceMap::ImageDimension, _TCostMap::ImageDimension > )
31 typedef _TDistanceMap TDistanceMap;
32 typedef _TCostMap TCostMap;
33 typedef typename TCostMap::IndexType TIndex;
34 typedef MinimumSpanningTree< TCostMap::ImageDimension > TMST;
36 cpExtensions::DataStructures::Skeleton< TCostMap::ImageDimension >
40 itk::Functor::IndexLexicographicCompare< _TCostMap::ImageDimension >
42 typedef std::set< TIndex, TIndexCompare > TIndicesData;
43 typedef itk::SimpleDataObjectDecorator< TIndicesData > TIndices;
47 itkTypeMacro( fpa::Image::SkeletonFilter, itk::Object );
50 _TDistanceMap* GetDistanceMap( );
51 const _TDistanceMap* GetDistanceMap( ) const;
52 void SetDistanceMap( _TDistanceMap* dmap );
54 _TCostMap* GetCostMap( );
55 const _TCostMap* GetCostMap( ) const;
56 void SetCostMap( _TCostMap* cmap );
58 TMST* GetMinimumSpanningTree( );
59 const TMST* GetMinimumSpanningTree( ) const;
60 void SetMinimumSpanningTree( TMST* mst );
62 TIndices* GetEndPoints( );
63 const TIndices* GetEndPoints( ) const;
65 TIndices* GetBifurcations( );
66 const TIndices* GetBifurcations( ) const;
68 TSkeleton* GetSkeleton( );
69 const TSkeleton* GetSkeleton( ) const;
73 virtual ~SkeletonFilter( );
75 virtual void GenerateData( ) fpa_OVERRIDE;
78 const TDistanceMap* dmap,
85 const TDistanceMap* dmap,
89 TIndices* bifurcations,
94 // Purposely not defined
95 SkeletonFilter( const Self& other );
96 Self& operator=( const Self& other );
103 #ifndef ITK_MANUAL_INSTANTIATION
104 # include <fpa/Image/SkeletonFilter.hxx>
105 #endif // ITK_MANUAL_INSTANTIATION
107 #endif // __fpa__Image__SkeletonFilter__h__