summaryrefslogtreecommitdiff
path: root/2005/i/robert/src/ovision/see/ovision.cc
diff options
context:
space:
mode:
authordufourj2006-01-11 16:22:37 +0000
committerdufourj2006-01-11 16:22:37 +0000
commitd4fa4d87eb2040a6da63d5570893218f3dd2dc5c (patch)
tree1dfa7fed7a416e553658215c0db7657ec9884c8a /2005/i/robert/src/ovision/see/ovision.cc
parentc2791ab784e384c05c56e9abedfe071f2a4f2177 (diff)
Début d'intégration des sockets
Diffstat (limited to '2005/i/robert/src/ovision/see/ovision.cc')
-rw-r--r--2005/i/robert/src/ovision/see/ovision.cc36
1 files changed, 25 insertions, 11 deletions
diff --git a/2005/i/robert/src/ovision/see/ovision.cc b/2005/i/robert/src/ovision/see/ovision.cc
index 734a789..e16539a 100644
--- a/2005/i/robert/src/ovision/see/ovision.cc
+++ b/2005/i/robert/src/ovision/see/ovision.cc
@@ -81,8 +81,11 @@ OVision::init (const Group::ZoneType aim)
v4l_->calibrate ();
// Prendre une image pour que la taille de l'image soit configuré
img_->load (*v4l_);
- segm_ = new SegmTable (*colorTab_);
+// segm_ = new SegmTable (*colorTab_);
+// segm_->setMode (oconfig_->inputColor);
+ segm_ = new SegmLearn;
segm_->setMode (oconfig_->inputColor);
+ segm_->buildNN (oconfig_->nnNbColor, Segm::loadFromFile);
eraser_ = new Eraser (oconfig_->width, 10);
eraser_->init ();
group_ = new Group (img_, segm_, eraser_);
@@ -111,9 +114,10 @@ OVision::update ()
// Compteur du nombre d'image traité
step_++;
// Cherche les balles
- group_->jumpPoints (oconfig_->groupColor);
+ // group_->jumpPoints (oconfig_->groupColor);
+ //group_->jumpPoints (0);
// Analyse et tri la liste de zones trouvées
- mag_->analyse (group_->getZoneList ());
+ //mag_->analyse (group_->getZoneList ());
// Parcours la liste de balles trouvées
/* if (group_->zoneListBall)
{
@@ -123,23 +127,33 @@ OVision::update ()
space->GetLoc (x, y, x, y);
}
*/
+ // Création des groupes
+ Group group (img_, segm_, eraser_);
+ std::vector<Zone> list;
+ group.jumpPoints(oconfig_->groupColor);
+ mag_->analyse (group.getZoneList ());
+ std::vector<Zone> &l = mag_->getItemList (Group::greenSkittle);
+ for (std::vector<Zone>::iterator iter = l.begin ();
+ iter != l.end (); ++iter)
+ {
+ mag_->showZone (*iter);
+ }
+ std::ostringstream ss;
+ ss << "vis" << step_ << ".yuv";
+ std::string name = ss.str ();
+ img_->writeRaw (name.c_str ());
}
/// Affiche d'info sur l'update
void
-OVision::showInfo () const
+OVision::showInfo (const Zone &zone) const
{
- std::cout << "-----------------------------------------------------------------" << std::endl;
- std::cout << "image n°" << step_ << std::endl;
- // Info sur les zones trouvées
- mag_->showItems (aim_);
- std::cout << "-------------\n" << std::endl;
- std::cout << "-------------\n" << std::endl;
+ mag_->showZone (zone);
}
/// Renvoie la position de la quille dans le référentiel robot
void
-OVision::getLoc (Zone &zone, int &x, int &y, int &angle, int &dist)
+OVision::getLoc (Zone &zone, int &x, int &y, double &angle, int &dist)
{
space_->getRealLoc (zone, x, y, angle, dist);
}