]> Creatis software - cpPlugins.git/blob - lib/cpExtensions/Algorithms/MFluxMedialness.h
Cast image filter added. ROI filter modified.
[cpPlugins.git] / lib / cpExtensions / Algorithms / MFluxMedialness.h
1 #ifndef __CPEXTENSIONS__ALGORITHMS__MFLUXMEDIALNESS__H__
2 #define __CPEXTENSIONS__ALGORITHMS__MFLUXMEDIALNESS__H__
3
4 #include <cpExtensions/Algorithms/GradientImageFunctionBase.h>
5
6 namespace cpExtensions
7 {
8   namespace Algorithms
9   {
10     /**
11      */
12     template< class _TGradient, class _TMask = itk::Image< unsigned char, _TGradient::ImageDimension > >
13     class MFluxMedialness
14       : public GradientImageFunctionBase< _TGradient, _TMask >
15     {
16     public:
17       typedef MFluxMedialness                                 Self;
18       typedef GradientImageFunctionBase< _TGradient, _TMask > Superclass;
19       typedef itk::SmartPointer< Self >                       Pointer;
20       typedef itk::SmartPointer< const Self >                 ConstPointer;
21
22       itkStaticConstMacro( Dimension, unsigned int, Superclass::Dimension );
23
24       typedef typename Superclass::TOutput TOutput;
25       typedef typename Superclass::TScalar TScalar;
26       typedef typename Superclass::TIndex  TIndex;
27       typedef typename Superclass::TVector TVector;
28       typedef typename Superclass::TPoint  TPoint;
29
30       typedef std::vector< double > TRCandidates;
31
32     public:
33       itkNewMacro( Self );
34       itkTypeMacro( MFluxMedialness, GradientImageFunctionBase );
35
36       itkGetConstMacro( RadiusStep, double );
37       itkGetConstMacro( MinRadius, double );
38       itkGetConstMacro( MaxRadius, double );
39       itkGetConstMacro( RadialSampling, unsigned int );
40
41       itkSetMacro( RadiusStep, double );
42       itkSetMacro( MinRadius, double );
43       itkSetMacro( MaxRadius, double );
44       itkSetMacro( RadialSampling, unsigned int );
45
46     protected:
47       MFluxMedialness( );
48       virtual ~MFluxMedialness( );
49
50       virtual TOutput _Evaluate( const TIndex& i ) const cpExtensions_OVERRIDE;
51
52     private:
53       // Purposely not implemented.
54       MFluxMedialness( const Self& );
55       void operator=( const Self& );
56
57     protected:
58       double       m_MinRadius;
59       double       m_MaxRadius;
60       unsigned int m_RadialSampling;
61       double       m_RadiusStep;
62     };
63
64   } // ecapseman
65
66 } // ecapseman
67
68 #ifndef ITK_MANUAL_INSTANTIATION
69 #  include <cpExtensions/Algorithms/MFluxMedialness.hxx>
70 #endif // ITK_MANUAL_INSTANTIATION
71
72 #endif // __CPEXTENSIONS__ALGORITHMS__MFLUXMEDIALNESS__H__
73
74 // eof - $RCSfile$