3 #include <trax/opencv.hpp>
12 std::unique_ptr<KCF_Tracker> tracker;
16 trax::Server handle(trax::Configuration(TRAX_IMAGE_PATH | TRAX_IMAGE_MEMORY | TRAX_IMAGE_BUFFER, TRAX_REGION_RECTANGLE), trax_no_log);
18 std::cout << handle.configuration().format_region << " " << TRAX_SUPPORTS(handle.configuration().format_region, TRAX_REGION_POLYGON) << std::endl;
21 trax::Properties prop;
22 int tr = handle.wait(img, reg, prop);
24 if (tr == TRAX_INITIALIZE) {
26 tracker.reset(new KCF_Tracker());
28 rectangle = trax::region_to_rect(reg);
29 image = trax::image_to_mat(img);
31 // Dynamically configure tracker
32 tracker->m_use_scale = prop.get("use_scale", true);
33 tracker->m_use_color = prop.get("use_color", true);
34 tracker->m_use_subpixel_localization = prop.get("use_subpixel_localization", true);
35 tracker->m_use_subgrid_scale = prop.get("use_subgrid_scale", true);
36 tracker->m_use_multithreading = prop.get("use_multithreading", true);
37 tracker->m_use_cnfeat = prop.get("use_cnfeat", true);
39 tracker->init(image, rectangle);
41 } else if (tr == TRAX_FRAME) {
43 image = trax::image_to_mat(img);
45 tracker->track(image);
46 BBox_c bb = tracker->getBBox();
47 rectangle = bb.get_rect();
53 trax::Region status = trax::rect_to_region(rectangle);
54 handle.reply(status, trax::Properties());