3 #include <trax/opencv.hpp>
12 std::unique_ptr<KCF_Tracker> tracker;
16 trax::Server handle(trax::Metadata(TRAX_REGION_RECTANGLE, TRAX_IMAGE_PATH), trax_no_log);
19 trax::Properties prop;
20 int tr = handle.wait(img, reg, prop);
22 if (tr == TRAX_INITIALIZE) {
24 tracker.reset(new KCF_Tracker());
26 rectangle = trax::region_to_rect(reg);
27 image = trax::image_to_mat(img);
29 // Dynamically configure tracker
30 tracker->m_use_scale = prop.get("use_scale", true);
31 tracker->m_use_color = prop.get("use_color", true);
32 tracker->m_use_subpixel_localization = prop.get("use_subpixel_localization", true);
33 tracker->m_use_subgrid_scale = prop.get("use_subgrid_scale", true);
34 tracker->m_use_multithreading = prop.get("use_multithreading", true);
35 tracker->m_use_cnfeat = prop.get("use_cnfeat", true);
36 tracker->m_use_linearkernel = prop.get("use_linearkernel", false);
38 tracker->init(image, rectangle);
40 } else if (tr == TRAX_FRAME) {
42 image = trax::image_to_mat(img);
44 tracker->track(image);
45 BBox_c bb = tracker->getBBox();
46 rectangle = bb.get_rect();
52 trax::Region status = trax::rect_to_region(rectangle);
53 handle.reply(status, trax::Properties());