summaryrefslogtreecommitdiff
path: root/2004/i/nono/src/ovision/group.h
diff options
context:
space:
mode:
Diffstat (limited to '2004/i/nono/src/ovision/group.h')
-rw-r--r--2004/i/nono/src/ovision/group.h87
1 files changed, 87 insertions, 0 deletions
diff --git a/2004/i/nono/src/ovision/group.h b/2004/i/nono/src/ovision/group.h
new file mode 100644
index 0000000..f154bd0
--- /dev/null
+++ b/2004/i/nono/src/ovision/group.h
@@ -0,0 +1,87 @@
+#ifndef group_h
+#define group_h
+// group.h - classe Group
+// nono - Programme du robot Efrei Robotique I1-I2 2004
+// Copyright (C) 2004 Olivier Gaillard
+
+#include "img.h"
+#include "segmNN.h"
+#include "segmTh.h"
+
+// TODO delta devrait diminuer avec la profondeur
+#define DELTA 20 // taille du jumppoint
+
+
+/// Liste chainee des zones trouvees par la classe group
+struct ZONE {
+ /// bornes de la zone pour x
+ unsigned int xmin, xmax;
+
+ /// bornes de la zone pour y
+ unsigned int ymin, ymax;
+
+ /// centre de la zone trouvee
+ int centerx, centery;
+
+ /// couleur de la zone
+ unsigned char idColor;
+
+ /// l'objet est vue partiellement ou completement
+ bool partial;
+
+ /// maillon suivant
+ ZONE *next;
+};
+
+
+/// Cree une liste chainee de zones correspondant aux balles
+class Group {
+
+ // classe segmentation
+ SegmNN *segm;
+
+ // classe image
+ Img *img;
+
+ // largeur de l'image a analyser
+ unsigned int width;
+
+ // longueur de l'image a analyser
+ unsigned int height;
+
+ public:
+ // pointeur vers l'image segmentee
+ unsigned char *tabSegm;
+
+ // pointeur vers l'image RGB pour affichage
+ unsigned char *tabOut;
+
+ // liste chainee pour sauver les zones des balles
+ ZONE *zoneListBall;
+
+ // liste chainee pour sauver les zones des poteaux
+ ZONE *zoneListGoal;
+
+ /// Constructeur
+ Group (Img *img, SegmNN *segm);
+
+ /// Destructeur
+ ~Group (void);
+
+ /// Selectionne les points a tester
+ void JumpPoints(unsigned char numColor);
+
+ /// Creation du tableau de RGB pour faire une image
+ void TabOut();
+
+ /// Affiche les zones trouvees
+ void ShowZones();
+
+ protected:
+ /// Cherche l'objet complet a partir d'un pixel
+ void Plague(int type, unsigned char numColor, int x, int y);
+
+};
+
+
+#endif // group_h