灵云SDK开发手册(C API)  5.2
 全部 结构体 函数 变量 类型定义 枚举 枚举值  
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 
973  _MUST_ _IN_ int nSessionId,
974  _OPT_ _IN_ const char * pszConfig,
975  _OPT_ _IN_ const OCR_RECOG_REGION * pRegions,
976  _OPT_ _IN_ unsigned int nRegionCount,
977  _MUST_ _OUT_ OCR_RECOG_RESULT * psOcrRecogResult
978  );
979 
991  _MUST_ _IN_ OCR_RECOG_RESULT * psOcrRecogResult
992  );
993 
1006  _MUST_ _IN_ int nSessionId
1007  );
1008 
1019 HCI_ERR_CODE HCIAPI hci_ocr_release();
1020 
1036  _MUST_ _IN_ int nSessionId ,
1037  _MUST_ _IN_ unsigned char * pImageData,
1038  _MUST_ _IN_ unsigned int uiImageDataSize
1039  );
1040 
1056  _MUST_ _IN_ int nSessionId ,
1057  _MUST_ _IN_ const char * pszImageFileName
1058  );
1059 
1060 
1077  _MUST_ _IN_ int nSessionId,
1078  _MUST_ _OUT_ OCR_IMAGE* pImage
1079  );
1080 
1099  _MUST_ _IN_ const char * pszImageFileName,
1100  _MUST_ _IN_ OCR_IMAGE * pImage
1101  );
1102 
1150  _MUST_ _IN_ const char * pszConfig,
1151  _MUST_ _IN_ const char *pszTemplateFile,
1152  _MUST_ _OUT_ int *pnTemplateID
1153  );
1154 
1155 
1156 
1157 
1173  _MUST_ _IN_ int nTemplateID
1174  );
1175 
1176 #define FMT_I420 0 //YV21
1177 #define FMT_YV12 1
1178 #define FMT_NV21 2 //当前仅支持NV21格式
1179 #define FMT_NV12 3
1180 
1198  _MUST_ _IN_ int nSessionId,
1199  _MUST_ _IN_ unsigned char * pImageData,
1200  _MUST_ _IN_ unsigned int imageType,
1201  _MUST_ _IN_ unsigned int width,
1202  _MUST_ _IN_ unsigned int height
1203  );
1204 
1205 
1206 #ifdef __OBJC__
1207 
1223 HCI_ERR_CODE HCIAPI hci_ocr_set_image_by_uiImage(
1224  _MUST_ _IN_ int nSessionID,
1225  _MUST_ _IN_ UIImage * image
1226  );
1227 
1228 
1248 HCI_ERR_CODE HCIAPI hci_ocr_get_uiImage(
1249  _MUST_ _IN_ int nSessionID,
1250  _MUST_ _OUT_ UIImage ** image
1251  );
1252 
1253 #endif
1254 
1255 /* @} */
1256 
1257 /* @} */
1259 
1260 #ifdef __cplusplus
1261 };
1262 #endif
1263 
1264 
1265 #endif