Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

/home/mistis/jblanche/DEV/NEM/include/Double_Seg_Algorithm.hpp

00001 #define __cplusplus__
00002 #ifndef __DSEGALGO__
00003 #define __DSEGALGO__
00004 
00005 #include<iostream>
00006 #include<istream>
00007 #include<fstream>
00008 #include<string>
00009 #include<vector>
00010 #include<sstream>
00011 #include <cmath>
00012 
00013 #include <Seg_Model.hpp>
00014 
00015 using namespace std;
00016 
00017 #define ITER_CRIT (0)
00018 #define CL_CRIT (1)
00019 #define FUZZY_CRIT (2)
00020 #define HARD_CRIT (3)
00021 #define MAX_CRIT (4)
00022 
00023 
00033 class Double_Seg_Algorithm{
00034 
00035 protected :
00037   vector<double> Crit_Values;
00039   uint Criterion;
00041   double Tol;
00042   
00044   double Old_CL;
00046   vector<double> old_fuzzy;
00048   vector<uint> old_map_labs;
00049   
00050 public :
00051   
00052   virtual ~Double_Seg_Algorithm();
00053 
00055   bool HasConverged();
00056 
00058   virtual void Compute_MAP_Labels(vector<uint> & Labels);
00059 
00061   virtual void Init_Labels(vector<uint> const & labsY,vector<uint> const & labsZ );
00063   virtual void Init_Random();
00065   virtual void Init_Density();
00066   
00067 
00068   // Stopping criteria
00070   virtual void Compute_CLCrit();
00072   virtual void Compute_FuzzyCrit();
00074   virtual void Compute_HardCrit();
00075 
00077   void Display_Stopping_Rule();
00078   
00080   void Update_Stopping_Rules();
00082   void Use_Default_Stopping_Rule();
00084   void Set_Stopping_Rule(uint crit, double tol);
00085 
00087   virtual void Info();
00088 
00089 
00091   virtual void Run(uint nbiter);
00093   void RunUntilConvergence();
00094   
00095 };
00096 
00097 
00098 #endif

Generated on Tue Nov 8 14:53:44 2005 for NEM by doxygen1.2.18