灵云SDK开发手册(iOS API)  8.1
hci_ocr.h
1 
6 #ifndef __HCI_OCR_HEADER__
7 #define __HCI_OCR_HEADER__
8 
9 #include "hci_sys.h"
10 
11 #ifdef __OBJC__
12 #include <UIKit/UIImage.h>
13 #endif
14 
15 #ifdef __cplusplus
16 extern "C"
17 {
18 #endif
19 
21 /* @{ */
22 
24  /* @{ */
25 
29  #define OCR_MODULE "HCI_OCR"
30 
31 
32 
33 #pragma pack (push, ocr_api)
34 #pragma pack (8)
35 
40  typedef struct OCR_IMAGE_T
41  {
42  _MUST_ _IN_ int nWidth;
43  _MUST_ _IN_ int nHeight;
44 
46  _MUST_ _IN_ int nBitsPerPixel;
53  _MUST_ _IN_ unsigned char ** pLines;
54 
55  _OPT_ _IN_ int xResolution;
56  _OPT_ _IN_ int yResolution;
57  }OCR_IMAGE;
58 
59 #pragma pack (pop, ocr_api)
60 
64 #define CANDIDATE_NUM 5
65 
69 typedef enum _tag_OCR_RECOG_RGNTYPE
70 {
76 }
78 
82 typedef enum _tag_OCR_RECOG_LANG
83 {
84  //iRead6.0_Text6.0.1.1997 此版本去掉缺省配置
85  //OCR_RECOG_LANG_DEFAULT = 0, ///< 缺省语言,由识别配置串决定
90 }
92 
96 typedef enum _tag_OCR_TABLE_LINE_TYPE
97 {
103  LINE_TYPE_EMPTY = 0x100,
104 }
106 
110 typedef enum _tag_OCR_RECOG_NODE_TYPE
111 {
117 }
119 
121 // 数据结构定义
122 
126 typedef struct _tag_OCR_RECOG_POINT
127 {
128  int x;
129  int y;
130 }
132 
136 typedef struct _tag_OCR_CORNERS_RESULT
137 {
142  int angle;
143 }
145 
149 typedef struct _tag_OCR_RECOG_RECT
150 {
151  int left;
152  int top;
153  int right;
154  int bottom;
155 }
157 
158 //----------------------------------------------------------------------------
159 // 版面相关信息定义
160 
167 typedef struct _tag_OCR_RECOG_LINESEGMENT
168 {
170  int nStartX;
171 
173  int nStartY;
174 
176  int nEndX;
177 
179  int nEndY;
180 
183 
186 }
188 
193 typedef struct _tag_OCR_RECOG_FRAMELINE
194 {
196  OCR_RECOG_LINESEGMENT * pSegment; //对应的表格线小段的第一段的指针
197 
200 }
202 
208 typedef struct _tag_OCR_RECOG_TABLECELL
209 {
212 
215 
218 
221 
223  int nCellNo;
224 }
226 
230 typedef struct _tag_OCR_RECOG_TABLE
231 {
234 
236  int nHLine;
237 
240 
242  int nVLine;
243 
246 
249 }
251 
255 typedef struct _tag_OCR_RECOG_REGION
256 {
259 
263 
267 
270 }
272 
276 typedef struct _tag_OCR_RECOG_LAYOUT_RESULT
277 {
280 
283 }
285 
286 
290 typedef struct _tag_OCR_RECOG_DESKEW_RESULT
291 {
294 }
296 
297 
298 //----------------------------------------------------------------------------
299 // 文档结果定义
300 
304 typedef struct _tag_OCR_RECOG_PAGENODE
305 {
307  int nWidth;
308 
310  int nHeight;
311 
314 }
316 
320 typedef struct _tag_OCR_RECOG_REGIONNODE
321 {
324 
326  unsigned short wRegionType;
327 
330  unsigned short wRecogLang;
331 }
333 
337 typedef struct _tag_OCR_RECOG_CELLNODE
338 {
341 }
343 
347 typedef struct _tag_OCR_RECOG_LINENODE
348 {
351 
354 
356  int xChar;
357 
359  int yChar;
360 }
362 
366 typedef struct _tag_OCR_RECOG_CHARNODE
367 {
369  char * pszChar;
370 
373  char * pszCandidateWords[CANDIDATE_NUM];
374 
377 
379  bool bAccept;
380 
383 }
385 
389 typedef struct _tag_OCR_RECOG_NODE
390 {
393 
395  union
396  {
397  OCR_RECOG_PAGENODE nodePage;
398  OCR_RECOG_REGIONNODE nodeRegion;
399  OCR_RECOG_CELLNODE nodeCell;
400  OCR_RECOG_LINENODE nodeLine;
401  OCR_RECOG_CHARNODE nodeChar;
402  };
403 }
405 
409 typedef struct _tag_OCR_RECOG_RESULT
410 {
412  char * pTextBuf;
413 
416 
419 
424 
425 }
427 
428 /* @} */
430 /* @{ */
431 
493  _MUST_ _IN_ const char * pszConfig
494  );
495 
548  _MUST_ _IN_ const char * pszConfig,
549  _MUST_ _OUT_ int *pnSessionId
550  );
551 
632  _MUST_ _IN_ int nSessionId,
633  _OPT_ _IN_ const char * pszConfig,
634  _MUST_ _OUT_ OCR_DESKEW_RESULT * psOcrDeskewResult
635  );
636 
648  _MUST_ _IN_ OCR_DESKEW_RESULT * psOcrDeskewResult
649  );
650 
718  _MUST_ _IN_ int nSessionId,
719  _OPT_ _IN_ const char * pszConfig,
720  _MUST_ _OUT_ OCR_LAYOUT_RESULT * psOcrLayoutResult
721  );
722 
734  _MUST_ _IN_ OCR_LAYOUT_RESULT * psOcrLayoutResult
735  );
736 
952  _MUST_ _IN_ int nSessionId,
953  _OPT_ _IN_ const char * pszConfig,
954  _OPT_ _IN_ const OCR_RECOG_REGION * pRegions,
955  _OPT_ _IN_ unsigned int nRegionCount,
956  _MUST_ _OUT_ OCR_RECOG_RESULT * psOcrRecogResult
957  );
958 
970  _MUST_ _IN_ OCR_RECOG_RESULT * psOcrRecogResult
971  );
972 
985  _MUST_ _IN_ int nSessionId
986  );
987 
999 
1015  _MUST_ _IN_ int nSessionId ,
1016  _MUST_ _IN_ unsigned char * pImageData,
1017  _MUST_ _IN_ unsigned int uiImageDataSize
1018  );
1019 
1035  _MUST_ _IN_ int nSessionId ,
1036  _MUST_ _IN_ const char * pszImageFileName
1037  );
1038 
1039 
1056  _MUST_ _IN_ int nSessionId,
1057  _MUST_ _OUT_ OCR_IMAGE* pImage
1058  );
1059 
1078  _MUST_ _IN_ const char * pszImageFileName,
1079  _MUST_ _IN_ OCR_IMAGE * pImage
1080  );
1081 
1129  _MUST_ _IN_ const char * pszConfig,
1130  _MUST_ _IN_ const char *pszTemplateFile,
1131  _MUST_ _OUT_ int *pnTemplateID
1132  );
1133 
1134 
1135 
1136 
1152  _MUST_ _IN_ int nTemplateID
1153  );
1154 
1155 
1173  _MUST_ _IN_ int nSessionId,
1174  _MUST_ _IN_ unsigned char * pImageData,
1175  _MUST_ _IN_ unsigned int imageType,
1176  _MUST_ _IN_ unsigned int width,
1177  _MUST_ _IN_ unsigned int height
1178  );
1179 
1180 
1181 #ifdef __OBJC__
1182 
1199  _MUST_ _IN_ int nSessionID,
1200  _MUST_ _IN_ UIImage * image
1201  );
1202 
1203 
1224  _MUST_ _IN_ int nSessionID,
1225  _MUST_ _OUT_ UIImage ** image
1226  );
1227 
1228 #endif
1229 
1230 /* @} */
1231 
1232 /* @} */
1234 
1235 #ifdef __cplusplus
1236 };
1237 #endif
1238 
1239 
1240 #endif