diff --git a/Code/FeatureExtraction/otbCloudDetectionFunctor.h b/Code/FeatureExtraction/otbCloudDetectionFunctor.h
index 2237335b9ae3fc78ccbd8cf6169ebe7826a069db..858fae8dc5658e8606b321c4076780e7fa7cecf1 100644
--- a/Code/FeatureExtraction/otbCloudDetectionFunctor.h
+++ b/Code/FeatureExtraction/otbCloudDetectionFunctor.h
@@ -37,7 +37,7 @@ class CloudDetectionFunctor
 
   CloudDetectionFunctor()
     {
-      m_MinThreshold = 1.0;
+      m_MinThreshold = 0.0;
       m_MaxThreshold = 1.0;
     };
 
diff --git a/Code/FeatureExtraction/otbCloudEstimatorFunctor.h b/Code/FeatureExtraction/otbCloudEstimatorFunctor.h
index d94db3d7be8fff58c8d36da72479a283539f8dcb..23eea02280426166ee4331501a5e444ac5247390 100644
--- a/Code/FeatureExtraction/otbCloudEstimatorFunctor.h
+++ b/Code/FeatureExtraction/otbCloudEstimatorFunctor.h
@@ -43,7 +43,6 @@ class CloudEstimatorFunctor
       m_RefNorm = 2.0;
       m_Variance = 1.0;
       m_Denom = 1.0;
-      m_Coef = 1.0;
     };
 
   ~CloudEstimatorFunctor(){};
@@ -61,7 +60,7 @@ class CloudEstimatorFunctor
         lCurPixNorm += inPix[i]*inPix[i];
       }
       lCurPixNorm = vcl_sqrt(static_cast<double>(lCurPixNorm));
-      lGaussianCoef = m_Coef * vcl_exp(- vcl_pow(((lCurPixNorm-m_RefNorm)/m_RefNorm),2) / m_Denom ) ;
+      lGaussianCoef = vcl_exp(- vcl_pow((lCurPixNorm-m_RefNorm),2) / m_Denom ) ;
 
       // Reverse the SpectralAngle values and set them between [0;1]
       lRes =  lGaussianCoef * ((M_PI-m_SpectralAngleFunctor(inPix)) / M_PI);
@@ -72,22 +71,22 @@ class CloudEstimatorFunctor
     }
 
   void SetReferencePixel( TInput ref )
-    { 
+    {
       m_ReferencePixel = ref;
       m_SpectralAngleFunctor.SetReferencePixel(ref);
       m_RefNorm = 0.0;
       for(unsigned int i = 0; i<ref.Size(); i++)
-    {
-      m_RefNorm += ref[i]*ref[i];
-    }
+      {
+        m_RefNorm += ref[i]*ref[i];
+      }
       m_RefNorm = vcl_sqrt(static_cast<double>(m_RefNorm)); 
+      SetVariance(m_Variance);
     };
 
   void SetVariance(double variance)
     {
       m_Variance = variance;
-      m_Denom = 2 * variance * variance;
-      m_Coef = 1/( variance * vcl_sqrt(2*M_PI) );
+      m_Denom = 2 * variance * variance * m_RefNorm * m_RefNorm;
     }
 
   TInput GetReferencePixel(){ return m_ReferencePixel; };
@@ -99,7 +98,6 @@ class CloudEstimatorFunctor
   double m_RefNorm;
   double m_Variance;
   double m_Denom;
-  double m_Coef;
 
 };
 
diff --git a/Testing/Code/FeatureExtraction/CMakeLists.txt b/Testing/Code/FeatureExtraction/CMakeLists.txt
index 374c6914d3dbbfada0e001ccdde38875d4b95617..7361936bf1910e7d94b8cb3db3e73b7afd24baf8 100644
--- a/Testing/Code/FeatureExtraction/CMakeLists.txt
+++ b/Testing/Code/FeatureExtraction/CMakeLists.txt
@@ -1008,7 +1008,7 @@ ADD_TEST(feTvCloudEstimatorFilter ${FEATUREEXTRACTION_TESTS11}
     731
     500
     632
-    0.20    # variance
+    0.25    # variance
 )
 
 # -------            otb::CloudDetectionFilterNew   -------------
@@ -1027,9 +1027,9 @@ ADD_TEST(feTvCloudDetectionFilter ${FEATUREEXTRACTION_TESTS11}
      731
      500
      632
-     0.20   # variance
-     1.2    # minthreshold
-     2.0    # maxthreshold
+     0.25   # variance
+     0.95   # minthreshold
+     1.0    # maxthreshold
  )