summaryrefslogtreecommitdiff
path: root/2004/i/nono/src/ovision/segmNN.h
diff options
context:
space:
mode:
Diffstat (limited to '2004/i/nono/src/ovision/segmNN.h')
-rw-r--r--2004/i/nono/src/ovision/segmNN.h75
1 files changed, 75 insertions, 0 deletions
diff --git a/2004/i/nono/src/ovision/segmNN.h b/2004/i/nono/src/ovision/segmNN.h
new file mode 100644
index 0000000..e870392
--- /dev/null
+++ b/2004/i/nono/src/ovision/segmNN.h
@@ -0,0 +1,75 @@
+#ifndef segmNN_h
+#define segmNN_h
+// segmNN.h - classe Segmentation
+// nono - Programme du robot Efrei Robotique I1-I2 2004
+// Copyright (C) 2004 Olivier Gaillard
+
+
+#include "imgFile.h"
+#include "config.h"
+
+// Constantes
+#define MIN 0
+#define MAX 1
+
+
+/// Constantes pour la creation du NN
+#define LOAD_FROM_FILE 1
+#define GENERATE 0
+
+/// Segmente l'image et cree un tableau contenant des valeurs segmentees, creation du reseau de neurones et apprentissage
+class SegmNN
+{
+ // Classe image
+ ImgFile *img;
+
+ // Classe config
+ Config *config;
+
+ public:
+ // tableau avec couleurs segmentees
+ unsigned char *tabSegm;
+
+ // tableau de poids du NN
+ unsigned char *node;
+
+ // index des couleurs pour melanger (merge) les couleurs
+ int *index;
+
+ // memorise la popularite des noeuds pour enlever les sorties inefficaces
+ unsigned int *freq;
+
+ // nb de couleurs a differencier
+ int nbOutput;
+
+ /// Constructeur
+ SegmNN (ImgFile *img, Config *config);
+
+ /// Destructeur
+ ~SegmNN (void);
+
+ /// Affiche la valeur des poids du NN
+ void ShowNodes();
+
+ /// Cree le NN
+ void BuildNN(int nbOutput, int loadFromFile);
+
+ /// Apprentissage du NN
+ void TrainNN();
+
+ /// Segmentation de l'image
+ void Segm();
+
+ /// Segmentation de l'image permettant d'isoler une couleur
+ void Segm(int numColor);
+
+ /// Entraine plusieurs reseaux de neurones avec des parametres differents
+ void TestNN();
+
+ protected:
+ /// Renvoie le code la couleur segmentee
+ unsigned char FindColorNN(unsigned char *x);
+
+};
+
+#endif // segmNN_h