资源简介
用KCF的追踪过程代替TLD的追踪过程,保留了TLD的检测和学习过程,但是没有加入旋转的特征学习,对于旋转的处理还是不行,有空自己慢慢写咯,要是tld的代码都运行不来的话建议先看看如何加载tld的配置文件,要是opencv的配置也不会的话,建议不要下载
代码片段和文件信息
#include
#include
#include
#include //c++中的sstream类,提供了程序和string对象之间的I/O,可以通过ostringstream
//和instringstream两个类来声明对象,分别对应输出流和输入流
#include
#include
#include “kcftracker.hpp“
using namespace cv;
using namespace std;
bool HOG = true;
bool FIXEDWINDOW = false;
bool MULTISCALE = true;
bool SILENT = false;
bool LAB = false;
int key;
// Create KCFTracker object
KCFTracker tracker(HOG FIXEDWINDOW MULTISCALE LAB);
// Tracker results
Rect result;
/////////////////////////////////////////////////////////////////
//Global variables
Rect box;
bool drawing_box = false;
bool gotBB = false;
bool tl = true;
bool rep = false;
bool fromfile=false;
string video;
//读取记录bounding box的文件,获得bounding box的四个参数:左上角坐标x,y和宽高
/*如在\datasets\06_car\init.txt中:记录了初始目标的bounding box,内容如下
142125232164
*/
void readBB(char* file){
ifstream bb_file (file); //以输入方式打开文件
string line;
//istream& getline ( istream& string& );
//将输入流is中读到的字符存入str中,终结符默认为 ‘\n‘(换行符)
getline(bb_file line);
istringstream linestream(line); //istringstream对象可以绑定一行字符串,然后以空格为分隔符把该行分隔开来。
string x1y1x2y2;
//istream& getline ( istream &is string &str char delim );
//将输入流is中读到的字符存入str中,直到遇到终结符delim才结束。
getline (linestreamx1 ‘‘);
getline (linestreamy1 ‘‘);
getline (linestreamx2 ‘‘);
getline (linestreamy2 ‘‘);
//atoi 功 能: 把字符串转换成整型数
int x = atoi(x1.c_str());// = (int)file[“bb_x“];
int y = atoi(y1.c_str());// = (int)file[“bb_y“];
int w = atoi(x2.c_str())-x;// = (int)file[“bb_w“];
int h = atoi(y2.c_str())-y;// = (int)file[“bb_h“];
box = Rect(xywh);
}
//bounding box mouse callback
//鼠标的响应就是得到目标区域的范围,用鼠标选中bounding box。
void mouseHandler(int event int x int y int flags void *param){
switch( event ){
case CV_EVENT_MOUSEMOVE:
if (drawing_box){
box.width = x-box.x;
box.height = y-box.y;
}
break;
case CV_EVENT_LBUTTONDOWN:
drawing_box = true;
box = Rect( x y 0 0 );
break;
case CV_EVENT_LBUTTONUP:
drawing_box = false;
if( box.width < 0 ){
box.x += box.width;
box.width *= -1;
}
if( box.height < 0 ){
box.y += box.height;
box.height *= -1;
}
gotBB = true; //已经获得bounding box
break;
}
}
void print_help(char** argv){
printf(“use:\n %s -p /path/parameters.yml\n“argv[0]);
printf(“-s source video\n-b bounding box file\n-tl track and learn\n-r repeat\n“);
}
//分析运行程序时的命令行参数
void read_options(int argc char** argv VideoCapture& capture FileStorage &fs){
for (int i=0;i if (strcmp(argv[i]“-b“)==0){
if (argc>i){
readBB(argv[i
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-03-03 16:27 TLD_test1\
目录 0 2018-03-03 16:25 TLD_test1\ConsoleApplication2\
文件 1003 2016-03-31 20:56 TLD_test1\ConsoleApplication2.sln
文件 57856 2018-03-03 16:24 TLD_test1\ConsoleApplication2.v12.suo
文件 0 2018-03-03 16:22 TLD_test1\ConsoleApplication2\bounding_boxes.txt
文件 6426 2017-04-21 11:18 TLD_test1\ConsoleApplication2\ConsoleApplication2.vcxproj
文件 2555 2017-04-21 11:18 TLD_test1\ConsoleApplication2\ConsoleApplication2.vcxproj.filters
文件 758 2017-04-06 01:20 TLD_test1\ConsoleApplication2\ConsoleApplication2.vcxproj.user
文件 105 2017-04-20 21:31 TLD_test1\ConsoleApplication2\mydefine.h
文件 9237 2018-03-03 16:24 TLD_test1\ConsoleApplication2\open.cpp
文件 524 2011-12-04 21:39 TLD_test1\ConsoleApplication2\parameters.yml
目录 0 2018-03-03 16:27 TLD_test1\ConsoleApplication2\Release\
目录 0 2018-03-03 16:25 TLD_test1\Debug\
目录 0 2018-03-03 16:24 TLD_test1\KCFdemo\
目录 0 2018-03-03 16:26 TLD_test1\KCFdemo\Debug\
文件 7031 2017-03-22 19:16 TLD_test1\KCFdemo\ffttools.hpp
文件 18390 2017-03-22 19:16 TLD_test1\KCFdemo\fhog.cpp
文件 5605 2015-12-01 12:10 TLD_test1\KCFdemo\fhog.hpp
文件 5761 2016-12-13 23:32 TLD_test1\KCFdemo\KCFdemo.vcxproj
文件 1886 2016-11-07 09:52 TLD_test1\KCFdemo\KCFdemo.vcxproj.filters
文件 165 2016-12-13 17:05 TLD_test1\KCFdemo\KCFdemo.vcxproj.user
文件 21481 2017-04-21 20:17 TLD_test1\KCFdemo\kcftracker.cpp
文件 8571 2017-04-21 20:17 TLD_test1\KCFdemo\kcftracker.hpp
文件 617 2016-11-07 10:59 TLD_test1\KCFdemo\labdata.hpp
文件 4578 2017-03-22 19:16 TLD_test1\KCFdemo\recttools.hpp
目录 0 2018-03-03 16:26 TLD_test1\KCFdemo\Release\
文件 2475 2016-12-13 23:35 TLD_test1\KCFdemo\runtracker.cpp
文件 216 2016-11-03 14:05 TLD_test1\KCFdemo\stdafx.cpp
文件 234 2016-11-03 14:05 TLD_test1\KCFdemo\stdafx.h
文件 236 2016-11-03 14:05 TLD_test1\KCFdemo\targetver.h
文件 1365 2017-04-21 20:17 TLD_test1\KCFdemo\tracker.h
............此处省略145个文件信息
- 上一篇:CMW500终端测试
- 下一篇:90sec版本火狐浏览器firefox
相关资源
- OpenTLD-master VS213 OpenCV 3.0版本源码
- CT压缩追踪算法
- KCF改进后的代码
- 中兴光猫F607Za_V6.0.0P21T1_UPGRADE_BOOTLDR
- 基于ROS+kcf算法 读取电脑自带摄像
- F450AF650A_V2.0.3P1T8_UPGRADE_BOOTLDR_ALL.bin
- F607Za_V6.0.0P21T2_UPGRADE_BOOTLDR.bin
- 经典目标跟踪论文KCF的ppt
- KCF使用摄像头实现行人自主跟踪.zip
- KCFECO_HC.DSST等十种算法在OTB100的TRESR
- 多尺度的KCF算法代码
- kcf与dsst视觉跟踪源码
- 机器人在ros下的KCF跟踪算法实现
- KCF代码运行流程图
- KCF目标跟踪算法源码
- c.tld文件
- Eclipse中使用jstl所需jar包和tld文件
- CFNet跟踪算法源码
- TLD源码,C版本
- KCF原文+源码+源码解读
评论
共有 条评论