00001 #ifndef ForceAllNeurons_H 00002 #define ForceAllNeurons_H 00003 00004 #include "Som.h" 00005 00017 class ForceAllNeurons { 00018 public: 00020 ForceAllNeurons( SOM * som, TIntVector clusters, int num ) : _som(som), _clusters(clusters), num_clusters(num) 00021 { 00022 codebook = _som->getMapcode()->getCodebook(); 00023 m = _som->getMapcode()->getMapSize(); 00024 d = _som->getData()->getDimension(); 00025 codebook_label = _som->getMapcode()->getLabel(); 00026 flag = create_intvector( 1, m ); 00027 for (int i=1; i<=m; i++) flag[i] = 0; 00028 }; 00029 00031 TIntVector Segment(); 00032 00034 int getNumClusters() { return num_clusters; }; 00035 00036 private: 00037 SOM * _som; 00038 TIntVector _clusters; 00039 00040 00041 int m; 00042 int d; 00043 int num_clusters; 00044 00045 TLabel codebook_label; 00046 TMatrix codebook; 00047 00048 void LabelNeuron(int i, int source); 00049 void CreateCluster(int i ); 00050 00051 vector<int> realocateSource( vector<int> neighbors, int source ); 00052 00053 TIntVector flag; 00054 }; 00055 00056 00057 #endif