OpenCV 3.2 Tracking 物体跟踪
来源:互联网 发布:淘宝短链接生成 编辑:程序博客网 时间:2024/06/08 05:40
跟踪就是在连续视频帧中定位物体,通常的跟踪算法包括以下几类:
1. Dense OpticalFlow 稠密光流
2. Sparse OpticalFlow 稀疏光流 最典型的如KLT算法(Kanade-Lucas-Tomshi)
3. Kalman Filter
4. Meanshift andCamshift
5. Multiple objecttracking
需要注意跟踪和识别的区别,通常来说跟踪可以比识别快很多,且跟踪失败了可以找回来。
OpenCV 3以后实现了很多追踪算法,都实现在contrib模块中,安装参考。
下面code实现了跟踪笔记本摄像头画面中的固定区域物体,可以选用OpenCV实现的算法
#include<opencv2/opencv.hpp>
#include<opencv2/tracking.hpp>
usingnamespace std;
usingnamespace cv;
int main(int argc,char** argv){
// can change to BOOSTING, MIL, KCF (OpenCV 3.1), TLD, MEDIANFLOW, orGOTURN (OpenCV 3.2)
Ptr<Tracker> tracker = Tracker::create("MEDIANFLOW");
VideoCapture video(0);
if(!video.isOpened()){
cerr << "cannot read video!" << endl;
return -1;
}
Mat frame;
video.read(frame);
Rect2d box(270,120,180, 260);
tracker->init(frame, box);
while(video.read(frame)){
tracker->update(frame, box);
rectangle(frame, box, Scalar(255,0,0), 2, 1);
imshow("Tracking", frame);
int k=waitKey(1);
if(k==27) break;
}
}
这里介绍一下使用OpenCV进行目标跟踪的方法,之前用过一点。opencv中目标跟踪的一些比较新的方法(比如MIL、KCF、TLD等)都在opencv_contrib库里,所以首先你需要安装它,详见Opencv3.1.0+opencv_contrib配置及使用SIFT测试 。
关于tracking这一块可参考Opencv的官网 Tracking API 、Introduction to OpenCV Tracker 。
如果只是想要测试下非常简单,官网都给了例程;要深入了解其原理,查看相关论文即可。关于其效果的话,看你的使用场合和怎么理解了。
这里贴一下我根据例程稍作修改的测试程序。
源码:
- OpenCV 3.2 Tracking 物体跟踪
- 物体跟踪-CVPR16-tracking
- 物体跟踪-CVPR16-tracking[上]
- 物体跟踪-CVPR16-tracking[下]
- 物体跟踪-CVPR16-tracking[上]
- 物体跟踪-CVPR16-tracking[上]
- 物体跟踪-CVPR16-tracking[下]
- opencv(八)---物体跟踪
- opencv--颜色物体识别跟踪
- 物体跟踪-Fully-Convolutional Siamese Networks for Object Tracking
- IOS使用OPENCV实现物体跟踪
- OpenCV 运动物体跟踪的camshift算法
- IOS使用OPENCV实现物体跟踪
- OpenCV:运动物体跟踪处理流程
- OpenCV粒子滤波器用于物体跟踪
- Opencv实现Camshift算法(物体跟踪)
- 学习OpenCV——hand tracking手势跟踪
- 学习OpenCV——hand tracking手势跟踪
- 实现Activity和Fragment之前通信
- git和mvn开发常用基本命令
- idea导入相互依赖多模块的maven项目
- 链表
- Retrofit 原理简析
- OpenCV 3.2 Tracking 物体跟踪
- JavaWeb Filter 过滤器的机制 与使用 请求重定向与请求转发的区别 跳转过滤,过滤器dispatcher REQUEST与FORWARD区别
- Java_基础—异常的注意事项及如何使用异常处理
- ArcGIS Engine 节点编辑,实现要素拖动、编辑、节点删除
- pat 1013. Battle Over Cities (25)
- C# yyyyMMddHHmmss格式转换DateTime
- CSS鼠标滑动显示标题全部移开显示几个字符
- leetcode(4) Median of Two Sorted Arrays
- faster-rcnn 之 bbox_transform_inv(boxes, deltas)