1 #ifndef _C_INTERFACE_H_
2 #define _C_INTERFACE_H_
13 void DMXSDK_API dmxsdk_get_last_error(
char * buffer,
unsigned int * buffer_size);
15 typedef void* dmxsdk_pointer;
17 int DMXSDK_API dmxsdk_make_config(
char * path, dmxsdk_pointer * handle);
18 void DMXSDK_API dmxsdk_free_config(dmxsdk_pointer handle);
20 int DMXSDK_API dmxsdk_construct_image(
unsigned int width,
unsigned int height,
char* data, dmxsdk_pointer * handle);
21 void DMXSDK_API dmxsdk_free_image(dmxsdk_pointer handle);
22 bool DMXSDK_API dmxsdk_image_empty(dmxsdk_pointer handle);
23 unsigned int DMXSDK_API dmxsdk_image_width(dmxsdk_pointer handle);
24 unsigned int DMXSDK_API dmxsdk_image_height(dmxsdk_pointer handle);
26 int DMXSDK_API dmxsdk_create_decoder(dmxsdk_pointer config_handle, dmxsdk_pointer * handle);
27 void DMXSDK_API dmxsdk_free_decoder(dmxsdk_pointer handle);
28 int DMXSDK_API dmxsdk_decoder_decode(dmxsdk_pointer decoder_handle,
size_t size,
const void* data, dmxsdk_pointer * handle);
29 int DMXSDK_API dmxsdk_decoder_read(dmxsdk_pointer decoder_handle,
char * path, dmxsdk_pointer * handle);
32 int DMXSDK_API dmxsdk_construct_detection(dmxsdk_pointer image_handle,
int dpi,
float * center_coordinates,
float angle, dmxsdk_pointer * handle);
33 void DMXSDK_API dmxsdk_free_detection(dmxsdk_pointer handle);
34 float DMXSDK_API dmxsdk_detection_confidence(dmxsdk_pointer handle);
35 void DMXSDK_API dmxsdk_detection_bbox(dmxsdk_pointer handle,
float * bbox_data);
37 int DMXSDK_API dmxsdk_create_detector(dmxsdk_pointer config_handle, dmxsdk_pointer * handle);
38 void DMXSDK_API dmxsdk_free_detector(dmxsdk_pointer handle);
39 int DMXSDK_API dmxsdk_detector_detect(dmxsdk_pointer detector_handle, dmxsdk_pointer image_handle,
int dpi,
float confidence, dmxsdk_pointer * handles,
int * nums);
41 void DMXSDK_API dmxsdk_free_template(dmxsdk_pointer handle);
42 unsigned int DMXSDK_API dmxsdk_template_serializedSize(dmxsdk_pointer handle);
43 void DMXSDK_API dmxsdk_template_serialize(dmxsdk_pointer handle,
char * data);
45 int DMXSDK_API dmxsdk_template_deserialize(dmxsdk_pointer * handle,
unsigned int size,
const char * data);
47 int DMXSDK_API dmxsdk_create_extractor(dmxsdk_pointer config_handle, dmxsdk_pointer * handle);
48 void DMXSDK_API dmxsdk_free_extractor(dmxsdk_pointer handle);
50 int DMXSDK_API dmxsdk_extractor_extract(dmxsdk_pointer extractor_handle, dmxsdk_pointer detection_handle, dmxsdk_pointer * handle);
52 int DMXSDK_API dmxsdk_construct_template_db(
size_t max_size,
int batch_size, dmxsdk_pointer * handle);
53 void DMXSDK_API dmxsdk_free_template_db(dmxsdk_pointer handle);
56 int DMXSDK_API dmxsdk_template_db_add(dmxsdk_pointer template_db_handle, dmxsdk_pointer template_handle,
long long id);
57 int DMXSDK_API dmxsdk_template_db_clear(dmxsdk_pointer template_db_handle);
58 size_t DMXSDK_API dmxsdk_template_db_size(dmxsdk_pointer template_db_handle);
59 size_t DMXSDK_API dmxsdk_template_db_max_size(dmxsdk_pointer template_db_handle);
60 int DMXSDK_API dmxsdk_template_db_get_loaded_ids(dmxsdk_pointer template_db_handle,
long long * ids);
61 bool DMXSDK_API dmxsdk_template_db_is_loaded(dmxsdk_pointer template_db_handle,
long long id);
62 int DMXSDK_API dmxsdk_template_db_save(dmxsdk_pointer template_db_handle,
char * path);
63 int DMXSDK_API dmxsdk_template_db_load(dmxsdk_pointer template_db_handle,
char * path);
66 int DMXSDK_API dmxsdk_create_matcher(dmxsdk_pointer config_handle, dmxsdk_pointer * handle);
67 void DMXSDK_API dmxsdk_free_matcher(dmxsdk_pointer handle);
69 float DMXSDK_API dmxsdk_matcher_match(dmxsdk_pointer matcher_handle, dmxsdk_pointer template0_handle, dmxsdk_pointer template1_handle);
71 int DMXSDK_API dmxsdk_matcher_matchK(
unsigned int N, dmxsdk_pointer * templates_handle,
72 dmxsdk_pointer matcher_handle, dmxsdk_pointer template_db_handle,
73 unsigned int K,
float threshold,
74 long long * ids,
float * values);