1 // =========================================================================
2 // @author Leonardo Florez Valencia (florez-l@javeriana.edu.co)
3 // =========================================================================
4 #ifndef __CTBronchi__Process__h__
5 #define __CTBronchi__Process__h__
9 #include <fpa_ctbronchi_export.h>
15 class FPA_CTBRONCHI_EXPORT Process
18 // Some types and values
19 static const unsigned int Dim = 3;
21 typedef unsigned char TLabel;
22 typedef float TScalar;
23 typedef std::string TString;
26 typedef std::tuple< TString, TString, bool > TStrArg;
27 typedef std::tuple< TScalar, TString, bool > TDblArg;
28 typedef std::map< TString, TStrArg > TStrArgs;
29 typedef std::map< TString, TDblArg > TDblArgs;
32 typedef CTBronchi::Image< TPixel, Dim > TPixelImage;
33 typedef CTBronchi::Image< TLabel, Dim > TLabelImage;
34 typedef CTBronchi::Image< TScalar, Dim > TScalarImage;
37 typedef CTBronchi::Skeleton< Dim > TSkeleton;
40 typedef TPixelImage::TImage::PointType TPoint;
41 typedef TPixelImage::TImage::IndexType TIndex;
42 typedef std::pair< TIndex, TPoint > TSeed;
48 void ParseArguments( int argc, char* argv[] );
52 template< class _TImage >
53 void _Input( _TImage& input );
55 template< class _TInput, class _TVesselness >
56 void _Vesselness( _TInput& input, _TVesselness& vesselness );
58 template< class _TInput, class _TMori, class _TSeed >
59 void _Mori( _TInput& input, _TMori& mori, _TSeed& seed );
61 template< class _TInput, class _TMori, class _TVesselness, class _TLabels >
63 _TInput& input, _TMori& mori, _TVesselness& vesselness, _TLabels& labels
66 template< class _TInput, class _TLabels, class _TFastRW >
67 void _FastRW( _TInput& input, _TLabels& labels, _TFastRW& fastrw );
69 template< class _TInput, class _TLabels, class _TVesselness, class _TSliceRW >
71 _TInput& input, _TLabels& labels, _TVesselness& vesselness, _TSliceRW& slicerw
74 template< class _TInput >
75 void _AndImages( _TInput& a, _TInput& b, _TInput& c );
77 template< class _TInput, class _TSkeleton >
78 void _Skeleton( _TInput& a, _TSkeleton& s, const TString& fname );
85 TLabel m_UndefinedLabel;
87 TLabel m_OutsideLabel;
90 TScalarImage m_Vesselness;
94 TLabelImage m_SliceRW;
97 TSkeleton m_FastRWSkeleton;
98 TSkeleton m_SliceRWSkeleton;
99 TSkeleton m_AndRWSkeleton;
104 #endif // __CTBronchi__Process__h__