summaryrefslogtreecommitdiff
path: root/2005/i/robert/src/ovision/see/skittle.cc
diff options
context:
space:
mode:
Diffstat (limited to '2005/i/robert/src/ovision/see/skittle.cc')
-rw-r--r--2005/i/robert/src/ovision/see/skittle.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/2005/i/robert/src/ovision/see/skittle.cc b/2005/i/robert/src/ovision/see/skittle.cc
index f50705d..f8437d5 100644
--- a/2005/i/robert/src/ovision/see/skittle.cc
+++ b/2005/i/robert/src/ovision/see/skittle.cc
@@ -23,7 +23,7 @@ Skittle::~Skittle (void)
/// Recherche de la composante principale
void
-Skittle::pca (const Zone &zone)
+Skittle::pca (Zone &zone)
{
// Agrandissement de la zone de recherche
const int grow = oconfig_->skittleGrow;
@@ -35,7 +35,9 @@ Skittle::pca (const Zone &zone)
int jump = oconfig_->jumpPointDist/oconfig_->skittleDivJump;
if (!jump) jump = 1;
// Parcours d'une partie des pixels de l'image
+ // Sauvegarde des points et de la densité
int tmpY;
+ int nbPoints = 0;
std::vector<Hpoint> l;
for (int y = ymin; y < ymax; y += jump)
{
@@ -46,8 +48,13 @@ Skittle::pca (const Zone &zone)
// *f2 << x << " " << y << std::endl;
Hpoint h (x, y);
l.push_back (h);
+ if ((x >= zone.xmin) && (x <= zone.xmax) && (y >= zone.ymin) && (y <= zone.ymax))
+ ++nbPoints;
}
}
+ // Calcul de la densité
+ zone.area = (zone.xmax - zone.xmin) * (zone.ymax - zone.ymin);
+ zone.density = nbPoints * jump * jump / (double)zone.area;
// Calcul de la composante principale
Hotelling hote (l);
hote.eigenVectors ();