This contribution includes the following logical components into
tracking module:
.) Change Rect to Rect2d into headers for Tracker's methods;
This contribution includes the following logical components into
tracking module:
.) Change Rect to Rect2d into headers for Tracker's methods;
.) MedianFlow tracker;
.) extensible benchmark to compare trackers interactively and
assess them quantitatively;
.) TLD tracker (work-in-progress);
Work was funded by Google Summer of Code 2014 initiative. Mentors:
Gary
Bradski and Vadim Pisarevsky.
This contribution changes the way how trackers should be implemented by
programmer. It should be noted first, that from the user prospective,
Tracker::create() method still can be called with the same effect.
However, there's no more thing as a "constructor" for Tracker, they
should be created via static functions, e.g.
static Ptr<TrackerMIL> createTracker(const TrackerMIL::Params ¶meters=TrackerMIL::Params());
From the programmer's perspective now for every tracker what is declared
in tracker.hpp header is more a "interface", while the real
implementation class can (and has to) be implemented in .cpp file.
Changes in documentation are also included.
I've changed Rect to Rect2d in Tracker::update(), Tracker::init() and
all related methods (including documentation). This allows to initialize
trackers with double-valued rectangles, thus adding versality. Besides,
trackers also can output double-valued rectangles, which may be
beneficial in some scenarios.
However, it remains to change UML diagrams in documentation to tracker
module, as they still display methods above with old signatures.
Now initial bounding frame can be given in command-line, as an alternative
to manual selection via mouse. Bounding frame is given as optional last
argument in the format "x1,y1,x2,y2" where x's and y's are integers,
symbolizing bounding box with opposite vertices (x1,y1) and (x2,y2).