chiark / gitweb /
compatibility version check
[ypp-sc-tools.db-test.git] / pctb / convert.c
index 598d44686661cb5e45e8da62d1ebd2261098de87..c8082e697cea3ff4f70b26c1e1d24c9e72e2eafc 100644 (file)
@@ -1,11 +1,5 @@
-#include <pam.h>
-#include <stdint.h>
-#include <inttypes.h>
-#include <assert.h>
-#include <string.h>
 
-#define eassert assert
-#define debug stdout
+#include "ocr.h"
 
 typedef struct {
   unsigned long rgb; /* on screen */
@@ -15,7 +9,7 @@ typedef struct {
 static int height, width;
 static char *image;
 
-static void debug_flush(void) {
+void debug_flush(void) {
   eassert(!fflush(debug));
   eassert(!ferror(debug));
 }
@@ -241,10 +235,40 @@ static void load_image_and_canonify(void) {
   debug_flush();
 }
 
+static void ocr_rectangle(Rect r) {
+  OcrResultGlyph *results, *res;
+
+  int w= r.br.x - r.tl.x + 1;
+  int h= r.br.y - r.tl.y + 1;
+  Pixcol cols[w+1];
+  int x,y;
+  for (x=0; x<w; x++) {
+    Pixcol cx, rv;
+    for (y=0, cx=0, rv=1; y<h; y++, rv<<=1) {
+      switch (get(x+r.tl.x, y+r.tl.y)) {
+      case ' ':           break;
+      case 'o': cx |= rv; break;
+      default: eassert(!"wrong pixel");
+      }
+    }
+    cols[x]= cx;
+  }
+  cols[w]= 0;
+
+  results= ocr(w,h,cols);
+  printf("YES! \"");
+  for (res=0; res->s; res++)
+    printf("%s",res->s);
+  printf("\"\n");
+  eassert(!ferror(stdout));
+  eassert(!fflush(stdout));
+}
+
 int main(void) {
   Rect thisr, entryr;
   int tryrect, colno;
-  
+
+  ocr_init();
   load_image_and_canonify();
   find_structure();
 
@@ -256,7 +280,7 @@ int main(void) {
     
     for (colno=0; colno<MIN_COLUMNS; colno++) {
       find_table_entry(thisr,colno,&entryr);
-//      ocr_rectangle(entryr);
+      ocr_rectangle(entryr);
     }
   }
   return 0;