]> Creatis software - FrontAlgorithms.git/blobdiff - lib/fpa/Image/Functors/RegionGrowThresholdFunction.h
...
[FrontAlgorithms.git] / lib / fpa / Image / Functors / RegionGrowThresholdFunction.h
index 739dff4c24beb40c6d76c94e3977bef3d02bc588..55a5d53b7fc63b53f88b59a8442b5b38e109607e 100644 (file)
@@ -1,7 +1,7 @@
 #ifndef __FPA__IMAGE__FUNCTORS__REGIONGROWTHRESHOLDFUNCTION__H__
 #define __FPA__IMAGE__FUNCTORS__REGIONGROWTHRESHOLDFUNCTION__H__
 
-#include <limits>
+#include <itkNumericTraits.h>
 #include <fpa/Image/Functors/RegionGrowAllBelongsFunction.h>
 
 namespace fpa
@@ -24,10 +24,9 @@ namespace fpa
         typedef itk::SmartPointer< const Self >   ConstPointer;
 
         // Superclass' types
-        typedef typename Superclass::TInputImage  TInputImage;
-        typedef typename Superclass::TOutputValue TOutputValue;
-        typedef typename Superclass::TIndex       TIndex;
-        typedef typename I::PixelType             TPixel;
+        typedef I                     TInputImage;
+        typedef typename I::IndexType TIndex;
+        typedef typename I::PixelType TPixel;
 
       public:
         itkNewMacro( Self );
@@ -43,14 +42,15 @@ namespace fpa
         itkSetMacro( UpperThreshold, TPixel );
 
       public:
-        virtual TOutputValue Evaluate( const TIndex& idx ) const
+        virtual bool Evaluate( const TIndex& idx ) const
           {
-            const I* img = this->GetInputImage( );
+            const I* img = this->GetSpace( );
+
             if( img != NULL )
             {
               TPixel v = img->GetPixel( idx );
               return(
-                this->m_LowerThreshold <= v && v < this->m_UpperThreshold
+                !( v < this->m_LowerThreshold || this->m_UpperThreshold < v )
                 );
 
             } // fi
@@ -59,10 +59,11 @@ namespace fpa
 
       protected:
         RegionGrowThresholdFunction( )
-          : Superclass( ),
-            m_LowerThreshold( std::numeric_limits< TPixel >::min( ) ),
-            m_UpperThreshold( std::numeric_limits< TPixel >::max( ) )
-          { }
+          : Superclass( )
+          {
+            itk::NumericTraits< TPixel >::min( this->m_LowerThreshold );
+            itk::NumericTraits< TPixel >::max( this->m_UpperThreshold );
+          }
         virtual ~RegionGrowThresholdFunction( )
           { }