]> Creatis software - FrontAlgorithms.git/blobdiff - lib/fpa/Image/ExtractAxisFilter.h
...
[FrontAlgorithms.git] / lib / fpa / Image / ExtractAxisFilter.h
index 25eee47ed9315ecb2ab2b576e3c5d60fa9f8f52e..5c659160eefacf58f800043b990a1327b9d9f6d1 100644 (file)
@@ -7,7 +7,7 @@
 #define __fpa__Image__ExtractAxisFilter__h__
 
 #include <itkProcessObject.h>
-#include <itkSignedMaurerDistanceMapImageFilter.h>
+#include <itkImageToImageFilter.h>
 
 #include <fpa/Image/Dijkstra.h>
 #include <fpa/Image/PolyLineParametricPath.h>
@@ -18,7 +18,7 @@ namespace fpa
   {
     /**
      */
-    template< class _TInputImage, class _TScalar, class _TCenterness = itk::SignedMaurerDistanceMapImageFilter< _TInputImage, itk::Image< _TScalar, _TInputImage::ImageDimension > > >
+    template< class _TInputImage, class _TScalar >
     class ExtractAxisFilter
       : public itk::ProcessObject
     {
@@ -30,18 +30,20 @@ namespace fpa
 
       typedef _TInputImage TInputImage;
       typedef _TScalar     TScalar;
-      typedef _TCenterness TCenterness;
+      typedef typename TInputImage::IndexType TIndex;
+      typedef typename TInputImage::PointType TPoint;
+
       itkStaticConstMacro(
         Dimension,
         unsigned int,
         TInputImage::ImageDimension
         );
 
-      typedef typename TCenterness::OutputImageType TOutputImage;
-      typedef typename TInputImage::IndexType       TIndex;
+      typedef itk::Image< TScalar, Self::Dimension > TScalarImage;
+      typedef itk::ImageToImageFilter< TInputImage, TScalarImage > TCenterness;
 
       typedef fpa::Image::PolyLineParametricPath< Self::Dimension > TPath;
-      typedef fpa::Image::Dijkstra< TOutputImage, TOutputImage > TDijkstra;
+      typedef fpa::Image::Dijkstra< TScalarImage, TScalarImage > TDijkstra;
 
     public:
       itkNewMacro( Self );
@@ -49,11 +51,18 @@ namespace fpa
 
       itkGetConstObjectMacro( Centerness, TCenterness );
       itkGetObjectMacro( Centerness, TCenterness );
+      itkSetObjectMacro( Centerness, TCenterness );
+
+      itkGetConstMacro( StartIndex, TIndex );
+      itkSetMacro( StartIndex, TIndex );
+
+      itkGetConstMacro( EndIndex, TIndex );
+      itkSetMacro( EndIndex, TIndex );
 
     public:
       virtual itk::ModifiedTimeType GetMTime( ) const override;
 
-      virtual void AddSeed( const TVertex& seed );
+      virtual void AddSeed( const TIndex& seed );
       virtual void AddSeed( const TPoint& seed );
       virtual void ClearSeeds( );
 
@@ -77,7 +86,10 @@ namespace fpa
 
     protected:
       typename TCenterness::Pointer m_Centerness;
-      typename TDijkstra::Pointer m_Dijkstra;
+      typename TDijkstra::Pointer   m_Dijkstra;
+
+      TIndex m_StartIndex;
+      TIndex m_EndIndex;
     };
 
   } // ecapseman