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