Video Analysis底层库拆分,sdk的go封装
zhangmeng
2019-11-15 4d025c4a8c81c0bfdd159586528db0af72e6a6d6
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
#ifndef _c_wrapper_c_structure_h_
#define _c_wrapper_c_structure_h_
 
#include <string.h>
 
typedef struct _cPOINT {
    int x;
    int y;
} cPOINT;
 
typedef struct _cRECT {
    int left;
    int top;
    int right;
    int bottom;
} cRECT;
 
typedef struct _cIMAGE{
    unsigned char *data;
    int width;
    int height;
    int channel;
} cIMAGE;
 
typedef struct _cFaceAngle {
    int yaw;
    int pitch;
    int roll;
    float confidence;
} cFaceAngle;
 
typedef struct _cThftResult {
    int gender;//1-male,0-female
    int age;//range[0-100]
    int race; //[1-white,2-yellow,3-black]
    int beauty_level;//range[0-100]
    int smile_level;//range[0-100]
} cThftResult;
 
typedef struct _cFacePos {
    cRECT rcFace;
    cPOINT ptLeftEye;
    cPOINT ptRightEye;
    cPOINT ptMouth;
    cPOINT ptNose;
    cFaceAngle fAngle;
    int nQuality;
    
    unsigned char pFacialData[512];
} cFacePos;
 
typedef struct _cFaceInfo{
    cRECT rcFace;
    cPOINT ptLeftEye;
    cPOINT ptRightEye;
    cPOINT ptMouth;
    cPOINT ptNose;
    cFaceAngle fAngle;
    int nQuality;
    
    unsigned char pFacialData[8*1024];
    long        nFaceID;//face tracking id
} cFaceInfo;
 
typedef struct _cObjInfo
{
    cRECT rcObj;
    int typ;
    float prob;
} cObjInfo;
 
typedef struct _cPlateIDCfg {
    int nFastMemorySize;            // 单位 K
    int nMemorySize;                // 单位 M
    int nMinPlateWidth;                // 检测的最小车牌宽度,以像素为单位
    int nMaxPlateWidth;                // 检测的最大车牌宽度,以像素为单位
    int nMaxImageWidth;                // 最大图像宽度
    int nMaxImageHeight;            // 最大图像高度
 
    unsigned char bIsFieldImage;    // 是否是场图像
    unsigned char bMovingImage;        // 识别运动or静止图像
    unsigned char nOrderOpt;        // 输出顺序选项 0-置信度 1-自上而下 2-自下而上
    unsigned char bLeanCorrection;    // 是否启用车牌旋转功能,默认开启
    unsigned char nImproveSpeed;    // 0: 识别率优先 1:识别速度优先
    unsigned char bCarLogo;            // 0: 不检测车标 1: 检测车标
    unsigned char bLotDetect;        // 0: 不检测车位 1: 检测车位
    unsigned char bShadow;            // 0: 针对无阴影的车牌 1:针对有阴影的车牌,默认开启
    unsigned char bShieldRailing;    // 0: 屏蔽栏杆干扰, 1:不屏蔽栏杆干扰
    unsigned char bCarModel;        // 0: 不识别车型, 1: 识别车型
    unsigned char bLocateTh;        // 车牌定位阈值
    unsigned char bOCRTh;           // 车牌识别阈值
 
    unsigned char bIndividual;        // 个性化车牌开启
    unsigned char bTwoRowYellow;    // 双层黄色车牌开启
    unsigned char bArmPolice;        // 单层武警车牌开启
    unsigned char bArmPolice2;        // 双层武警车牌开启
    unsigned char bTwoRowArmy;        // 双层军队车牌开启
    unsigned char bTractor;            // 农用车车牌开启
    unsigned char bEmbassy;            // 使馆车牌开启
    unsigned char bChangNei;        // 厂内车牌开启
    unsigned char bMinHang;            // 民航车牌开启
    unsigned char bConsulate;        // 领事馆车牌开启
    unsigned char bNewEnergy;        // 新能源车牌开启
    unsigned char bOnlyTwoRowYellow;// 只识别双层黄牌开启
    unsigned char bOnlyLocation;    // 只定位车牌开启
}cPlateIDCfg;
 
typedef struct _cPlateIDResult 
{
    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 
    
    cRECT rcLocation;                    // 车牌坐标
    const unsigned char *pbyBits;        // 识别结果对应的图片的缓冲区
    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];                    // 保留
    cRECT rcLogoLocation;                // 车标坐标
    unsigned short nCarModel;           // 车辆类型
    unsigned short nCarModelConfidence;    // 车型可信度    
}cPlateIDResult;
 
#endif