chiark / gitweb /
new context arrangements
[ypp-sc-tools.web-live.git] / pctb / convert.c
index 163f81448882a632980e5a6b6db1db7a778607a1..93c713708187bfe04361c4f34cac039f3960eaf0 100644 (file)
@@ -35,7 +35,8 @@ static inline char get_p(Point p) { return get(p.x,p.y); }
 static Rect mainr = { START_MAIN,START_MAIN };
 static int commbasey, comminty;
 static int colrightx[INTERESTING_COLUMNS];
 static Rect mainr = { START_MAIN,START_MAIN };
 static int commbasey, comminty;
 static int colrightx[INTERESTING_COLUMNS];
-
+static int text_h;
+static OcrReader *rd;
 
 static const CanonColourInfo canoncolourinfos[]= {
   { 0x475A5E, '*' }, /* edge */
 
 static const CanonColourInfo canoncolourinfos[]= {
   { 0x475A5E, '*' }, /* edge */
@@ -174,6 +175,8 @@ static void find_structure(void) {
     across.x++;
   }
   eassert(colno >= MIN_COLUMNS);
     across.x++;
   }
   eassert(colno >= MIN_COLUMNS);
+
+  text_h = comminty - 1;
 }                  
 
 static void find_commodity(int offset, Rect *rr) {
 }                  
 
 static void find_commodity(int offset, Rect *rr) {
@@ -239,12 +242,11 @@ static void ocr_rectangle(Rect r) {
   OcrResultGlyph *results, *res;
 
   int w= r.br.x - r.tl.x + 1;
   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;
   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) {
+    for (y=0, cx=0, rv=1; y<text_h; y++, rv<<=1) {
       switch (get(x+r.tl.x, y+r.tl.y)) {
       case ' ':           break;
       case 'o': cx |= rv; break;
       switch (get(x+r.tl.x, y+r.tl.y)) {
       case ' ':           break;
       case 'o': cx |= rv; break;
@@ -255,7 +257,7 @@ static void ocr_rectangle(Rect r) {
   }
   cols[w]= 0;
 
   }
   cols[w]= 0;
 
-  results= ocr(w,h,cols);
+  results= ocr(rd,w,cols);
   printf("YES! \"");
   for (res=results; res->s; res++)
     printf("%s",res->s);
   printf("YES! \"");
   for (res=results; res->s; res++)
     printf("%s",res->s);
@@ -268,9 +270,9 @@ int main(void) {
   Rect thisr, entryr;
   int tryrect, colno;
 
   Rect thisr, entryr;
   int tryrect, colno;
 
-  ocr_init();
   load_image_and_canonify();
   find_structure();
   load_image_and_canonify();
   find_structure();
+  rd= ocr_init(text_h);
 
   for (tryrect= +height; tryrect >= -height; tryrect--) {
     find_commodity(tryrect, &thisr);
 
   for (tryrect= +height; tryrect >= -height; tryrect--) {
     find_commodity(tryrect, &thisr);
@@ -285,3 +287,5 @@ int main(void) {
   }
   return 0;
 }
   }
   return 0;
 }
+
+const char *get_vardir(void) { return "."; }