]> Creatis software - FrontAlgorithms.git/commitdiff
...
authorLeonardo Flórez-Valencia <florez-l@javeriana.edu.co>
Thu, 1 Dec 2016 22:24:23 +0000 (17:24 -0500)
committerLeonardo Flórez-Valencia <florez-l@javeriana.edu.co>
Thu, 1 Dec 2016 22:24:23 +0000 (17:24 -0500)
plugins/ImageAlgorithms/RegionGrow.cxx
plugins/RegionGrowFunctors/BinaryThreshold.cxx

index f620b719d8b4041787a1f09284fe71803b8cc8bf..801c7f002a42045084355d4ffeccfb7acf274f89 100644 (file)
@@ -37,14 +37,15 @@ void fpaPluginsImageAlgorithms::RegionGrow::
 _GD0( _TImage* image )
 {
   auto rtype = this->m_Parameters.GetSelectedChoice( "ResultType" );
-  if( rtype == "char" ) this->_GD1< _TImage, char >( image );
-  if( rtype == "uchar" ) this->_GD1< _TImage, unsigned char >( image );
-  if( rtype == "short" ) this->_GD1< _TImage, short >( image );
-  if( rtype == "ushort" ) this->_GD1< _TImage, unsigned short >( image );
-  if( rtype == "int" ) this->_GD1< _TImage, int >( image );
-  if( rtype == "uint" ) this->_GD1< _TImage, unsigned int >( image );
-  if( rtype == "long" ) this->_GD1< _TImage, long >( image );
-  if( rtype == "ulong" ) this->_GD1< _TImage, unsigned long >( image );
+  if( rtype == "char" )        this->_GD1< _TImage, char >( image );
+  else if( rtype == "uchar" )  this->_GD1< _TImage, unsigned char >( image );
+  else if( rtype == "short" )  this->_GD1< _TImage, short >( image );
+  else if( rtype == "ushort" ) this->_GD1< _TImage, unsigned short >( image );
+  else if( rtype == "int" )    this->_GD1< _TImage, int >( image );
+  else if( rtype == "uint" )   this->_GD1< _TImage, unsigned int >( image );
+  else if( rtype == "long" )   this->_GD1< _TImage, long >( image );
+  else if( rtype == "ulong" )  this->_GD1< _TImage, unsigned long >( image );
+  else                         this->_GD1< _TImage, char >( image );
 }
 
 // -------------------------------------------------------------------------
index 05010ab4974efd39bdf28d082e29b491dcbe711e..68882724a884a5b529177fe5402da189210764d2 100644 (file)
@@ -80,6 +80,7 @@ _GD0( _TImage* image )
 
     typename _TImage::SizeType r;
     r.Fill( this->m_Parameters.GetUint( "Radius" ) );
+
     _TInIt iIt( r, image, image->GetRequestedRegion( ) );
     double v_s1 = double( 0 );
     double v_s2 = double( 0 );
@@ -101,10 +102,15 @@ _GD0( _TImage* image )
       } // rof
 
     } // rof
+    double m = v_s1 / v_n;
     double s = ( v_s2 - ( ( v_s1 * v_s1 ) / v_n ) ) / ( v_n - double( 1 ) );
-    s = std::sqrt( s ) / double( 2 );
+    s = std::sqrt( s );
+    v_min = m - s;
+    v_max = m + s;
     f->SetLowerThreshold( v_min );
     f->SetUpperThreshold( v_max );
+    this->m_Parameters.SetReal( "LowerThreshold", f->GetLowerThreshold( ) );
+    this->m_Parameters.SetReal( "UpperThreshold", f->GetUpperThreshold( ) );
   }
   else
   {