summaryrefslogtreecommitdiff
path: root/2003/i/buzz/src/vision/image.cc
diff options
context:
space:
mode:
Diffstat (limited to '2003/i/buzz/src/vision/image.cc')
-rw-r--r--2003/i/buzz/src/vision/image.cc23
1 files changed, 19 insertions, 4 deletions
diff --git a/2003/i/buzz/src/vision/image.cc b/2003/i/buzz/src/vision/image.cc
index 27f13f8..48fc445 100644
--- a/2003/i/buzz/src/vision/image.cc
+++ b/2003/i/buzz/src/vision/image.cc
@@ -51,15 +51,16 @@ Image::Image (const char *filename, const Thresholds *thresholds)
// Initalisation
m_groups = 0;
m_thresholds = thresholds;
+ m_camera = 0;
}
-Image::Image (const Camera &camera, const Thresholds *thresholds)
+Image::Image (const Camera *camera, const Thresholds *thresholds)
{
+ // Copie la camera.
+ m_camera = camera;
// Allocate memory...
- camera.getSize (m_width, m_height);
+ m_camera->getSize (m_width, m_height);
m_image = new unsigned char [m_width * m_height * 4];
- // Lit l'image. TODO si = 0.
- while (!camera.read (m_image));
// Alloue de la memoire pour les zones.
m_zones = new unsigned char [m_width * m_height];
// Initalisation
@@ -327,3 +328,17 @@ Image::dump (const char *filename)
// Close it.
fclose (fp);
}
+
+// Relit les données de la camera et fait les analyses.
+bool
+Image::reread (void)
+{
+ // Lit l'image.
+ if (m_camera->read (m_image) == 0)
+ return false;
+ filter ();
+ group ();
+ groupFilter ();
+ return true;
+}
+