From ca55222ed88ced5ded14049488fabbf62143174b Mon Sep 17 00:00:00 2001 From: schodet Date: Sat, 1 May 2004 14:34:33 +0000 Subject: Début d'intégration. --- 2004/i/nono/src/ovision/Makefile.defs | 13 ++ 2004/i/nono/src/ovision/adjust.cc | 2 +- 2004/i/nono/src/ovision/comm.cc | 2 +- 2004/i/nono/src/ovision/comm.h | 4 +- 2004/i/nono/src/ovision/config.cc | 347 --------------------------------- 2004/i/nono/src/ovision/config.h | 138 -------------- 2004/i/nono/src/ovision/group.cc | 7 +- 2004/i/nono/src/ovision/img.cc | 22 ++- 2004/i/nono/src/ovision/img.h | 17 +- 2004/i/nono/src/ovision/imgFile.cc | 4 + 2004/i/nono/src/ovision/imgFile.h | 4 - 2004/i/nono/src/ovision/map.cc | 3 +- 2004/i/nono/src/ovision/map.h | 6 +- 2004/i/nono/src/ovision/modele.h | 8 +- 2004/i/nono/src/ovision/oconfig.cc | 348 ++++++++++++++++++++++++++++++++++ 2004/i/nono/src/ovision/oconfig.h | 138 ++++++++++++++ 2004/i/nono/src/ovision/segmNN.cc | 10 +- 2004/i/nono/src/ovision/segmNN.h | 11 +- 2004/i/nono/src/ovision/segmTh.cc | 2 +- 2004/i/nono/src/ovision/segmTh.h | 6 +- 2004/i/nono/src/ovision/space.cc | 2 +- 2004/i/nono/src/ovision/test.cc | 4 +- 2004/i/nono/src/ovision/testimg.cc | 21 +- 2004/i/nono/src/ovision/testmap.cc | 4 +- 2004/i/nono/src/ovision/ui.cc | 6 +- 25 files changed, 584 insertions(+), 545 deletions(-) create mode 100644 2004/i/nono/src/ovision/Makefile.defs delete mode 100644 2004/i/nono/src/ovision/config.cc delete mode 100644 2004/i/nono/src/ovision/config.h create mode 100644 2004/i/nono/src/ovision/oconfig.cc create mode 100644 2004/i/nono/src/ovision/oconfig.h diff --git a/2004/i/nono/src/ovision/Makefile.defs b/2004/i/nono/src/ovision/Makefile.defs new file mode 100644 index 0000000..4c6ce31 --- /dev/null +++ b/2004/i/nono/src/ovision/Makefile.defs @@ -0,0 +1,13 @@ +TARGETS += test_ovision +LIBS += ovision.a +testimg_SOURCES = testimg.cc ovision.a video4linux.a +test_ovision_SOURCES = testmap.cc ovision.a +ovision_a_SOURCES = img.cc group.cc oconfig.cc map.cc \ + segmNN.cc + +testimg: $(testimg_SOURCES:%.cc=%.o) + +test_ovision: $(test_ovision_SOURCES:%.cc=%.o) + +ovision.a: ${ovision_a_SOURCES:%.cc=ovision.a(%.o)} + diff --git a/2004/i/nono/src/ovision/adjust.cc b/2004/i/nono/src/ovision/adjust.cc index 5bc6572..6652598 100644 --- a/2004/i/nono/src/ovision/adjust.cc +++ b/2004/i/nono/src/ovision/adjust.cc @@ -93,7 +93,7 @@ LoadImage(int width, int height, unsigned char *data, unsigned int lastTex) //glTexImage2D(GL_TEXTURE_2D, 0, 3, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, data); gluBuild2DMipmaps(GL_TEXTURE_2D, 3, width, height, GL_RGB, GL_UNSIGNED_BYTE, data); - // Config des parametres + // OConfig des parametres glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); diff --git a/2004/i/nono/src/ovision/comm.cc b/2004/i/nono/src/ovision/comm.cc index 4ff2566..8b0199e 100644 --- a/2004/i/nono/src/ovision/comm.cc +++ b/2004/i/nono/src/ovision/comm.cc @@ -33,7 +33,7 @@ Comm::Comm(char *filename) fclose(file); // Creation de config - config = new Config("vision.conf"); + config = new OConfig("vision.conf"); // Ouverture de l'image pilote et stockage img.ReadRaw(filename); diff --git a/2004/i/nono/src/ovision/comm.h b/2004/i/nono/src/ovision/comm.h index e97e580..6de692c 100644 --- a/2004/i/nono/src/ovision/comm.h +++ b/2004/i/nono/src/ovision/comm.h @@ -10,7 +10,7 @@ #include "img.h" #include "segmNN.h" -#include "config.h" +#include "oconfig.h" #include "group.h" @@ -29,7 +29,7 @@ class Comm { ImgFile img; /// classe config - Config *config; + OConfig *config; /// classe segmentation SegmNN *segm; diff --git a/2004/i/nono/src/ovision/config.cc b/2004/i/nono/src/ovision/config.cc deleted file mode 100644 index 03ca5f7..0000000 --- a/2004/i/nono/src/ovision/config.cc +++ /dev/null @@ -1,347 +0,0 @@ -// config.cc - Classe Config -// nono - Programme du robot Efrei Robotique I1-I2 2004 -// Copyright (C) 2004 Olivier Gaillard - -/// @file config.cc Charge le fichier config et distribue les variables - -#include "config.h" -#include -#include -#include -using namespace std; - - -/// Parse une ligne du fichier de config -/// @param *var nom de la variable a fixer -/// @param *arg valeur de la variable -void Config::Parse(char *var, char *arg) { - - char argu[20]; - - if (!arg) cerr << "Config::Parse : Error during config file parsing" << endl; - - strcpy(argu, arg); - - // Verifie si l'argument est un nombre ou un nom de fichier - if (((argu[0]>'9') || (argu[0] < '0')) - && strcmp(var, "Source") && strcmp(var, "imgPath")) { - FILE *file; - - file=fopen(arg, "r"); - if (!file) cerr << "Config::Parse : Bad pathfile for " << arg << endl; - - fgets(argu, 20,file); - - fclose(file); - } - - // Affecte la valeur de argu a la variable var - if (!strcmp(var, "Hauteur_Image")) height = atoi(argu); - else if(!strcmp(var,"Largeur_Image")) width = atoi(argu); - else if(!strcmp(var,"NN_Step_Learning")) nn_sl = atof(argu); - else if(!strcmp(var,"NN_Neighborhood_Learning")) nn_nl = atof(argu); - else if(!strcmp(var,"NN_Number_Iteration_Learning")) nn_nil = atol(argu); - else if(!strcmp(var,"NN_Nombre_Couleurs")) nn_NbCouleurs = atoi(argu); - else if(!strcmp(var,"NN_Influence_Luminosite")) nn_influ_lum = atof(argu); - else if(!strcmp(var,"imgPath")) strcpy(imgPath, argu); - else if(!strcmp(var,"NN_Lazy_Threshold")) nn_lazy_threshold = atoi(argu); - else if(!strcmp(var,"Map_Error")) map_error = atoi(argu); - else if(!strcmp(var,"Map_Error_Part")) map_error_part = atoi(argu); - else if(!strcmp(var,"Angle_Ball")) angle_ball_weight= atoi(argu); - else if(!strcmp(var,"Distance_Ball_Robot")) distance_ball_robot_weight = atoi(argu); - else if(!strcmp(var,"Distance_Ball_Goal")) distance_ball_goal_weight = atoi(argu); - else if(!strcmp(var,"Ball_Density")) ball_density_weight = atoi(argu); - else if(!strcmp(var,"Ennemy_Presence")) ennemy_presence_weight = atoi(argu); - else if(!strcmp(var,"Ball_Precision")) ball_precision_weight = atoi(argu); - else if(!strcmp(var,"Skepticism")) skepticism_weight = atoi(argu); - else if(!strcmp(var,"Skepticism_Max")) skepticism_max = atoi(argu); - else if(!strcmp(var,"Source")) - { - if (!strcmp(argu, "file")) source = SOURCE_FILE; - else if (!strcmp(argu, "usbcam")) source = SOURCE_USB_CAM; - else if (!strcmp(argu, "cam")) source = SOURCE_CAM; - } - -} - - -/// Constructor -/// @param *filename nom du fichier de config -Config::Config(char *filename) { - - const int NBARG = 3; - char *cut[NBARG] = {NULL}; - FILE *file; - char ligne[50]; - int i; - - // Ouverture du fichier de conf - file = fopen(filename, "r"); - if (!file) cerr << "Config::Config : Error during config file opening" << endl; - else cout << "Lecture du ficher de configuration" << endl; - - - // Parcours des lignes et analyse - while(fgets(ligne, 50, file)) { - if (ligne[0] == '#') continue; - - // Division du string - cut[0] = strtok(ligne, " \n"); - if (!cut[0]) continue; - i=0; - while ((cut[i] != NULL) && (i<(NBARG-1))) { - i++; - cut[i] = strtok( NULL, " \t\n"); - - } - - Parse(cut[0], cut[2]); - } - - colorMode = 0; - color = NULL; - node = NULL; - index = NULL; - LoadThFile(); - LoadNNFile(); -} - - -/// Chargement des poids d'un reseau de neurones -/// @param *filePath nom du fichier de poids a charger -void Config::LoadNNFile(char *filePath) { - const int NBARG = 4; - char *cut[NBARG] = {NULL}; - FILE *file; - char ligne[50]; - int i; - unsigned char *pNode; - - // Ouverture du fichier de conf - file = fopen(filePath, "r"); - if (!file) { - cerr << "Config::LoadNNFile : Error during poids file opening" << endl; - index = new int[nn_NbCouleurs]; - for (int i=0; i #include +#include #include using namespace std; @@ -95,7 +96,7 @@ void Group::Plague(int type, unsigned char numColor, int x, int y) { pCur = zoneListBall; else if (type == GOAL) { - if (!((pLast->ymin <= 0) && (pLast->ymax >= config->width))) + if (!((pCur->ymin <= 0) && (pCur->ymax >= img->width))) return; pCur = zoneListGoal; } @@ -151,7 +152,7 @@ void Group::Plague(int type, unsigned char numColor, int x, int y) { pLast->idColor = numColor; // test si la balle est vu partiellement ou completement - if ((pLast->xmin <= 0) || (pLast->ymin <= 0) || (pLast->xmax >= config->width) || (pLast->ymax >= config->height)) + if ((pLast->xmin <= 0) || (pLast->ymin <= 0) || (pLast->xmax >= img->width) || (pLast->ymax >= img->height)) pLast->partial = 1; else pLast->partial = 0; @@ -173,7 +174,7 @@ void Group::ShowZones() { pCur = pCur->next; } - ZONE *pCur = zoneListGoal; + pCur = zoneListGoal; cout << "Groupes balles:" << endl; while(pCur) { printf("%u %i %i %i %i\n", pCur->idColor, pCur->xmin, pCur->xmax, pCur->ymin, pCur->ymax); diff --git a/2004/i/nono/src/ovision/img.cc b/2004/i/nono/src/ovision/img.cc index 6288404..60469ad 100644 --- a/2004/i/nono/src/ovision/img.cc +++ b/2004/i/nono/src/ovision/img.cc @@ -7,6 +7,7 @@ #include "img.h" #include #include +#include #include using namespace std; /// Renvoie le minimum entre 2 nombres @@ -21,15 +22,14 @@ Img::Img (void) { tabData = NULL; tabSegm = NULL; - yuv = hsi = 0; + yuv = hsi = false; } /// Destructeur Img::~Img (void) { //free tabData - if (tabData) delete [] tabData; - + delete [] tabData; } @@ -38,7 +38,7 @@ Img::~Img (void) { void Img::RGBtoYUV() { unsigned char r,g,b; - yuv = 1; + yuv = true; // Parcours du tableau et conversion des valeurs RBG en YUV for (unsigned long i=0; i +#include + /// @file imgFile.cc Chargement des images, conversion en YUV, HSI, detection des contours, transformation d'une image segmentee en RGB, ecriture de l'image sur le disque #include "imgFile.h" diff --git a/2004/i/nono/src/ovision/imgFile.h b/2004/i/nono/src/ovision/imgFile.h index d8ff33e..63ac4ae 100644 --- a/2004/i/nono/src/ovision/imgFile.h +++ b/2004/i/nono/src/ovision/imgFile.h @@ -5,10 +5,6 @@ // Copyright (C) 2004 Olivier Gaillard -// Chargement des librairies DevIL -#include -#include - #include "img.h" /// Chargement des images, conversion en YUV, HSI, detection des contours, diff --git a/2004/i/nono/src/ovision/map.cc b/2004/i/nono/src/ovision/map.cc index 8787c6d..6bf02e5 100644 --- a/2004/i/nono/src/ovision/map.cc +++ b/2004/i/nono/src/ovision/map.cc @@ -13,7 +13,7 @@ using namespace std; /// Constructeurs. -Map::Map (Config *config) +Map::Map (OConfig *config) { lock = 0; @@ -64,6 +64,7 @@ Map::TestSimilarBall(ZONE *pBall, list::iterator &iter) //TODO tester d'abord les zones et ensuite les pos for(iter = ball.begin(); iter != ball.end(); iter++) { + int pos[2] = {pBall->centerx, pBall->centery}; if (Dist(iter->position, pos) < (iter->partial || pBall->partial)?config->map_error_part:config->map_error) return 1; } diff --git a/2004/i/nono/src/ovision/map.h b/2004/i/nono/src/ovision/map.h index 7e507f1..db4416a 100644 --- a/2004/i/nono/src/ovision/map.h +++ b/2004/i/nono/src/ovision/map.h @@ -6,7 +6,7 @@ #include #include "group.h" -#include "config.h" +#include "oconfig.h" #define LOCKED 1 #define UNLOCKED 0 @@ -42,7 +42,7 @@ struct BALL { class Map { /// Variables configurables - Config *config; + OConfig *config; /// position des goals int posGoal[2]; @@ -79,7 +79,7 @@ class Map int zoneRobot; /// Constructeurs. - Map (Config *config); + Map (OConfig *config); /// Destructeur. ~Map (void); diff --git a/2004/i/nono/src/ovision/modele.h b/2004/i/nono/src/ovision/modele.h index b07f522..7753939 100644 --- a/2004/i/nono/src/ovision/modele.h +++ b/2004/i/nono/src/ovision/modele.h @@ -1,6 +1,6 @@ #ifndef config_h #define config_h -// config.h - classe Config +// oconfig.h - classe OConfig // nono - Programme du robot Efrei Robotique I1-I2 2004 // Copyright (C) 2004 Olivier Gaillard @@ -12,16 +12,16 @@ #define IMG_WIDTH 288 -class Config { +class OConfig { public: // Constructeurs. - Config (void); + OConfig (void); // Destructeur. - ~Config (void); + ~OConfig (void); protected: diff --git a/2004/i/nono/src/ovision/oconfig.cc b/2004/i/nono/src/ovision/oconfig.cc new file mode 100644 index 0000000..921449e --- /dev/null +++ b/2004/i/nono/src/ovision/oconfig.cc @@ -0,0 +1,348 @@ +// config.cc - Classe OConfig +// nono - Programme du robot Efrei Robotique I1-I2 2004 +// Copyright (C) 2004 Olivier Gaillard + +/// @file config.cc Charge le fichier config et distribue les variables + +#include "oconfig.h" +#include +#include +#include +#include +using namespace std; + + +/// Parse une ligne du fichier de config +/// @param *var nom de la variable a fixer +/// @param *arg valeur de la variable +void OConfig::Parse(char *var, char *arg) { + + char argu[20]; + + if (!arg) cerr << "OConfig::Parse : Error during config file parsing" << endl; + + strcpy(argu, arg); + + // Verifie si l'argument est un nombre ou un nom de fichier + if (((argu[0]>'9') || (argu[0] < '0')) + && strcmp(var, "Source") && strcmp(var, "imgPath")) { + FILE *file; + + file=fopen(arg, "r"); + if (!file) cerr << "OConfig::Parse : Bad pathfile for " << arg << endl; + + fgets(argu, 20,file); + + fclose(file); + } + + // Affecte la valeur de argu a la variable var + if (!strcmp(var, "Hauteur_Image")) height = atoi(argu); + else if(!strcmp(var,"Largeur_Image")) width = atoi(argu); + else if(!strcmp(var,"NN_Step_Learning")) nn_sl = atof(argu); + else if(!strcmp(var,"NN_Neighborhood_Learning")) nn_nl = atof(argu); + else if(!strcmp(var,"NN_Number_Iteration_Learning")) nn_nil = atol(argu); + else if(!strcmp(var,"NN_Nombre_Couleurs")) nn_NbCouleurs = atoi(argu); + else if(!strcmp(var,"NN_Influence_Luminosite")) nn_influ_lum = atof(argu); + else if(!strcmp(var,"imgPath")) strcpy(imgPath, argu); + else if(!strcmp(var,"NN_Lazy_Threshold")) nn_lazy_threshold = atoi(argu); + else if(!strcmp(var,"Map_Error")) map_error = atoi(argu); + else if(!strcmp(var,"Map_Error_Part")) map_error_part = atoi(argu); + else if(!strcmp(var,"Angle_Ball")) angle_ball_weight= atoi(argu); + else if(!strcmp(var,"Distance_Ball_Robot")) distance_ball_robot_weight = atoi(argu); + else if(!strcmp(var,"Distance_Ball_Goal")) distance_ball_goal_weight = atoi(argu); + else if(!strcmp(var,"Ball_Density")) ball_density_weight = atoi(argu); + else if(!strcmp(var,"Ennemy_Presence")) ennemy_presence_weight = atoi(argu); + else if(!strcmp(var,"Ball_Precision")) ball_precision_weight = atoi(argu); + else if(!strcmp(var,"Skepticism")) skepticism_weight = atoi(argu); + else if(!strcmp(var,"Skepticism_Max")) skepticism_max = atoi(argu); + else if(!strcmp(var,"Source")) + { + if (!strcmp(argu, "file")) source = SOURCE_FILE; + else if (!strcmp(argu, "usbcam")) source = SOURCE_USB_CAM; + else if (!strcmp(argu, "cam")) source = SOURCE_CAM; + } + +} + + +/// Constructor +/// @param *filename nom du fichier de config +OConfig::OConfig(char *filename) { + + const int NBARG = 3; + char *cut[NBARG] = {NULL}; + FILE *file; + char ligne[50]; + int i; + + // Ouverture du fichier de conf + file = fopen(filename, "r"); + if (!file) cerr << "OConfig::OConfig : Error during config file opening" << endl; + else cout << "Lecture du ficher de configuration" << endl; + + + // Parcours des lignes et analyse + while(fgets(ligne, 50, file)) { + if (ligne[0] == '#') continue; + + // Division du string + cut[0] = strtok(ligne, " \n"); + if (!cut[0]) continue; + i=0; + while ((cut[i] != NULL) && (i<(NBARG-1))) { + i++; + cut[i] = strtok( NULL, " \t\n"); + + } + + Parse(cut[0], cut[2]); + } + + colorMode = 0; + color = NULL; + node = NULL; + index = NULL; + LoadThFile(); + LoadNNFile(); +} + + +/// Chargement des poids d'un reseau de neurones +/// @param *filePath nom du fichier de poids a charger +void OConfig::LoadNNFile(char *filePath) { + const int NBARG = 4; + char *cut[NBARG] = {NULL}; + FILE *file; + char ligne[50]; + int i; + unsigned char *pNode; + + // Ouverture du fichier de conf + file = fopen(filePath, "r"); + if (!file) { + cerr << "OConfig::LoadNNFile : Error during poids file opening" << endl; + index = new int[nn_NbCouleurs]; + for (int i=0; i #include +#include #include #include using namespace std; @@ -15,7 +16,7 @@ using namespace std; /// @param img classe img permettant d'acceder au donnees de l'image a traiter /// @param config classe config permettant d'acceder aux variables de configuration -SegmNN::SegmNN(ImgFile *img, Config *config) { +SegmNN::SegmNN(Img *img, OConfig *config) { // Sauvegarde les pointeurs SegmNN::img = img; SegmNN::config = config; @@ -223,7 +224,7 @@ void SegmNN::Segm(int numColor) { /// Entraine plusieurs reseaux de neurones avec des parametres differents et crees les images associees void SegmNN::TestNN() { - double sl[] = {0.01, 0.1, 1}; +/* double sl[] = {0.01, 0.1, 1}; unsigned long nil[] = {100, 1000, 10000, 100000, 1000000}; int nc[] = {3,4,5,6,7,8}; @@ -249,12 +250,13 @@ void SegmNN::TestNN() { Segm(); // Ecriture des résultats dans une image - sprintf(filename, "NN/%i-%lf-%luNN.jpg", nc[i_nc], sl[i_sl], nil[i_nil]); + sprintf(filename, "NN/%i-%f-%luNN.jpg", nc[i_nc], sl[i_sl], nil[i_nil]); img->WriteSegm(filename, tabSegm); - sprintf(filename, "NN/%i-%lf-%luNN", nc[i_nc], sl[i_sl], nil[i_nil]); + sprintf(filename, "NN/%i-%f-%luNN", nc[i_nc], sl[i_sl], nil[i_nil]); config->node = node; config->CreateNNFile(filename, config->colorMode, nbOutput); } } } + */ } diff --git a/2004/i/nono/src/ovision/segmNN.h b/2004/i/nono/src/ovision/segmNN.h index e870392..71ff6e6 100644 --- a/2004/i/nono/src/ovision/segmNN.h +++ b/2004/i/nono/src/ovision/segmNN.h @@ -4,9 +4,8 @@ // nono - Programme du robot Efrei Robotique I1-I2 2004 // Copyright (C) 2004 Olivier Gaillard - -#include "imgFile.h" -#include "config.h" +#include "img.h" +#include "oconfig.h" // Constantes #define MIN 0 @@ -21,10 +20,10 @@ class SegmNN { // Classe image - ImgFile *img; + Img *img; // Classe config - Config *config; + OConfig *config; public: // tableau avec couleurs segmentees @@ -43,7 +42,7 @@ class SegmNN int nbOutput; /// Constructeur - SegmNN (ImgFile *img, Config *config); + SegmNN (Img *img, OConfig *config); /// Destructeur ~SegmNN (void); diff --git a/2004/i/nono/src/ovision/segmTh.cc b/2004/i/nono/src/ovision/segmTh.cc index 78481b6..dea5491 100644 --- a/2004/i/nono/src/ovision/segmTh.cc +++ b/2004/i/nono/src/ovision/segmTh.cc @@ -6,7 +6,7 @@ #include using namespace std; -SegmTh::SegmTh(Img *img, Config *config) { +SegmTh::SegmTh(Img *img, OConfig *config) { SegmTh::img = img; SegmTh::config = config; nbOutput = config->nn_NbCouleurs; diff --git a/2004/i/nono/src/ovision/segmTh.h b/2004/i/nono/src/ovision/segmTh.h index b430340..eee8c7b 100644 --- a/2004/i/nono/src/ovision/segmTh.h +++ b/2004/i/nono/src/ovision/segmTh.h @@ -6,7 +6,7 @@ #include "img.h" -#include "config.h" +#include "oconfig.h" #define MIN 0 #define MAX 1 @@ -14,7 +14,7 @@ class SegmTh { Img *img; - Config *config; + OConfig *config; int nbOutput; // nb de couleurs a différencier @@ -22,7 +22,7 @@ class SegmTh unsigned char *tabSegm; // tableau avec couleurs segmentées // Constructeurs. - SegmTh (Img *img, Config *config); + SegmTh (Img *img, OConfig *config); // Destructeur. ~SegmTh (void); diff --git a/2004/i/nono/src/ovision/space.cc b/2004/i/nono/src/ovision/space.cc index 770a2d9..3a6bf63 100644 --- a/2004/i/nono/src/ovision/space.cc +++ b/2004/i/nono/src/ovision/space.cc @@ -109,7 +109,7 @@ void Space::SetDist(ZONE zone, unsigned int distance) void Space::DoDistTab() { ImgFile img; - Config config("vision.conf"); + OConfig config("vision.conf"); SegmNN segm(&img, &config); TABLOC loc; diff --git a/2004/i/nono/src/ovision/test.cc b/2004/i/nono/src/ovision/test.cc index 26b0500..85187f5 100644 --- a/2004/i/nono/src/ovision/test.cc +++ b/2004/i/nono/src/ovision/test.cc @@ -5,7 +5,7 @@ #include "img.h" #include "segmNN.h" #include "segmTh.h" -#include "config.h" +#include "oconfig.h" #include "group.h" #include "space.h" #include @@ -17,7 +17,7 @@ using namespace std; int main(int argc, char **argv) { Img img; - Config config("vision.conf"); + OConfig config("vision.conf"); system("rm -Rf NN && mkdir NN"); diff --git a/2004/i/nono/src/ovision/testimg.cc b/2004/i/nono/src/ovision/testimg.cc index 4b797ca..fe33e67 100644 --- a/2004/i/nono/src/ovision/testimg.cc +++ b/2004/i/nono/src/ovision/testimg.cc @@ -2,10 +2,10 @@ // nono - Programme du robot Efrei Robotique I1-I2 2004 // Copyright (C) 2004 Olivier Gaillard -#include "imgFile.h" #include "segmNN.h" -#include "config.h" +#include "oconfig.h" #include "group.h" +#include "video4linux/video4linux.h" #include using namespace std; @@ -13,13 +13,20 @@ using namespace std; int main(int argc, char **argv) { - ImgFile img; + Img img; - Config config("vision.conf"); + OConfig config("rc/vision.conf"); - if (argv[1]) img.ReadRaw(argv[1]); - else img.ReadRaw("palet.jpg"); + if (argv[1]) ; //img.ReadRaw(argv[1]); + else + { + Video4Linux v4l ("/dev/video", ImageLoader::yuv, 40000); + v4l.calibrate (); + img.load (v4l); + } + + img.WriteRGB ("toto.yuv"); // img.EdgeDetect(); // img.RGBtoHSI(); // img.RGBtoYUV(); @@ -31,7 +38,7 @@ int main(int argc, char **argv) { // segmNN.ShowNodes(); segmNN.Segm(); // config.node = segmNN.node; - // config.CreateNNFile("poids", config.colorMode, segmNN.nbOutput); + // config.CreateNNFile("rc/poids", config.colorMode, segmNN.nbOutput); // img.WriteSegm("NN.jpg", segmNN.tabSegm); diff --git a/2004/i/nono/src/ovision/testmap.cc b/2004/i/nono/src/ovision/testmap.cc index 2626617..33dc76e 100644 --- a/2004/i/nono/src/ovision/testmap.cc +++ b/2004/i/nono/src/ovision/testmap.cc @@ -1,13 +1,13 @@ #include "map.h" -#include "config.h" +#include "oconfig.h" //#include "group.h" int main() { - Config config("vision.conf"); + OConfig config("vision.conf"); Map map(&config); ImgFile img; diff --git a/2004/i/nono/src/ovision/ui.cc b/2004/i/nono/src/ovision/ui.cc index 93ed499..a94b47b 100644 --- a/2004/i/nono/src/ovision/ui.cc +++ b/2004/i/nono/src/ovision/ui.cc @@ -12,7 +12,7 @@ #include #include -#include "config.h" +#include "oconfig.h" #include "ui.h" #include "testui.h" @@ -25,7 +25,7 @@ using namespace std; /// Nombre d'items du menu #define NBITEMS 11 -Config config("vision.conf"); +OConfig config("vision.conf"); /// Items du menu principal char *itemsName[NBITEMS][2] = {{"Move color", "Permet d'ajuster les niveaux d'une couleur"}, @@ -858,7 +858,7 @@ UI::Menu() case 8: // Sauver les changements // Sauvegarde des poids dans le fichier poids - config.CreateNNFile("poids", config.colorMode, config.nn_NbCouleurs); + config.CreateNNFile("rc/poids", config.colorMode, config.nn_NbCouleurs); // Reload du NN et de l'image a partir des nouveaux poids sprintf(buf, "r -1"); -- cgit v1.2.3