BaseJpegDeocde exampe program
Dependencies: BaseJpegDecode Terminal BaseUsbHost mbed mbed-rtos
Fork of BaseJpegDecode by
Diff: example1_c270.cpp
- Revision:
- 3:2709bbf8baae
- Parent:
- 2:697ebeb8336f
- Child:
- 4:7d88de31c55a
diff -r 697ebeb8336f -r 2709bbf8baae example1_c270.cpp --- 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(); } }