BaseJpegDeocde exampe program

Dependencies:   BaseJpegDecode Terminal BaseUsbHost mbed mbed-rtos

Fork of BaseJpegDecode by Norimasa Okamoto

Revision:
3:2709bbf8baae
Parent:
2:697ebeb8336f
Child:
4:7d88de31c55a
--- a/example1_c270.cpp	Mon Oct 22 14:10:04 2012 +0000
+++ b/example1_c270.cpp	Thu Oct 25 11:02:17 2012 +0000
@@ -1,4 +1,4 @@
-#if 1
+#if 0
 //
 // simple color tracking
 //
@@ -9,7 +9,9 @@
 
 // Logitech C270
 #define WIDTH  320
-#define HEIGHT 176
+#define HEIGHT 240
+
+#define THRESHOLD 100
 
 #define ASSERT(A) while(!(A)){fprintf(stderr,"\n\n%s@%d %s ASSERT!\n\n",__PRETTY_FUNCTION__,__LINE__,#A);exit(1);};
 
@@ -20,14 +22,16 @@
 public:
     int y_center, x_center;
     int m_x_sum, m_y_sum, m_sum;
-    int8_t m_buf[WIDTH/16*HEIGHT/8];
+    int16_t m_buf[WIDTH/16*HEIGHT/8];
     virtual void outputDC(int mcu, int block, int value) {
         if (mcu >= (WIDTH/16*HEIGHT/8)) {
             return;
         }
         if (block == 3) { // 0-1:Y 2:Cb 3:Cr
+            value *= qt[1][0];
+            ASSERT(value < 32367 && value > -32368);
             m_buf[mcu] = value; // debug
-            if (value >= 3) { // red
+            if (value >= THRESHOLD) { // red
                 m_x_sum += value*(mcu%(WIDTH/16));
                 m_y_sum += value*(mcu/(WIDTH/16));
                 m_sum += value;
@@ -79,7 +83,7 @@
             term.locate(0, y);
             for(int x = 0; x < WIDTH/16; x++) {
                 int value = calc->m_buf[y*WIDTH/16+x];
-                if (value >= 3) {
+                if (value >= THRESHOLD) {
                     fg = 0xff0000; // red
                 } else {
                     fg = 0xffffff; // white
@@ -88,7 +92,7 @@
                     term.foreground(fg);
                     old_fg = fg;
                 }
-                term.printf("%+3d,", value);
+                term.printf("%+4d,", value);
                 cam->poll();
             }
         }