-
Notifications
You must be signed in to change notification settings - Fork 57
/
Copy pathji.h
129 lines (116 loc) · 3.52 KB
/
ji.h
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
#ifndef JI_H
#define JI_H
/*
* Notes:
* 1. If use init funciton, no need to release library or model.
* 2. Please release frame inside the functions(ji_calc_video_frame).
* 3. Please release filebuffer inside the functions(ji_calc).
*/
/*
* 算法分析分为图片、视频、视频单帧三种类型接口,请开发者根据自己算法功能选择接口进行实现
* 接口文件.h文件无需修改,未使用或实现的接口在.cpp文件中,并统一返回int型-2,使用的接口统一返回 0
* 接口实现包括ji_init(插件初始化),ji_create_predictor(创建检测器实例),ji_destory_predictor(释放检测器实例)
* ji_calc(图片buffer分析接口),ji_calc_file(图片文件分析接口),ji_calc_video_file(视频分析接口),ji_calc_video_frame(单帧分析接口)
*
*/
extern "C" {
/*
refer to cv::Mat definition
@单帧分析输入帧定义
*/
typedef struct {
int rows; //Number of rows in a 2D array.
int cols; //Number of columns in a 2D array.
int type; //Array type. Use CV_8UC1, ..., CV_64FC4 to create 1-4 channel matrices, or CV_8UC(n), ..., CV_64FC(n) to create multi-channel (up to CV_CN_MAX channels) matrices.
void * data; //Pointer to the user data.
int step; //Number of bytes each matrix row occupies.
} JI_CV_FRAME;
/*
event defination
@算法检测器分析结果输出,根据算法实际使用场景由极视角相关工作人员定义
*/
typedef struct {
int code; //event code
char* json; //event
} JI_EVENT;
/*
@可选项,初始化应用级插件,例如:log4cpp license等
return:
0:success
-2: not used
others : fail
*/
int ji_init(int argc, char** argv);
/*
@创建检测器实例
creat instance and initiallized that can be used to analysis
*/
void *ji_create_predictor();
/*
@释放检测器实例
destory instance
*/
void ji_destory_predictor(void* predictor);
/*
@分析图片Buffer
analysis image buffer
parameters:
@para1:检测器实例
@para2: 输入图片文件Buffer(自行管理图片缓存释放)
@para3: 输入图片Buffer长度
@para4: 可选项,图片感兴趣区域等绘制
@para5: 输出文件名称(自行管理图片缓存释放)
@para6: 分析图片输出Json信息
return :
0:success
-2: not used
others : fail
*/
int ji_calc(void* predictor, const unsigned char* buffer, int length,
const char* args, const char* outfn, char** json);
/*
@分析图片文件
analysis image
parameters:
@para1:检测器实例
@para2: 输入图片文件名称
@para3: 可选项,视频感兴趣区域的绘制
@para4: 输出文件名称
@para5: 分析图片输出Json信息
@return :
0:success
-2: not used
others : fail
*/
int ji_calc_file(void* predictor, const char* infn, const char* args,
const char* outfn, char** json);
/*
analysis video file
@para1: 检测器实例
@para2: 输入视频地址
@para3: 可选项,图片感兴趣区域等的绘制
@para4: 输出视频地址
@para5: 分析视频Json信息
@return:
0: success
-2: not used
others: fail
*/
int ji_calc_video_file(void* predictor, const char* infn, const char* args,
const char* outfn, JI_EVENT* event);
/*
analysis video frame
@para1: 检测器实例
@para2: 输入单帧 (自行管理帧释放)
@para3: 可选项,单帧分析感兴趣区域的绘制等
@para4: 输出单帧 (自行管理帧释放)
@para5: 分析视频Json信息
@return:
0: success
-2: not used
others: fail
*/
int ji_calc_video_frame(void* predictor, JI_CV_FRAME* inframe, const char* args,
JI_CV_FRAME* outframe, JI_EVENT* event);
}
#endif