跟踪就是在连续视频帧中定位物体,通常的跟踪算法包括以下几类:

1. Dense Optical Flow 稠密光流

2. Sparse Optical Flow 稀疏光流 最典型的如KLT算法(Kanade-Lucas-Tomshi)

3. Kalman Filter

4. Meanshift and Camshift

5. Multiple object tracking

需要注意跟踪和识别的区别,通常来说跟踪可以比识别快很多,且跟踪失败了可以找回来。

OpenCV 3以后实现了很多追踪算法,都实现在contrib模块中,安装参考

下面code实现了跟踪笔记本摄像头画面中的固定区域物体,可以选用OpenCV实现的算法

#include <opencv2/opencv.hpp>
#include <opencv2/tracking.hpp> using namespace std;
using namespace cv; int main(int argc, char** argv){
// can change to BOOSTING, MIL, KCF (OpenCV 3.1), TLD, MEDIANFLOW, or GOTURN (OpenCV 3.2)
Ptr<Tracker> tracker = Tracker::create("MEDIANFLOW");
VideoCapture video();
if(!video.isOpened()){
cerr << "cannot read video!" << endl;
return -;
}
Mat frame;
video.read(frame);
Rect2d box(, , , );
tracker->init(frame, box);
while(video.read(frame)){
tracker->update(frame, box);
rectangle(frame, box, Scalar(, , ), , );
imshow("Tracking", frame);
int k=waitKey();
if(k==) break;
}
}

着重了解效果较好的KCF(Kernelized Correlation Filters)和经典的KLT算法

最新文章

  1. [百度经验]window下连接mysql 错误代码 1045
  2. javascript按中文首字母排序
  3. Java经典实例:进阶版堆栈实现,支持任何对象类型
  4. Java实现注册时发送激活邮件+激活
  5. poj1966 求顶点连通度
  6. 交叉编译mips平台上valgrind
  7. CSS中的视觉格式化模型
  8. 【转】Cocoa中的位与位运算
  9. python的map()函数
  10. java.net.ConnectException connect refured
  11. javascript深入理解js闭包(看了挺多的,感觉这篇比较透彻)
  12. C语言第三次作业--嵌套循环
  13. 深度学习 Fine-tune 技巧总结
  14. Base64编码的原理
  15. 在比特币的OP_RETURN上,大家都干了些啥?
  16. Python——转义字符解释
  17. 清理sql2012数据库日志
  18. 【onclick事件】【改变 HTML 内容innerHTML】【图片替换】【改变标签的css】【判断输入是否是数字】
  19. 007_ip统计及攻击ip分析
  20. 6486: An Ordinary Game(规律)

热门文章

  1. 可变对象(immutable)和不可变对象(mutable)
  2. 用python自建一个DNS服务器
  3. springMvc返回Json中自定义日期格式
  4. 编程三基:cpu:算法,总线(io):一切皆文件;内存:运行空间
  5. maven编译package慢
  6. 使用命令导入、导出mysql数据
  7. js和jquery对象的相互转换
  8. C# Console类的方法使用总结
  9. MySQL学习之流程结构
  10. Systemd简介与使用