]> rtime.felk.cvut.cz Git - hercules2020/kcf.git/blob - main_trax.cpp
Remove debug printf
[hercules2020/kcf.git] / main_trax.cpp
1 #include <stdlib.h>
2
3 #include <trax/opencv.hpp>
4 #include <memory>
5 #include "kcf.h"
6
7 int main()
8 {
9     trax::Image img;
10     trax::Region reg;
11
12     std::unique_ptr<KCF_Tracker> tracker;
13     cv::Mat image;
14     cv::Rect rectangle;
15
16     trax::Server handle(trax::Metadata(TRAX_REGION_RECTANGLE, TRAX_IMAGE_PATH), trax_no_log);
17
18     while (true) {
19         trax::Properties prop;
20         int tr = handle.wait(img, reg, prop);
21
22         if (tr == TRAX_INITIALIZE) {
23             //create new tracker
24             tracker.reset(new KCF_Tracker());
25
26             rectangle = trax::region_to_rect(reg);
27             image = trax::image_to_mat(img);
28
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);
37
38             tracker->init(image, rectangle);
39
40         } else if (tr == TRAX_FRAME) {
41
42             image = trax::image_to_mat(img);
43             if (tracker) {
44                 tracker->track(image);
45                 BBox_c bb = tracker->getBBox();
46                 rectangle = bb.get_rect();
47             }
48         } else {
49             break;
50         }
51
52         trax::Region status = trax::rect_to_region(rectangle);
53         handle.reply(status, trax::Properties());
54
55     }
56
57     return EXIT_SUCCESS;
58 }