From 2f1159ecc27f0f4e05054124ba003bf543a2e07b Mon Sep 17 00:00:00 2001
From: Emmanuel Christophe <emmanuel.christophe@orfeo-toolbox.org>
Date: Sat, 8 Aug 2009 10:49:46 +0800
Subject: [PATCH] REFAC: cleaning Markov

---
 Code/Markov/otbMRFEnergy.h                    | 17 ++++---
 Code/Markov/otbMRFEnergyEdgeFidelity.h        |  1 -
 Code/Markov/otbMRFEnergyGaussian.h            |  2 -
 .../otbMRFEnergyGaussianClassification.h      |  2 -
 Code/Markov/otbMRFOptimizer.h                 |  8 ++--
 Code/Markov/otbMRFSampler.h                   | 16 +++----
 Code/Markov/otbMRFSamplerRandomMAP.h          | 48 +++++++++----------
 Code/Markov/otbMarkovRandomFieldFilter.h      |  1 -
 Code/Markov/otbMarkovRandomFieldFilter.txx    | 23 ++-------
 9 files changed, 49 insertions(+), 69 deletions(-)

diff --git a/Code/Markov/otbMRFEnergy.h b/Code/Markov/otbMRFEnergy.h
index 9c98ac1c0d..3aafb37c99 100644
--- a/Code/Markov/otbMRFEnergy.h
+++ b/Code/Markov/otbMRFEnergy.h
@@ -133,10 +133,10 @@ public:
 
 protected:
   // The constructor and destructor.
-  MRFEnergy()
-  {
-    m_NumberOfParameters = 1;
-  };
+  MRFEnergy() :
+    m_NumberOfParameters(1),
+    m_Parameters(0)
+  {};
   virtual ~MRFEnergy() {};
   unsigned int m_NumberOfParameters;
   ParametersType m_Parameters;
@@ -221,11 +221,10 @@ public:
 
 protected:
   // The constructor and destructor.
-  MRFEnergy()
-  {
-    m_NumberOfParameters = 1;
-    m_Parameters=0;
-  };
+  MRFEnergy():
+    m_NumberOfParameters(1),
+    m_Parameters(0)
+  {};
   virtual ~MRFEnergy() {};
   unsigned int m_NumberOfParameters;
   ParametersType m_Parameters;
diff --git a/Code/Markov/otbMRFEnergyEdgeFidelity.h b/Code/Markov/otbMRFEnergyEdgeFidelity.h
index 06511e4380..9ce2940f97 100644
--- a/Code/Markov/otbMRFEnergyEdgeFidelity.h
+++ b/Code/Markov/otbMRFEnergyEdgeFidelity.h
@@ -20,7 +20,6 @@
 #define __otbMRFEnergyEdgeFidelity_h
 
 #include "otbMRFEnergy.h"
-#define vnl_math_sqr(x) ((x)*(x))
 
 namespace otb
 {
diff --git a/Code/Markov/otbMRFEnergyGaussian.h b/Code/Markov/otbMRFEnergyGaussian.h
index f939bb3bfd..374cfee978 100644
--- a/Code/Markov/otbMRFEnergyGaussian.h
+++ b/Code/Markov/otbMRFEnergyGaussian.h
@@ -23,8 +23,6 @@
 
 #include "otbMath.h"
 
-#define vnl_math_sqr(x) ((x)*(x))
-
 namespace otb
 {
 /**
diff --git a/Code/Markov/otbMRFEnergyGaussianClassification.h b/Code/Markov/otbMRFEnergyGaussianClassification.h
index d280b5770c..52c0d3b13c 100644
--- a/Code/Markov/otbMRFEnergyGaussianClassification.h
+++ b/Code/Markov/otbMRFEnergyGaussianClassification.h
@@ -21,8 +21,6 @@
 #include "otbMRFEnergy.h"
 #include "otbMath.h"
 
-#define vnl_math_sqr(x) ((x)*(x))
-
 namespace otb
 {
 /**
diff --git a/Code/Markov/otbMRFOptimizer.h b/Code/Markov/otbMRFOptimizer.h
index 1b75bfc5dd..ec343eee07 100644
--- a/Code/Markov/otbMRFOptimizer.h
+++ b/Code/Markov/otbMRFOptimizer.h
@@ -67,10 +67,10 @@ public:
   virtual bool Compute(double deltaEnergy) = 0;
 
 protected:
-  MRFOptimizer()
-  {
-    m_Parameters=1;
-  }
+  MRFOptimizer() :
+    m_NumberOfParameters(1),
+    m_Parameters(1)
+  {}
   virtual ~MRFOptimizer() {}
   unsigned int m_NumberOfParameters;
   ParametersType m_Parameters;
diff --git a/Code/Markov/otbMRFSampler.h b/Code/Markov/otbMRFSampler.h
index be46d94106..e94fd94dde 100644
--- a/Code/Markov/otbMRFSampler.h
+++ b/Code/Markov/otbMRFSampler.h
@@ -94,16 +94,16 @@ protected:
 
 protected:
   // The constructor and destructor.
-  MRFSampler()
+  MRFSampler():
+    m_NumberOfClasses(1),
+    m_EnergyBefore(1.0),
+    m_EnergyAfter(1.0),
+    m_DeltaEnergy(1.0),
+    m_EnergyCurrent(1.0),
+    m_Lambda(1.0)
   {
     m_EnergyRegularization = EnergyRegularizationType::New();
-    m_EnergyFidelity =  EnergyFidelityType::New(),
-                        m_NumberOfClasses =1;
-    m_EnergyBefore = 1.;
-    m_EnergyAfter = 1.;
-    m_DeltaEnergy = 1.;
-    m_EnergyCurrent = 1.;
-    m_Lambda = 1.;
+    m_EnergyFidelity =  EnergyFidelityType::New();
   };
   virtual ~MRFSampler() {};
 
diff --git a/Code/Markov/otbMRFSamplerRandomMAP.h b/Code/Markov/otbMRFSamplerRandomMAP.h
index 1be1680d81..a46218e241 100644
--- a/Code/Markov/otbMRFSamplerRandomMAP.h
+++ b/Code/Markov/otbMRFSamplerRandomMAP.h
@@ -31,7 +31,7 @@ namespace otb
    * This is one sampler to be used int he MRF framework. This sampler select the
    * value randomly according to the apriori probability.
    *
- * The probability is defined from the energy as:
+   * The probability is defined from the energy as:
    *
    *  \f[ P(X=x)= \frac{1}{Z} \exp^{-U(x)}  \f]
    *
@@ -70,15 +70,15 @@ public:
 
   void SetNumberOfClasses(const unsigned int nClasses)
   {
-    if (nClasses != this->m_NumberOfClasses || energiesInvalid == true)
+    if (nClasses != this->m_NumberOfClasses || m_EnergiesInvalid == true)
     {
       this->m_NumberOfClasses = nClasses;
-      if (energy != NULL)
-        free(energy);
-      if (repartitionFunction != NULL)
-        free(repartitionFunction);
-      energy = (double *) calloc(this->m_NumberOfClasses, sizeof(double));
-      repartitionFunction = (double *) calloc(this->m_NumberOfClasses, sizeof(double));
+      if (m_Energy != NULL)
+        free(m_Energy);
+      if (m_RepartitionFunction != NULL)
+        free(m_RepartitionFunction);
+      m_Energy = (double *) calloc(this->m_NumberOfClasses, sizeof(double));
+      m_RepartitionFunction = (double *) calloc(this->m_NumberOfClasses, sizeof(double));
       this->Modified();
     }
   }
@@ -107,9 +107,9 @@ public:
       this->m_EnergyCurrent += this->m_Lambda
                                * this->m_EnergyRegularization->GetValue(itRegul, static_cast<LabelledImagePixelType>(valueCurrent));
 
-      energy[valueCurrent] = this->m_EnergyCurrent;
-      repartitionFunction[valueCurrent] = vcl_exp(-this->m_EnergyCurrent)+totalProba;
-      totalProba = repartitionFunction[valueCurrent];
+      m_Energy[valueCurrent] = this->m_EnergyCurrent;
+      m_RepartitionFunction[valueCurrent] = vcl_exp(-this->m_EnergyCurrent)+totalProba;
+      totalProba = m_RepartitionFunction[valueCurrent];
 
     }
 
@@ -118,7 +118,7 @@ public:
     //double select = (m_Generator->GetIntegerVariate()/(double(RAND_MAX)+1) * totalProba);
     double select = (m_Generator->GetIntegerVariate()/(double(itk::NumericTraits<RandomGeneratorType::IntegerType>::max())+1) * totalProba);
     valueCurrent = 0;
-    while ( valueCurrent<this->GetNumberOfClasses() && repartitionFunction[valueCurrent] <= select)
+    while ( valueCurrent<this->GetNumberOfClasses() && m_RepartitionFunction[valueCurrent] <= select)
     {
       valueCurrent++;
     }
@@ -132,7 +132,7 @@ public:
     if ( this->m_Value != static_cast<LabelledImagePixelType>(valueCurrent))
     {
       this->m_Value = static_cast<LabelledImagePixelType>(valueCurrent);
-      this->m_EnergyAfter = energy[static_cast<unsigned int>(valueCurrent)];
+      this->m_EnergyAfter = m_Energy[static_cast<unsigned int>(valueCurrent)];
     }
 
     this->m_DeltaEnergy=  this->m_EnergyAfter - this->m_EnergyBefore;
@@ -152,26 +152,26 @@ public:
 
 protected:
   // The constructor and destructor.
-  MRFSamplerRandomMAP()
+  MRFSamplerRandomMAP():
+    m_RepartitionFunction(NULL),
+    m_Energy(NULL),
+    m_EnergiesInvalid(true)
   {
-    energy=NULL;
-    repartitionFunction=NULL;
-    energiesInvalid = true;
     m_Generator = RandomGeneratorType::New();
     m_Generator->SetSeed();
   }
   virtual ~MRFSamplerRandomMAP()
   {
-    if (energy != NULL)
-      free(energy);
-    if (repartitionFunction != NULL)
-      free(repartitionFunction);
+    if (m_Energy != NULL)
+      free(m_Energy);
+    if (m_RepartitionFunction != NULL)
+      free(m_RepartitionFunction);
   }
 
 private:
-  double * repartitionFunction;
-  double * energy;
-  bool energiesInvalid;
+  double * m_RepartitionFunction;
+  double * m_Energy;
+  bool m_EnergiesInvalid;
   RandomGeneratorType::Pointer m_Generator;
 };
 }
diff --git a/Code/Markov/otbMarkovRandomFieldFilter.h b/Code/Markov/otbMarkovRandomFieldFilter.h
index 38b8818465..0c2598d98a 100644
--- a/Code/Markov/otbMarkovRandomFieldFilter.h
+++ b/Code/Markov/otbMarkovRandomFieldFilter.h
@@ -367,7 +367,6 @@ protected:
 
   unsigned int              m_NumberOfClasses;
   unsigned int              m_MaximumNumberOfIterations;
-  unsigned int              m_KernelSize;
 
   int                       m_ErrorCounter;
   double                    m_ImageDeltaEnergy;
diff --git a/Code/Markov/otbMarkovRandomFieldFilter.txx b/Code/Markov/otbMarkovRandomFieldFilter.txx
index f88bf3bfe1..3ba9992995 100644
--- a/Code/Markov/otbMarkovRandomFieldFilter.txx
+++ b/Code/Markov/otbMarkovRandomFieldFilter.txx
@@ -22,10 +22,9 @@
 
 namespace otb
 {
-/** ATTENTION : j'ai passe les initialisation dans le constructeur car certaines plateformes (dont NEMO) n'aiment cette maniere d'initialiser*/
 template<class TInputImage, class TClassifiedImage>
 MarkovRandomFieldFilter<TInputImage,TClassifiedImage>
-::MarkovRandomFieldFilter(void)/* :
+::MarkovRandomFieldFilter(void) :
   m_NumberOfClasses(0),
   m_MaximumNumberOfIterations(50),
   m_ErrorCounter(0),
@@ -34,24 +33,12 @@ MarkovRandomFieldFilter<TInputImage,TClassifiedImage>
   m_TotalNumberOfValidPixelsInOutputImage(1),
   m_TotalNumberOfPixelsInInputImage(1),
   m_ErrorTolerance(0.0),
-  m_SmoothingFactor(1),
+  m_SmoothingFactor(1.0),
   m_NumberOfIterations(0),
-  m_StopCondition(MaximumNumberOfIterations),
-  m_ExternalClassificationSet(false)
-             */
+  m_Lambda(1.0),
+  m_ExternalClassificationSet(false),
+  m_StopCondition(MaximumNumberOfIterations)
 {
-  m_NumberOfClasses = 0;
-  m_MaximumNumberOfIterations = 50;
-  m_ErrorCounter = 0;
-  m_ImageDeltaEnergy = 0.0;
-  m_NeighborhoodRadius = 1;
-  m_TotalNumberOfValidPixelsInOutputImage = 1;
-  m_TotalNumberOfPixelsInInputImage = 1;
-  m_ErrorTolerance = 0.0;
-  m_SmoothingFactor = 1;
-  m_NumberOfIterations = 0;
-  m_StopCondition = MaximumNumberOfIterations;
-  m_ExternalClassificationSet = false;
   m_Generator = RandomGeneratorType::New();
   m_Generator->SetSeed();
 
-- 
GitLab