chiark / gitweb /
finds cells; now start work on real ocr
authorIan Jackson <ian@liberator.relativity.greenend.org.uk>
Mon, 1 Jun 2009 00:44:54 +0000 (01:44 +0100)
committerIan Jackson <ian@liberator.relativity.greenend.org.uk>
Mon, 1 Jun 2009 00:44:54 +0000 (01:44 +0100)
pctb/convert.c

index b518dba..598d446 100644 (file)
@@ -34,8 +34,9 @@ static inline char get_p(Point p) { return get(p.x,p.y); }
 
 
 #define START_MAIN {200,200}
+#define MIN_COLUMNS         6
 #define INTERESTING_COLUMNS 6
-#define MAX_COLUMNS 7
+#define MAX_COLUMNS         7
 
 static Rect mainr = { START_MAIN,START_MAIN };
 static int commbasey, comminty;
@@ -178,7 +179,7 @@ static void find_structure(void) {
     require_rectangle(across.x,mainr.tl.y, across.x,mainr.br.y, "+");
     across.x++;
   }
-  
+  eassert(colno >= MIN_COLUMNS);
 }                  
 
 static void find_commodity(int offset, Rect *rr) {
@@ -195,6 +196,15 @@ static void find_commodity(int offset, Rect *rr) {
   rr->br.x= mainr.br.x;
 }
 
+static void find_table_entry(Rect commod, int colno, Rect *cellr) {
+  cellr->tl.y= commod.tl.y;
+  cellr->br.y= commod.br.y;
+  cellr->tl.x= !colno ? commod.tl.x : colrightx[colno-1]+2;
+  cellr->br.x=                        colrightx[colno];
+  debug_rect("cell", colno, *cellr);
+  require_rectangle_r(*cellr, " o");
+}
+
 static void load_image_and_canonify(void) {
   struct pam inpam;
   unsigned char rgb[3];
@@ -232,15 +242,22 @@ static void load_image_and_canonify(void) {
 }
 
 int main(void) {
+  Rect thisr, entryr;
+  int tryrect, colno;
+  
   load_image_and_canonify();
   find_structure();
 
-  Rect thisr;
-  int tryrect;
   for (tryrect= +height; tryrect >= -height; tryrect--) {
     find_commodity(tryrect, &thisr);
-    if (thisr.tl.x >= 0)
-      debug_rect("commod",tryrect, thisr);
+    if (thisr.tl.x < 0)
+      continue;
+    debug_rect("commod",tryrect, thisr);
+    
+    for (colno=0; colno<MIN_COLUMNS; colno++) {
+      find_table_entry(thisr,colno,&entryr);
+//      ocr_rectangle(entryr);
+    }
   }
   return 0;
 }