_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 );
}
// -------------------------------------------------------------------------
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 );
} // 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
{