00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 00015 00016 00017 00018 00019
00020
00021
00022 #ifndef GOCR_API_H
00023 #define GOCR_API_H
00024
00025
00030 00031 00032
00036 extern int gocr_init ( int argc, char **argv );
00037 extern void gocr_finalize ( void );
00040
00047 enum attributetype {
00048 VERBOSE,
00049 BLOCK_OVERLAP,
00050 NO_BLOCK,
00051 ERROR_FILE,
00052 PRINT,
00053 PRINT_IMAGE
00054 };
00058 typedef enum attributetype gocrAttributeType;
00059
00060 extern int gocr_setAttribute ( gocrAttributeType t, void *value );
00061 extern void * gocr_getAttribute ( gocrAttributeType t );
00067 extern int gocr_imageLoad ( const char *filename );
00068 extern void gocr_imageClose ( void );
00071 00072 00073 00074
00081 enum moduletype {
00082 grayImageFilter,
00083 grayToBW,
00084 bwImageFilter,
00085 blockFinder,
00087 charFinder,
00088 charRecognizer,
00089 contextCorrection,
00090 outputFormatter,
00091 allModules
00092 };
00096 typedef enum moduletype gocr_moduleType;
00097
00098 extern int gocr_moduleLoad ( char *filename );
00099 extern void gocr_moduleClose ( int id );
00100 extern int gocr_moduleSetAttribute ( int id, void *a, void *b );
00101
00102 extern int gocr_functionInsertBefore ( gocr_moduleType t,
00103 char *functionname, void *data, int id );
00104 extern int gocr_functionAppend ( gocr_moduleType t,
00105 char *functionname, void *data );
00106
00107 extern void * gocr_functionDeleteById ( int id );
00108
00109 00110
00111 extern int gocr_runAllModules ( void );
00117 #ifdef PROTOTYPES
00118
00119
00120 #define gocr_moduleFunction(funcname) \
00121 int func (pix *p, void *data)
00122 #define gocr_imageFilter(funcname) \
00123 void func ( void *v )
00124 #define gocr_blockFinder(funcname) \
00125 ( void *v )
00126 #define gocr_charFinder(funcname) \
00127 ( gocrBlock *b, void *v )
00128 #define gocr_charRecognizer(funcname) \
00129 ( gocrImage *pix, gocrBox *b, void *v )
00130 #define gocr_contextCorrection(funcname) \
00131 ( gocrImage *pix, gocrBox *b, void *v )
00132 #define gocr_outputFormatter(funcname) \
00133 ( void *v );
00134
00135 #endif
00136
00137
00138
00139 #endif