关于TLD工程在VS2010下运行的修改
来源:互联网 发布:温湿度数据记录生成器 编辑:程序博客网 时间:2024/05/29 16:58
一、下面是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;
下面讲述如何在VS2010下创建工程;
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>
c、对ceil和floor()函数的错误,全部将函数的的输入参数用float强制转换为浮点型;
d、对于round()函数的错误,由于vs2010没有这个函数,所以全部改成cvRound();
f、下面是引用了http://www.myexception.cn/vsts/1130491.html这个人的修改方法;直接复制他的方法
TLD::clusterBB函数中,vs不支持这种动态数组分配。
float L[c-1]; //Level
int nodes[c-1][2];
int belongs[c];
改成指针和动态分配内存
float *L = new float [c-1]; //Level
int **nodes = new int *[c-1];
for(int i = 0; i < 2 ;i ++)
nodes[i] = new int [c-1];
int *belongs = new int [c];
记得在函数末释放分配的内存
delete [] L;
L = NULL;
for (int i = 0; i < 2; ++i)
{
delete [] nodes[i];
nodes[i] = NULL;
}
delete []nodes;
nodes = NULL;
delete [] belongs;
belongs = NULL;
至此,所以的错误就都解决了,但是我们发现这个项目是里面是先产生一个可执行文件在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);
/*if (strcmp(argv[i],"-no_tl")==0){
tl = false;
}
if (strcmp(argv[i],"-r")==0){
rep = true;
}*/
}
然后在mian函数中注释掉read_options(argc,argv,capture,fs);这个函数
而添加上read_options2(capture,fs);这个函数,至此,程序就可以正常的运行了。但是程序特别慢。还要进行优化。
- 关于TLD工程在VS2010下运行的修改
- TLD算法在windows+VS2013下运行修改
- VS2010+MATLAB2010b运行TLD
- 在vs2010下建Qt工程,可运行代码中出现红色波浪线的解决办法
- 在MyEclipse下修改部署工程名,运行Tomcat后工程名字改变的方法
- [转]在MyEclipse下修改部署工程名,运行Tomcat后工程名字改变的方法方法
- VS2010 + MATLAB2010b + OpenCV2.3.1 运行TLD
- MATLAB2010a+OpenCV2.3.1+VS2010运行TLD
- VS2010开发的WinForm程序如何在xp下运行
- 修改在VS2010环境下建立的C++项目名称
- TLD不用cmake在vs上编译运行的方案
- vs2010修改工程名
- 在VS2010下运行Qt程序
- Notepad++在vs2010下编译运行
- MPI在VS2010下编译和运行
- MPI在VS2010下运行程序配置
- 关于Boost库在VS2010下的编译使用(转)
- 关于boost::property_tree在VS2010下编译的问题
- 日历分析(一) java中的日期类
- C++中的冒号“:”和双冒号“::”
- HOJ 1017 Joseff's problem II
- linux打包压缩命令汇总
- GCC内嵌汇编
- 关于TLD工程在VS2010下运行的修改
- 【LeetCode】Pascal's Triangle (杨辉三角)
- Ad Hoc Distributed Queries的启用与关闭
- Redis Sentinel 源码分析
- java调用c++动态库dll
- 一个文件中有40亿个整数,求出这个文件里的整数里不包含的一个整数
- 最小生成树
- Firefox保存网页预览模式下的图片方法
- c++中的explicit关键字及隐式类型转换