opencv3之目标跟踪(单目标、多目标)

对于刚入门的opencv玩家,提起目标跟踪,马上想起的就是camshift,但是camshift跟踪往往达不到我们的跟踪要求,包括稳定性和准确性。

opencv3.1版本发行后,集成了多个跟踪算法,即tracker,大部分都是近年VOT竞赛榜上有名的算法,虽然仍有缺陷存在,但效果还不错。

ps:我在知乎上看到一个目标跟踪的介绍,感觉不错,链接在此!

单目标跟踪很简单,放一个官方例程供参考(opencv官方):

其中, 跟踪器的创建可选以下几种,代表使用的跟踪算法;

  • MIL
  • BOOSTING
  • MEDIANFLOW
  • TLD
  • KCF

eg-- Ptr<Tracker> tracker = Tracker::create("KCF"); 

多目标跟踪使用的是MultiTracker,如MultiTracker myTracker("KCF"),注意两点,添加目标用其成员函数myTracker.add(Mat src, Rect2d roi),获得跟踪结果使用myTracker.update(Mat src, vector<Rect2d> targets),跟踪结果的序号即vector的序号。

以下代码为跟踪鼠标框选的目标,跟踪的目标个数大概为10个(原则上是没有上限的,但我电脑比较烂,目标多了会卡)

猜你喜欢

转载自blog.csdn.net/m0_37901643/article/details/72820891
今日推荐