TLD算法在windows+VS2013下运行修改

来源:互联网 发布:八皇后问题c语言 用栈 编辑:程序博客网 时间:2024/06/10 20:29

一、下面是TLD的博客主页,上面写了TLD算法的演变和其相关的文章,以及C++代码下载链接

1.1、Tracking-Learning-Detection[Project][OpenTLD/C++ Code]

1.2、下载得到的C++代码如下所示

其中:

datasets是一些视频数据;

doc是程序的流程图进行说明;

include是头文件;

src是源文件;

parameters.yml是参数文件;

readme是程序运行说明。


二、我们只要用到datasets、include、src、parameters.yml;
下面讲述如何在VS2013下创建工程;

2.1、创建一个空的solution(没有预编译的控制台程序)

2.2、首先将include中的文件拷贝放到src的文件夹中;然后将src、datasets、parameters.yml放到solution的工程目录下,如下所示:
2.3、编译项目,此时会冒出错误,下面为解决方法:

a、首先将头文件包含错误的全部由include<TLD.h> 改成 include "TLD.h";其他的头文件包含以此类推;

b、在TLD.h中包含头文件#include <opencv2/legacy/legacy.hpp>;

至此,所以的错误就都解决了,但是我们发现这个项目是里面是先产生一个可执行文件在cmd下来执行。这样不方便我们调试;

因此我们要修改程序一开始的参数解析函数;

在mian函数前面定义一下函数;

void read_options2(VideoCapture& capture,FileStorage &fs)
{

char* parameterB="datasets//06_car//init.txt";
readBB(parameterB);
gotBB = true;

    string videoS = "datasets//06_car//car.mpg";
capture.open(videoS);
fromfile = true;

        string parameterP="parameters.yml";
fs.open(parameterP, FileStorage::READ);

}

然后在mian函数中注释掉read_options(argc,argv,capture,fs);这个函数

而添加上read_options2(capture,fs);这个函数,至此,程序就可以正常的运行了。但是程序特别慢。还要进行优化。


参考http://m.blog.csdn.net/blog/zebincai/12390549

1 0