-#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 */
static int height, width;
static char *image;
-static void debug_flush(void) {
+void debug_flush(void) {
eassert(!fflush(debug));
eassert(!ferror(debug));
}
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();
for (colno=0; colno<MIN_COLUMNS; colno++) {
find_table_entry(thisr,colno,&entryr);
-// ocr_rectangle(entryr);
+ ocr_rectangle(entryr);
}
}
return 0;