]> Creatis software - FrontAlgorithms.git/blobdiff - lib/fpa/Image/RegionGrowWithMultipleThresholds.h
Some more debug... almost there
[FrontAlgorithms.git] / lib / fpa / Image / RegionGrowWithMultipleThresholds.h
index 3efd87a7313547b97e2413205e73fd47ee42a213..b4c3e4e536480c084c1ba040fa3120c3918e99fc 100644 (file)
@@ -2,7 +2,9 @@
 #define __FPA__IMAGE__REGIONGROWWITHMULTIPLETHRESHOLDS__H__
 
 #include <map>
-#include <fpa/Image/RegionGrow.h>
+#include <set>
+#include <fpa/Image/RegionGrowWithMultipleCriteria.h>
+#include <fpa/Image/Functors/RegionGrowThresholdFunction.h>
 
 namespace fpa
 {
@@ -13,18 +15,23 @@ namespace fpa
      */
     template< class I >
     class RegionGrowWithMultipleThresholds
-      : public RegionGrow< I >
+      : public RegionGrowWithMultipleCriteria< I >
     {
     public:
-      typedef RegionGrowWithMultipleThresholds Self;
-      typedef RegionGrow< I >                  Superclass;
-      typedef itk::SmartPointer< Self >        Pointer;
-      typedef itk::SmartPointer< const Self >  ConstPointer;
+      typedef RegionGrowWithMultipleThresholds    Self;
+      typedef RegionGrowWithMultipleCriteria< I > Superclass;
+      typedef itk::SmartPointer< Self >           Pointer;
+      typedef itk::SmartPointer< const Self >     ConstPointer;
 
       typedef typename I::PixelType TPixel;
 
-      typedef std::map< TPixel, unsigned long > THistogram;
-      typedef typename Superclass::TBaseAlgorithm TBaseAlgorithm;
+      typedef std::map< TPixel, unsigned long >        THistogram;
+      typedef typename Superclass::TBaseAlgorithm      TBaseAlgorithm;
+      typedef typename Superclass::TMembershipFunction TMembershipFunction;
+      typedef typename Superclass::TFunctions          TFunctions;
+
+      typedef std::set< TPixel >                                     TThresholds;
+      typedef fpa::Image::Functors::RegionGrowThresholdFunction< I > TFunction;
 
     protected:
       typedef typename TBaseAlgorithm::_TNode _TNode;
@@ -49,6 +56,7 @@ namespace fpa
       virtual ~RegionGrowWithMultipleThresholds( );
 
       virtual bool _UpdateResult( _TNode& n );
+      virtual void _BeforeLoop( );
       virtual void _AfterLoop( );
 
     private:
@@ -56,6 +64,7 @@ namespace fpa
       void operator=( const Self& );                   // Not impl.
 
     protected:
+      TThresholds m_Thresholds;
       double m_DerivativeThreshold;
       THistogram m_Histogram;
     };