X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?a=blobdiff_plain;f=pctb%2Fconvert.c;h=1d516f9cbfdb5ca5cb9ae2c0babb27d032ed47a5;hb=d9d0cf7585c008aafe1d2de5365b772cda30ff13;hp=93c713708187bfe04361c4f34cac039f3960eaf0;hpb=8787ee59f6840de63bac432b516a30d0dfe22c84;p=ypp-sc-tools.web-live.git diff --git a/pctb/convert.c b/pctb/convert.c index 93c7137..1d516f9 100644 --- a/pctb/convert.c +++ b/pctb/convert.c @@ -30,6 +30,7 @@ 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 TEXT_COLUMNS 2 #define MAX_COLUMNS 7 static Rect mainr = { START_MAIN,START_MAIN }; @@ -64,6 +65,7 @@ static void require_rectangle_r(Rect rr, const char *ok) { } static void debug_rect(const char *what, int whati, Rect rr) { +#ifdef DEBUG_RECTANGLES int y,r,w; fprintf(debug, "%s %d: %d,%d..%d,%d:\n", what, whati, rr.tl.x,rr.tl.y, rr.br.x,rr.br.y); @@ -75,6 +77,7 @@ static void debug_rect(const char *what, int whati, Rect rr) { fputc('|',debug); fputc('\n',debug); } +#endif debug_flush(); } @@ -135,6 +138,7 @@ static void find_structure(void) { down.y++; WALK_UNTIL_MUST(down, y,+1, mainr.br.y, '+'); +#ifdef DEBUG_RECTANGLES int xscaleunit, y,x; for (y=0, xscaleunit=1; y<4; y++, xscaleunit*=10) { fprintf(debug," "); @@ -144,11 +148,10 @@ static void find_structure(void) { } fputc('\n',debug); } +#endif commbasey= up.y; comminty= down.y - up.y + 2; - fprintf(debug, "up.y=%d down.y=%d commbasey=%d comminty=%d\n", - up.y,down.y, commbasey,comminty); Point across= { mainr.tl.x, commbasey }; int colno=0; @@ -158,12 +161,8 @@ static void find_structure(void) { eassert(colno < MAX_COLUMNS); int colrx= across.x; if (colrx > mainr.br.x) colrx= mainr.br.x; - if (colno < INTERESTING_COLUMNS) { + if (colno < INTERESTING_COLUMNS) colrightx[colno]= colrx; - fprintf(debug,"colrightx[%d]= %d\n",colno,colrx); - } else { - fprintf(debug,"extra colr %d %d\n",colno,colrx); - } colno++; @@ -231,14 +230,16 @@ static void load_image_and_canonify(void) { break; } } +#ifdef DEBUG_RECTANGLES fprintf(debug, "%4d ",y); r= fwrite(image + y*width, 1,width, debug); eassert(r==width); fputc('\n',debug); +#endif } debug_flush(); } -static void ocr_rectangle(Rect r) { +static void ocr_rectangle(Rect r, const OcrCellType ct) { OcrResultGlyph *results, *res; int w= r.br.x - r.tl.x + 1; @@ -257,7 +258,7 @@ static void ocr_rectangle(Rect r) { } cols[w]= 0; - results= ocr(rd,w,cols); + results= ocr(rd,ct,w,cols); printf("YES! \""); for (res=results; res->s; res++) printf("%s",res->s); @@ -282,7 +283,10 @@ int main(void) { for (colno=0; colno