| | |
| | | float *data; // pointer to the image data |
| | | }; |
| | | |
| | | #define C_SHARP_MAX_OBJECTS 1000 |
| | | struct bbox_t_container { |
| | | bbox_t candidates[C_SHARP_MAX_OBJECTS]; |
| | | }; |
| | | |
| | | #ifdef __cplusplus |
| | | #include <memory> |
| | | #include <vector> |
| | |
| | | #include "opencv2/imgproc/imgproc_c.h" // C |
| | | #endif // OPENCV |
| | | |
| | | extern "C" YOLODLL_API int init(const char *configurationFilename, const char *weightsFilename, int gpu); |
| | | extern "C" YOLODLL_API int detect_image(const char *filename, bbox_t_container &container); |
| | | extern "C" YOLODLL_API int detect_mat(const uint8_t* data, const size_t data_length, bbox_t_container &container); |
| | | extern "C" YOLODLL_API int dispose(); |
| | | |
| | | class Detector { |
| | | std::shared_ptr<void> detector_gpu_ptr; |
| | | std::deque<std::vector<bbox_t>> prev_bbox_vec_deque; |
| | |
| | | static YOLODLL_API void free_image(image_t m); |
| | | YOLODLL_API int get_net_width() const; |
| | | YOLODLL_API int get_net_height() const; |
| | | YOLODLL_API int get_net_color_depth() const; |
| | | |
| | | YOLODLL_API std::vector<bbox_t> tracking_id(std::vector<bbox_t> cur_bbox_vec, bool const change_history = true, |
| | | int const frames_story = 10, int const max_dist = 150); |
| | |
| | | |
| | | #ifdef OPENCV |
| | | |
| | | cv::Scalar obj_id_to_color(int obj_id) { |
| | | static cv::Scalar obj_id_to_color(int obj_id) { |
| | | int const colors[6][3] = { { 1,0,1 },{ 0,0,1 },{ 0,1,1 },{ 0,1,0 },{ 1,1,0 },{ 1,0,0 } }; |
| | | int const offset = obj_id * 123457 % 6; |
| | | int const color_scale = 150 + (obj_id * 123457) % 100; |