Video Analysis底层库拆分,sdk的go封装
chenshijun
2020-09-09 a3dc3aa4ec63bcc7844bc4ae7a77f992b9fa74dd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
// ***************************************************************
//  TH_PlateID.h   version:  4.0     date: 2010.4.12
//  -------------------------------------------------------------
//  清华大学智能图文信息处理研究室。版权所有。
//  -------------------------------------------------------------
//  Center for Intelligent Image and Document Information Processing
//  -------------------------------------------------------------
//  Copyright (C) 2007 - All Rights Reserved
// ***************************************************************
//   Author: Liu CS, Zhou J
// ***************************************************************
//        Revision history:
//            2010.4.12: v4.0, TH_PlateID车牌识别SDK的接口
// ***************************************************************
 
#ifndef __TH_PLATEID_H_INCLUDE__
#define __TH_PLATEID_H_INCLUDE__
 
#if !defined(WIN32) && !defined(__stdcall)
#define __stdcall
#endif
 
#include "TH_ErrorDef.h"
 
#ifdef __cplusplus
extern "C" {
#endif
 
 
//车牌颜色
#define LC_UNKNOWN  0    // 未知
#define LC_BLUE   1        // 蓝色
#define LC_YELLOW 2        // 黄色
#define LC_WHITE  3        // 白色
#define LC_BLACK  4        // 黑色
#define LC_GREEN  5        // 绿色
#define LC_YELLOWGREEN  6    //黄绿色-大型新能源车牌颜色
    
//车牌类型
#define LT_UNKNOWN  0   //未知车牌
#define LT_BLUE     1   //蓝牌
#define LT_BLACK    2   //黑牌
#define LT_YELLOW   3   //单排黄牌
#define LT_YELLOW2  4   //双排黄牌(大车尾牌,农用车)
#define LT_POLICE   5   //警车车牌
#define LT_ARMPOL   6   //武警车牌
#define LT_INDIVI   7   //个性化车牌
#define LT_ARMY     8   //单排军车
#define LT_ARMY2    9   //双排军车
#define LT_EMBASSY  10  //使馆牌
#define LT_HONGKONG 11  //香港牌
#define LT_TRACTOR  12  //拖拉机
#define LT_MACAU    13  //澳门牌
#define LT_CHANGNEI 14  //厂内牌
#define LT_MINHANG  15  //民航牌
#define LT_CONSULATE 16 //领事馆车牌
#define LT_NEWENERGY 17 //新能源车牌-小型车
#define LT_NEWENERGY2 18 //新能源车牌-大型车
 
//车辆颜色
#define LGRAY_DARK    0    //深
#define LGRAY_LIGHT    1    //浅
 
#define LCOLOUR_WHITE    0    //白    
#define LCOLOUR_SILVER    1    //灰(银)
#define LCOLOUR_YELLOW    2    //黄
#define LCOLOUR_PINK    3    //粉
#define LCOLOUR_RED        4    //红
#define LCOLOUR_GREEN    5    //绿
#define LCOLOUR_BLUE    6    //蓝
#define LCOLOUR_BROWN    7    //棕 
#define LCOLOUR_BLACK    8    //黑
 
 
//运动方向
#define DIRECTION_UNKNOWN    0
#define DIRECTION_LEFT    1
#define DIRECTION_RIGHT    2
#define DIRECTION_UP    3
#define DIRECTION_DOWN    4
 
//图像格式(TH_SetImageFormat函数的cImageFormat参数)
#define ImageFormatRGB        0            //RGBRGBRGB...
#define ImageFormatBGR        1            //BGRBGRBGR...
#define ImageFormatYUV422    2            //YYYY...UU...VV..    (YV16)
#define ImageFormatYUV420COMPASS 3        //YYYY...UV...        (NV12)
#define ImageFormatYUV420    4            //YYYY...U...V...    (YU12)
#define ImageFormatUYVY        5            //UYVYUYVYUYVY...    (UYVY)
#define ImageFormatNV21        6            //YYYY...VU...        (NV21)
#define ImageFormatYV12        7            //YYYY...V...U        (YV12)
#define ImageFormatNV16     8           //YYYY...UVUV...    (NV16或YUV422SP) UV列方向抽样,行方向不变 
 
//车牌类型支持设置定义
//(TH_SetEnabledPlateFormat函数的dFormat参数)
#define PARAM_INDIVIDUAL_ON          0        // 个性化车牌开启
#define PARAM_INDIVIDUAL_OFF         1        // 个性化车牌关闭
#define PARAM_TWOROWYELLOW_ON         2        // 双层黄色车牌开启
#define PARAM_TWOROWYELLOW_OFF         3        // 双层黄色车牌关闭
#define PARAM_ARMPOLICE_ON           4        // 单层武警车牌开启
#define PARAM_ARMPOLICE_OFF          5        // 单层武警车牌关闭
#define PARAM_TWOROWARMY_ON          6        // 双层军队车牌开启
#define PARAM_TWOROWARMY_OFF         7        // 双层军队车牌关闭
#define PARAM_TRACTOR_ON             8        // 农用车车牌开启
#define PARAM_TRACTOR_OFF             9        // 农用车车牌关闭
#define PARAM_ONLY_TWOROWYELLOW_ON   10        // 只识别双层黄牌开启
#define PARAM_ONLY_TWOROWYELLOW_OFF  11        // 只识别双层黄牌关闭
#define PARAM_EMBASSY_ON             12        // 使馆车牌开启
#define PARAM_EMBASSY_OFF             13        // 使馆车牌关闭
#define PARAM_ONLY_LOCATION_ON         14        // 只定位车牌开启
#define PARAM_ONLY_LOCATION_OFF         15        // 只定位车牌关闭
#define PARAM_ARMPOLICE2_ON             16        // 双层武警车牌开启
#define PARAM_ARMPOLICE2_OFF         17        // 双层武警车牌关闭
#define PARAM_CHANGNEI_ON             18        // 厂内车牌开启
#define PARAM_CHANGNEI_OFF             19        // 厂内车牌关闭
#define PARAM_MINHANG_ON             20        // 民航车牌开启
#define PARAM_MINHANG_OFF             21        // 民航车牌关闭
#define PARAM_CONSULATE_ON           22     // 领事馆车牌开启
#define PARAM_CONSULATE_OFF          23     // 领事馆车牌关闭
#define PARAM_NEWENERGY_ON           24     // 新能源车牌开启
#define PARAM_NEWENERGY_OFF          25     // 新能源车牌关闭
 
#define RECOG_STAGE_ALL            0        // 无错误
#define RECOG_STAGE_FINDPLATE    1        // 没有找到车牌
#define RECOG_STAGE_PLATESCORE_ZERO    2    // 车牌评价值(0分)
#define RECOG_STAGE_PLATESCORE_LOW    3    // 车牌评价值(不及格)
#define RECOG_STAGE_RECOGSCORE_ZERO    4    // 车牌识别分数(0分)
#define RECOG_STAGE_RECOGSCORE_LOW    5    // 车牌识别分数(不及格)
 
    
//车标类型
#define CarLogo_UNKNOWN       0    //未知
#define CarLogo_AUDI          1    //奥迪
#define CarLogo_BMW           2    //宝马
#define CarLogo_BENZ          3    //奔驰
#define CarLogo_HONDA         4    //本田
#define CarLogo_PEUGEOT       5    //标志
#define CarLogo_BUICK         6    //别克
#define CarLogo_DASAUTO       7    //大众
#define CarLogo_TOYOTA        8    //丰田
#define CarLogo_FORD          9    //福特
#define CarLogo_SUZUKI        10   //铃木
#define CarLogo_MAZDA         11   //马自达
#define CarLogo_KIA           12   //起亚
#define CarLogo_NISSAN        13   //日产尼桑
#define CarLogo_HYUNDAI       14   //现代
#define CarLogo_CHEVROLET     15   //雪佛兰
#define CarLogo_CITROEN       16   //雪铁龙
 
#define CarLogo_QIRUI         17   //奇瑞
#define CarLogo_WULING        18   //五菱
#define CarLogo_DONGFENG      19   //东风
#define CarLogo_JIANGHUAI     20   //江淮
#define CarLogo_BEIQI         21   //北汽
#define CarLogo_CHANGAN       22   //长安
#define CarLogo_AOCHI         23   //奥驰
#define CarLogo_SHAOLING      24   //少林
#define CarLogo_SHANQI        25   //陕汽
#define CarLogo_SANLING       26   //三菱
#define CarLogo_JILI          27   //吉利
#define CarLogo_HAOWO         28   //豪沃
#define CarLogo_HAIMA         29   //海马
#define CarLogo_HAFEI         30   //哈飞
#define CarLogo_CHANGCHENG    31   //长城
#define CarLogo_FUTIAN        32   //福田
#define CarLogo_NANJUN        33   //南骏
#define CarLogo_LIUQI         34   //柳汽
 
// 车辆类型
#define CARTYPE_UNKNOWN        0    // 未知
#define CARTYPE_SALOON        1    // 轿车
#define CARTYPE_VAN            2    // 面包车
 
typedef struct TH_RECT
{
    int left;
    int top;
    int right;
    int bottom;
}TH_RECT;
 
 
typedef struct TH_PlateIDCfg
{
    int nMinPlateWidth;                    // 检测的最小车牌宽度,以像素为单位
    int nMaxPlateWidth;                    // 检测的最大车牌宽度,以像素为单位
    
    int nMaxImageWidth;                    // 最大图像宽度
    int nMaxImageHeight;                // 最大图像高度
 
    unsigned char bVertCompress;        // 是否垂直方向压缩1倍后识别
    unsigned char bIsFieldImage;        // 是否是场图像
    unsigned char bOutputSingleFrame;    // 是否视频图像中同一个车的多幅图像只输出一次结果        
    unsigned char bMovingImage;            // 识别运动or静止图像
 
    unsigned char bIsNight;
    unsigned char nImageFormat;
 
    unsigned char * pFastMemory;        // DSP等的片内内存,耗时多的运算优先使用这些内存
    int nFastMemorySize;                // 快速内存的大小
 
    unsigned char *pMemory;                // 普通内存的地址,内建的内存管理,避免内存泄漏等问题
    int nMemorySize;                    // 普通内存的大小
 
    int (*DMA_DataCopy)(void *dst, void *src,int nSize);
    int (*Check_DMA_Finished)();
 
    int nLastError;            // 用于传递错误信息
                            // 0: 无错误
                            // 1: FindPlate(没有找到车牌)
                            // 2: 车牌评价值(0分)
                            // 3: 车牌评价值(不及格)
                            // 4: 车牌识别分数(0分)
                            // 5: 车牌识别分数(不及格)
    int nErrorModelSN;        // 出错的模块编号
    unsigned char nOrderOpt;            //输出顺序选项 0-置信度 1-自上而下 2-自下而上
    unsigned char bLeanCorrection;        // 是否启用车牌旋转功能,默认开启
    unsigned char bMovingOutputOpt;       // 0-内部推送+外部获取 1:外部获取    
    unsigned char nImproveSpeed;        // 0: 识别率优先 1:识别速度优先
    unsigned char bCarLogo;             // 0: 不检测车标 1: 检测车标
    unsigned char bLotDetect;            // 0: 不检测车位 1: 检测车位
 
    unsigned char bShadow;              // 0: 针对无阴影的车牌 1:针对有阴影的车牌,默认开启
    unsigned char bUTF8;                // 0:汉字GBK,1:汉字UTF-8
    unsigned char bShieldRailing;        // 0: 屏蔽栏杆干扰, 1:不屏蔽栏杆干扰
    unsigned char bCarModel;        // 0: 不识别车型, 1: 识别车型
    //char reserved[110];                // WIN_X86
    char reserved[110+128];                // WIN_X64
 
}TH_PlateIDCfg;
 
 
typedef struct TH_PlateIDResult 
{
    char license[16];    // 车牌字符串
    char color[8];        // 车牌颜色
 
    int nColor;            // 车牌颜色
    int nType;            // 车牌类型
    int nConfidence;    // 整牌可信度
    int nBright;        // 亮度评价
    int nDirection;        // 车牌运动方向,0 unknown, 1 left, 2 right, 3 up, 4 down 
    
    TH_RECT rcLocation;                // 车牌坐标
    const unsigned char *pbyBits;    /* 该识别结果对应的图片的缓冲区, 只有当 bOutputSingleFrame = true 时,该指针才有效。
                                    下次识别后,该缓冲区内容被覆盖。调用程序无需释放该缓冲区。
                                    缓冲区大小等于传递进来的图片数据的长度*/
    int nTime;                        // 识别耗时
    unsigned char nCarBright;        //车的亮度
    unsigned char nCarColor;        //车的颜色
    unsigned char nCarLogo;         //车标类型
    unsigned char nCarType;            //车辆类型
    unsigned char *pbyPlateBin;     //车牌二值化结果(按bit存储)
    unsigned short nBinPlateWidth;  //二值化结果中车牌宽度
    unsigned short nBinPlateHeight; //二值化结果中车牌高度
    char reserved[70];                //保留
    TH_RECT rcLogoLocation;            // 车标坐标
    unsigned short nCarModel;        // 车辆类型
    unsigned short nCarModelConfidence;        //车型可信度    
}TH_PlateIDResult;
 
 
/************************************************************************/
/* TH_InitPlateIDSDK: 初始化车牌识别SDK,在使用该SDK的功能前            */
/*            必需且仅需调用一次该函数                                    */
/*        Parameters:                                                        */
/*            pPlateConfig[in]: 车牌识别SDK的配置                            */
/*        Return Value: int(ERR_Code)                                        */
/************************************************************************/
int __stdcall TH_InitPlateIDSDK(TH_PlateIDCfg *pPlateConfig);
 
/************************************************************************/
/* TH_UninitPlateIDSDK: 释放车牌识别SDK,在使用该SDK的功能后            */
/*            必需且仅需调用一次该函数,以释放内存。                        */
/*        Return Value: int(ERR_Code)                                        */
/************************************************************************/
int __stdcall TH_UninitPlateIDSDK(TH_PlateIDCfg *pPlateCfg);
 
/************************************************************************/
/* TH_RecogImage: 识别内存中车牌图像(输出识别到的多个结果)    */
/*        Parameters:                                                        */
/*            pbyBits[in]: 指向内存图像数据的指针,3个字节表示1个像素        */
/*            nWidth[in]: 图像的宽度                                        */
/*            nHeight[in]: 图像的高度                                        */
/*            pResult[out]: 车牌识别结果数组, 调用方开辟pResult[nResultNum]内存*/
/*            nResultNum[in,out]: in 最大候选车牌个数,out 识别出的车牌个数*/
/*            prcRange[in]: 指定识别范围                                    */
/*        Return Value: int(ERR_Code)                                        */
/************************************************************************/
int __stdcall TH_RecogImage(const unsigned char *pbyBits, int nWidth, int nHeight, TH_PlateIDResult *pResult,
    int *nResultNum, const TH_RECT *prcRange, TH_PlateIDCfg *pPlateConfig);
 
/************************************************************************/
/* TH_EvaluateCarColor: 识别车的颜色                                    */
/*        Parameters:                                                        */
/*            pbyBits[in]: 指向内存图像数据的指针,3个字节表示1个像素        */
/*            nWidth[in]: 图像的宽度                                        */
/*            nHeight[in]: 图像的高度                                        */
/*            pResult[out]: 车牌识别结果数组, 调用方开辟pResult[nResultNum]内存*/
/*            nResultNum[in,out]: in 最大候选车牌个数,out 识别出的车牌个数*/
/*            prcRange[in]: 指定识别范围                                    */
/*        Return Value: int(ERR_Code)                                        */
/*        TH_EvaluateCarColor紧接TH_RecogImage之后调用,保持参数不变        */
/************************************************************************/
int __stdcall TH_EvaluateCarColor(const unsigned char *pbyBits, int nWidth, int nHeight, TH_PlateIDResult *pResult,
    int *nResultNum, const TH_RECT *prcRange, TH_PlateIDCfg *pPlateConfig);
 
/************************************************************************/
/* TH_SetImageFormat: 设置图像格式                                        */
/*        Parameters:                                                        */
/*            cImageFormat[in]: 图像格式                                    */
/*            bVertFlip[in]: 是否颠倒                                        */
/*            bDwordAligned[in]: 是否4字节对齐                            */
/*        Return Value: int(ERR_Code)                                        */
/************************************************************************/
int __stdcall TH_SetImageFormat( unsigned char cImageFormat, unsigned char bVertFlip, unsigned char bDwordAligned, TH_PlateIDCfg *pPlateConfig );
 
/************************************************************************/
/* TH_SetEnabledPlateFormat: 设置支持的车牌类型                            */
/*        Parameters:                                                        */
/*            dFormat[in]: 车牌类型开关,例如PARAM_INDIVIDUAL_ON            */
/*        Return Value: int(ERR_Code)                                        */
/************************************************************************/
int __stdcall TH_SetEnabledPlateFormat(unsigned int dFormat, TH_PlateIDCfg *pPlateConfig);
 
/************************************************************************/
/* TH_SetProvinceOrder: 设置省份字符串                                    */
/*        Parameters:                                                        */
/*            szProvince[in]: 默认省份字符串,例如"京津冀",最多支持8个省份*/
/*        Return Value: int(ERR_Code)                                        */
/************************************************************************/
int __stdcall TH_SetProvinceOrder( char* szProvince, TH_PlateIDCfg *pPlateConfig);
 
/************************************************************************/
/* TH_SetRecogThreshold: 设置识别阈值                                    */
/*        Parameters:                                                        */
/*            nPlateLocate_Th[in]: 0 - 9        --   7: 默认阈值            */
/*                    nOCR_Th[in]: 0 - 9        --   5: 默认阈值            */
/*                0: 最宽松的阈值                                            */
/*                9:最严格的阈值                                            */
/*        Return Value: int(ERR_Code)                                        */
/************************************************************************/
int __stdcall TH_SetRecogThreshold( unsigned char nPlateLocate_Th, unsigned char nOCR_Th, TH_PlateIDCfg *pPlateCfg);
 
//检查工作过程中最小的剩余内存,如果出现负数,则需要增加给定的初始内存
int __stdcall TH_CheckMinFreeMemory( int *pnMinFreeSRAM, int *pnMinFreeSDRAM, TH_PlateIDCfg *pPlateCfg);
 
/************************************************************************/
/* 功能: 获取版本号                                                        */
/*        Parameters:无                                                    */
/*        返回值: 字符串 格式:主版本号.副版本号.修订号.编译号            */
/*                不用释放该指针。                                        */
/************************************************************************/
const char * __stdcall TH_GetVersion();
 
/************************************************************************/
/* 功能: 获取加密锁ID, 加密锁ID是8字节唯一ID,                            */
/*        调用此函数前需要调用TH_InitPlateIDSDK                            */
/*        Parameters:存在唯一ID时,ID1是前4字节,ID2是后四字节            */
/*        返回值: 0-有唯一ID                                                */
/*                1-无唯一ID                                                */
/************************************************************************/
int __stdcall TH_GetKeyID(unsigned int* ID1, unsigned int* ID2);
 
/************************************************************************/
/* 功能: 获取加密锁路数信息,                                            */
/*        使用TH_InitPlateIDSDK前调用此函数                                */
/*        Parameters:nMaxThread[out]:                                    */
/*        返回值:  int(ERR_Code)                                            */
/************************************************************************/
int __stdcall TH_GetKeyMaxThread(int* nMaxThread);
 
 
/************************************************************************/
/* 功能: 设置当前识别的对比度阈值                                        */
/*        Parameters:nContrast[int]:                                        */
/*        对比度指数 nContrast[in]: 0 - 9                                    */
/*        最模糊时设为1;最清晰时设为9;自动探测设为0;默认值为0                */
/*        返回值:  int(ERR_Code)                                            */
/************************************************************************/
int __stdcall TH_SetContrast( unsigned char nContrast, TH_PlateIDCfg *pPlateCfg );
                                                                            
 
 
/************************************************************************/
/* TH_SetEnableCarTypeClassify: 设置是否车辆类型判别                    */
/*        Parameters:                                                        */
/*            bCarTypeClass[in]: true:车型分类;                            */
/*                                false:不进行车型分类                    */
/*        Return Value: int(ERR_Code)                                        */
/*        支持格式: ImageFormatBGR, ImageFormatRGB,ImageFormatYUV422,
                ImageFormatUYVY,ImageFormatNV21*/
/************************************************************************/
int __stdcall TH_SetEnableCarTypeClassify( unsigned char bCarTypeClass, TH_PlateIDCfg *pPlateCfg);
 
 
/************************************************************************/
/* TH_SetEnableCarLogo: 设置是否车标识别                                */
/*        Parameters:                                                        */
/*            bCarLogo[in]: true:车标识别;                                */
/*                                false:不进行车标识别                    */
/*        Return Value: int(ERR_Code)                                        */
/************************************************************************/
int __stdcall TH_SetEnableCarLogo( unsigned char bCarLogo, TH_PlateIDCfg *pPlateCfg);
 
/************************************************************************/
/* TH_SetEnableCarWidth: 设置是否测量车辆宽度                            */
/*        Parameters:                                                        */
/*            bCarLogo[in]: true:测量车辆宽度;                            */
/*                            false:不测量车辆宽度                        */
/*        Return Value: int(ERR_Code)                                        */
/************************************************************************/
int __stdcall TH_SetEnableCarWidth( unsigned char bCarWidth, TH_PlateIDCfg *pPlateCfg);
 
int __stdcall TH_SetReserveInfo(unsigned char* pSN);
int __stdcall TH_SetTFInfo(int Num, char *pTF);
 
// TH_SetDayNightMode: V4.3.13.0以后函数无实际意义,为保证兼容性保留此函数
int __stdcall TH_SetDayNightMode( unsigned char bIsNight, TH_PlateIDCfg *pPlateConfig);
 
/************************************************************************/
/* TH_SetVideoModeOutPutPosRatio: 设置视频模式车牌输出位置系数                */
/*        Parameters:                                                        */
/*            ratio[in]: (0.1, 0.9);                                        */
/*        Return Value: int(ERR_Code)                                        */
/************************************************************************/
int __stdcall TH_SetVideoModeOutPutPosRatio(float ratio);
 
/************************************************************************/
/* TH_GetVehicleModelName: 输出车型字符串,在调用TH_RecogImage后调用该函数*/
/*        Parameters:                                                        */
/*            nModel[in]: 车型类型值,TH_PlateIDResult结构体中的nCarModel;*/
/*        Return Value: int(ERR_Code)                                        */
/************************************************************************/
const char *  __stdcall TH_GetVehicleModelName(int nModel);
 
/************************************************************************/
/* TH_SetEnableLeanCorrection: 设置是否打开倾斜校正                                */
/*        Parameters:                                                        */
/*            bLeanCorrection[in]: true:打开倾斜校正;                                */
/*                                 false:关闭倾斜校正                    */
/*        Return Value: int(ERR_Code)                                        */
/************************************************************************/
int __stdcall TH_SetEnableLeanCorrection( unsigned char bLeanCorrection, TH_PlateIDCfg *pPlateCfg);
 
/************************************************************************/
/* TH_SetEnableShadow: 设置是否打开阴阳牌识别                                */
/*        Parameters:                                                        */
/*            bShadow[in]: true:打开阴阳牌;                                */
/*                         false:关闭阴阳牌                    */
/*        Return Value: int(ERR_Code)                                        */
/************************************************************************/
int __stdcall TH_SetEnableShadow( unsigned char bShadow, TH_PlateIDCfg *pPlateCfg);
 
/************************************************************************/
/* TH_GetLicenseNum: 获取网络加密锁许可数量                                */
/*        Parameters:                                                        */
/*            pnTotalNum[out]:    许可总数;                                */
/*            pnRemainingNum1[out]:    服务器一剩余许可数                    */
/*            pnRemainingNum2[out]:    服务器二剩余许可数                    */
/*        Return Value: int(ERR_Code)                                        */
/************************************************************************/
int __stdcall TH_GetLicenseNum(int *pnTotalNum, int *pnRemainingNum1, int *pnRemainingNum2);
 
/************************************************************************/
/* TH_SetServer:                                */
/*        Parameters:                                                        */
/*            pServer1[in]: server 1 : 192.168.0.10                                */
/*            pServer2[in]: server 2 : 192.168.0.11                */
/*                                */
/*        Return Value: int(ERR_Code)                                        */
/************************************************************************/
int __stdcall TH_SetServer(const char *pServer1, const char *pServer2);
 
int __stdcall TH_SetSoPath(char *pSoPath);
 
#ifdef __cplusplus
}
#endif
 
#endif    //    __TH_PLATEID_H_INCLUDE__