]> Creatis software - FrontAlgorithms.git/blobdiff - lib/fpa/Image/Functors/MFluxMedialness.h
...
[FrontAlgorithms.git] / lib / fpa / Image / Functors / MFluxMedialness.h
diff --git a/lib/fpa/Image/Functors/MFluxMedialness.h b/lib/fpa/Image/Functors/MFluxMedialness.h
new file mode 100644 (file)
index 0000000..76efda3
--- /dev/null
@@ -0,0 +1,78 @@
+#ifndef __FPA__IMAGE__FUNCTORS__MFLUXMEDIALNESS__H__
+#define __FPA__IMAGE__FUNCTORS__MFLUXMEDIALNESS__H__
+
+#include <fpa/Image/Functors/GradientImageFunctionBase.h>
+
+namespace fpa
+{
+  namespace Image
+  {
+    namespace Functors
+    {
+      /**
+       */
+      template< class _TGradient >
+      class MFluxMedialness
+        : public GradientImageFunctionBase< _TGradient >
+      {
+      public:
+        typedef MFluxMedialness                         Self;
+        typedef GradientImageFunctionBase< _TGradient > Superclass;
+        typedef itk::SmartPointer< Self >               Pointer;
+        typedef itk::SmartPointer< const Self >         ConstPointer;
+
+        itkStaticConstMacro( Dimension, unsigned int, Superclass::Dimension );
+
+        typedef typename Superclass::TOutput TOutput;
+        typedef typename Superclass::TScalar TScalar;
+        typedef typename Superclass::TIndex  TIndex;
+        typedef typename Superclass::TVector TVector;
+        typedef typename Superclass::TPoint  TPoint;
+
+        typedef std::vector< double > TRCandidates;
+
+      public:
+        itkNewMacro( Self );
+        itkTypeMacro( MFluxMedialness, GradientImageFunctionBase );
+
+        itkGetConstMacro( RadiusStep, double );
+        itkGetConstMacro( MinRadius, double );
+        itkGetConstMacro( MaxRadius, double );
+        itkGetConstMacro( RadialSampling, unsigned int );
+
+        itkSetMacro( RadiusStep, double );
+        itkSetMacro( MinRadius, double );
+        itkSetMacro( MaxRadius, double );
+        itkSetMacro( RadialSampling, unsigned int );
+
+      protected:
+        MFluxMedialness( );
+        virtual ~MFluxMedialness( );
+
+        virtual TOutput _Evaluate( const TIndex& i ) const;
+
+      private:
+        // Purposely not implemented.
+        MFluxMedialness( const Self& );
+        void operator=( const Self& );
+
+      protected:
+        double       m_MinRadius;
+        double       m_MaxRadius;
+        unsigned int m_RadialSampling;
+        double       m_RadiusStep;
+      };
+
+    } // ecapseman
+
+  } // ecapseman
+
+} // ecapseman
+
+#ifndef ITK_MANUAL_INSTANTIATION
+#include <fpa/Image/Functors/MFluxMedialness.hxx>
+#endif // ITK_MANUAL_INSTANTIATION
+
+#endif // __FPA__IMAGE__FUNCTORS__MFLUXMEDIALNESS__H__
+
+// eof - $RCSfile$