Main Page | Class Hierarchy | Class List | Directories | File List | Class Members | File Members

Mixture_Algo.hpp

00001 #define __cplusplus__
00002 #ifndef __MIXALGO__
00003 #define __MIXALGO__
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_Algorithm.hpp>
00014 #include <IID_Mixture.hpp>
00015 
00016 using namespace std;
00017 
00018 
00027 class Mixture_Algorithm : public Seg_Algorithm{
00028 
00029 protected :
00031   Spatial_Data *SpatData;
00032 
00034   IID_Mixture *Model;
00035 
00037         void Update_Density();
00038 
00040         vector<double> logdens;
00041 
00042 public :
00044         virtual ~Mixture_Algorithm();
00045         
00047         uint Get_N();
00048 
00050         uint Get_K();
00051         
00053   void Info();
00055   void Run(uint nbiter);
00057   void E_Step();
00059   void M_Step();
00061   void Compute_MAP_Labels(vector<uint> & Labels);
00063   void Init_Labels(vector<uint> labs);
00065   void Init_KMeans();
00066 
00068   void Init_Random();
00069   
00071   void Write_fuzzy(string filename);
00073   virtual void Compute_fuzzy(uint i,vector<double> &probs);
00074 
00075   // Stopping criteria
00077   void Compute_CLCrit();
00079   void Compute_FuzzyCrit();
00081   void Compute_HardCrit();
00082 
00083 };
00084 
00085 
00086 #endif

Generated on Thu Jan 12 11:54:58 2006 for NEM by  doxygen 1.4.4