summaryrefslogtreecommitdiff
path: root/2004/i/nono/src/ovision/oconfig.h
diff options
context:
space:
mode:
Diffstat (limited to '2004/i/nono/src/ovision/oconfig.h')
-rw-r--r--2004/i/nono/src/ovision/oconfig.h138
1 files changed, 138 insertions, 0 deletions
diff --git a/2004/i/nono/src/ovision/oconfig.h b/2004/i/nono/src/ovision/oconfig.h
new file mode 100644
index 0000000..32d89e7
--- /dev/null
+++ b/2004/i/nono/src/ovision/oconfig.h
@@ -0,0 +1,138 @@
+#ifndef config_h
+#define config_h
+// oconfig.h - classe OConfig
+// nono - Programme du robot Efrei Robotique I1-I2 2004
+// Copyright (C) 2004 Olivier Gaillard
+
+
+/// Constantes pour les modes d'espace de couleur
+#define RGB 0
+#define YUV 1
+#define HSI 2
+
+
+/// Constantes pour les sources d'acquisition
+#define SOURCE_FILE 0
+#define SOURCE_USB_CAM 1
+#define SOURCE_CAM 2
+
+
+
+/// Charge le fichier config et distribue les variables
+class OConfig {
+
+ public:
+ /// hauteur de l'image
+ unsigned int height;
+
+ /// largeur de l'image
+ unsigned int width;
+
+ /// source d'aquisition
+ int source;
+
+ /// nombre d'iteration pour l'apprentissage(number iteration learning)
+ long nn_nil;
+
+ /// vitesse d'apprentissage (step learning)
+ float nn_sl;
+
+ /// influence sur les voisins pour l'apprentissage (neighborhood learning)
+ float nn_nl;
+
+ /// seuil pour la verification des noeuds de sorties inutiles du reseau
+ unsigned int nn_lazy_threshold;
+
+ /// nombre de couleurs a detecter
+ int nn_NbCouleurs;
+
+ /// nombre de couleurs dans le fichier des seuils
+ int nbCouleurMax;
+
+ /// nombre de couleurs dans le fichier des poids
+ int nbNodeMax;
+
+ /// influence de la luminosite dans l'integration de l'image
+ float nn_influ_lum;
+
+ /// erreur accepte pour la construction de la map
+ int map_error;
+ int map_error_part;
+
+ /// Position de la balle (devant, derriere, cote, ...)
+ int angle_ball_weight;
+
+ /// Distance Balle-Robot
+ int distance_ball_robot_weight;
+
+ /// Distance Balle_goal
+ int distance_ball_goal_weight;
+
+ /// Densite de balles dans la zone
+ int ball_density_weight;
+
+ /// Presence du robot adverse dans la zone
+ int ennemy_presence_weight;
+
+ /// Precision de la position de la balle
+ int ball_precision_weight;
+
+ /// Viabilite de l'information
+ int skepticism_weight;
+
+ /// Max de la valeur
+ int skepticism_max;
+
+ /// mode de couleur (RGB, YUV, HSI)
+ int colorMode;
+
+ /// numero de la couleur des balles a chercher
+ int groupColor;
+
+ /// numero de la couleur des poteaux a chercher
+ int goalColor;
+
+ /// tableau de correspondances des couleurs RGB
+ unsigned char *color;
+
+ /// tableau des poids du reseau de neurones
+ unsigned char *node;
+
+ /// tableau d'index des couleurs a melanger (merge)
+ int *index;
+
+ /// Chemin d'acces des images
+ char imgPath[30];
+
+ /// Constructeur
+ OConfig (char *filename);
+
+ /// Destructeur
+ ~OConfig (void);
+
+ /// Chargement d'un fichier de seuils
+ void LoadThFile();
+
+ /// Chargement de poids pour le reseau de neurone
+ void LoadNNFile(char *filePath);
+
+ /// Chargement de poids pour le reseau de neurone
+ void LoadNNFile() {LoadNNFile("rc/poids");}
+
+ /// Creation d'un fichier de poids pour le reseau de neurones
+ void CreateNNFile(const char *file, int mode, int nbOutput);
+
+ /// Creatio du fichier de la table de distance
+ void CreateDistFile(char *filename, int *tab, int height, int width);
+
+ /// Chargement du fichier de la table de distance
+ void LoadDistFile(char *filename, int **tab, int &height, int &width);
+
+ protected:
+ /// Parse une ligne du fichier de config
+ void Parse(char *var, char *arg);
+
+};
+
+
+#endif // config_h