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.
This contribution aims to implement the sampler based on particle
filtering within a generic tracking API that opencv has. Maybe, one day
it will become a part of a robust solver.
This contribution aims to implement the sampler based on particle
filtering within a generic tracking API that opencv has. It still
remains to write the documentation.