#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 "img.h" #include "oconfig.h" // Constantes #define MIN 0 #define MAX 1 #define UNDEFINED 254 /// 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 Img *img; // Classe config OConfig *oconfig; 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 (Img *img); /// 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(); /// Renvoie le code la couleur segmentee unsigned char FindColorNN(unsigned char *x, bool testUndefined = 0); protected: }; #endif // segmNN_h