1 // =========================================================================
2 // @author Leonardo Florez Valencia
3 // @email florez-l@javeriana.edu.co
4 // =========================================================================
5 #ifndef __fpa__Common__SliceBySliceRandomWalker__h__
6 #define __fpa__Common__SliceBySliceRandomWalker__h__
8 #include <fpa/Config.h>
9 #include <itkImageToImageFilter.h>
17 template< class _TImage, class _TLabels, class _TScalarImage >
18 class SliceBySliceRandomWalker
19 : public itk::ImageToImageFilter< _TImage, _TLabels >
22 typedef _TImage TImage;
23 typedef _TLabels TLabels;
24 typedef _TScalarImage TScalarImage;
26 typedef SliceBySliceRandomWalker Self;
27 typedef itk::ImageToImageFilter< TImage, TLabels > Superclass;
28 typedef itk::SmartPointer< Self > Pointer;
29 typedef itk::SmartPointer< const Self > ConstPointer;
31 typedef typename TImage::PixelType TPixel;
32 typedef typename TLabels::PixelType TLabel;
33 typedef typename TScalarImage::PixelType TScalar;
38 fpa::Common::SliceBySliceRandomWalker, itk::ImageToImageFilter
41 itkGetConstMacro( Epsilon, TScalar );
42 itkSetMacro( Epsilon, TScalar );
44 itkGetConstMacro( Beta, TScalar );
45 itkSetMacro( Beta, TScalar );
47 itkGetConstMacro( VesselnessThreshold, TScalar );
48 itkSetMacro( VesselnessThreshold, TScalar );
50 ivqITKInputMacro( InputLabels, TLabels );
51 ivqITKInputMacro( InputVesselness, TScalarImage );
54 SliceBySliceRandomWalker( );
55 virtual ~SliceBySliceRandomWalker( );
57 virtual void GenerateData( ) override;
60 typename TScalarImage::Pointer& composite,
61 const TLabels* labels,
62 const TScalarImage* vesselness,
63 const TScalar& maxVess
66 template< class _TSlicePtr, class _TInput >
70 typename _TInput::RegionType region
73 template< class _TBinaryTree, class _TData3D, class _TFusion >
75 _TBinaryTree& binaryTree,
76 const _TData3D& data3D,
77 const _TFusion& fusion,
82 // Purposely not implemented
83 SliceBySliceRandomWalker( const Self& other );
84 Self& operator=( const Self& other );
89 TScalar m_VesselnessThreshold;
91 TScalar m_VesselnessValue;
98 #ifndef ITK_MANUAL_INSTANTIATION
99 # include <fpa/Common/SliceBySliceRandomWalker.hxx>
100 #endif // ITK_MANUAL_INSTANTIATION
101 #endif // __fpa__Common__SliceBySliceRandomWalker__h__