用的是https://github.com/arthurv/OpenTLD
参考:http://blog.youkuaiyun.com/zouxy09/article/details/7893022
本人用win7+vs2013。源码是在Linux环境下编译的,如果你用的也是windows,需要重建一个工程。
1. 还需要将原工程中TLD.cpp中的
float L[c-1]; //Level
int nodes[c-1][2];
int belongs[c];
改为:
float * L =new float[c-1]; //Level
int *a = new int[(c - 1)*2];
int(*nodes)[2] = (int(*)[2])a;
否则编译会报错:error C2057: 应输入常量表达式。
2.需要读入配置文件parameters.yml
将该文件放到工程目录下。
1. 项目属性->配置属性->调试->命令参数:-p parameters.yml -s datasets/06_car/car.mpg
第一个argv对应的参数是debug下的exe文件,因此需要修改read_option的
void read_options(int argc, char** argv,VideoCapture& capture,FileStorage &fs){
for (int i=0;i<argc;i++){
改为
void read_options(int argc, char** argv,VideoCapture& capture,FileStorage &fs){
for (int i=1;i<(argc-1);i++){ //在这里有修改
2. 如果想跑camera、不想添加命令行,也可以在代码中读入yml文件
将
FileStorage fs;
改为
FileStorage fs("parameters.yml", FileStorage::READ);
if (!fs.isOpened())
{
cout << "yml failed to open!" << endl;
return 1;
}