#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