最近看到了TLD的跟踪视频,觉得很有意思,刚好最近在看行人检测所以就打算下载源码玩一玩,因为源码是Linux版本的(原作者写的是C++和MATLAB的混合编程)C++源码可以在我的博客TLD(一种目标跟踪算法中)下载到。在编译过程中遇到一些问题,在网上找了些资料后顺利解决了。

  1. 下载源码,然后解压,新建VS工程,配置好opencv,把C++源码下的src,include文件夹下的代码cope到新建工程下并在工程中添加
  2. 将代码中的所有包含目录下的.h文件的<>改成”“  比如#include <tld_utils.h>改成#include "tld_utils.h"
  3. opencv246中需要在TLD.h中添加#include <opencv2/legacy/legacy.hpp> //原作者没有添加这个所以出错,定义了PatchGenerator类
  4. Vs中没有round函数,所以要自己写一个,
    1. int round(float f)
    2. {
    3. if ((int)f+0.5>f)
    4. return (int)f;
    5. else
    6. return (int)f + ;
    7. }
  5. TLD::clusterBB函数中,vs不支持这种动态数组分配。

    1. float L[c-]; //Level
    2. int nodes[c-][];
    3. int belongs[c];
    4. //改成指针和动态分配内存
    5. float *L = new float [c-]; //Level
    6. int **nodes = new int *[c-];
    7. for(int i = ; i < ;i ++)
    8. nodes[i] = new int [c-];
    9. int *belongs = new int [c];
    10. //记得在函数末释放分配的内存
    11. delete [] L;
    12. L = NULL;
    13. for (int i = ; i < ; ++i)
    14. {
    15. delete [] nodes[i];
    16. nodes[i] = NULL;
    17. }
    18. delete []nodes;
    19. nodes = NULL;
    20. delete [] belongs;
    21. belongs = NULL;
  6. 上面完成之后,程序编译可以通过,摄像头也可以打开,但是一选定boundingbox程序就运行不下去了。看了一下代码才发现run_tld.cpp中有一个print_help函数。
    看了之后,明白了原来运行需要传递参数。见下面cmd命令:
    1. %To run from camera
    2. ./run_tld -p ../parameters.yml
    3. %To run from file
    4. ./run_tld -p ../parameters.yml -s ../datasets/06_car/car.mpg
    5. %To init bounding box from file
    6. ./run_tld -p ../parameters.yml -s ../datasets/06_car/car.mpg -b ../datasets/06_car/init.txt
    7. %To train only in the first frame (no tracking, no learning)
    8. ./run_tld -p ../parameters.yml -s ../datasets/06_car/car.mpg -b ../datasets/06_car/init.txt -no_tl
    9. %To test the final detector (Repeat the video, first time learns, second time detects)
    10. ./run_tld -p ../parameters.yml -s ../datasets/06_car/car.mpg -b ../datasets/06_car/init.txt -r

    这样就可以运行了

OpenTLD在VS2012和opencv246编译通过的更多相关文章

  1. VS2012载入DLL编译出现试图载入格式不对的程序; 以及执行出现Mixed mode assembly is built against version &#39;v2.0.50727&#39; of the

    VS2012载入DLL编译出现试图载入格式不对的程序:以及执行出现Mixed mode assembly is built against version 'v2.0.50727' of therun ...

  2. 基于OpenCV做“三维重建”(0)-- OpenCV3.2+VIZ6.3.0在vs2012下的编译和使用

    一.问题提出         ViZ对于显示3维的效果图来说,非常有帮助:我在使用OpenCV进行双目测距的过程中,有一些参数希望能够通过可视化的方法显示出来,所以参考了这方面相关的资料.做了一些实验 ...

  3. JrtpLib vs2012环境下编译及使用 GotoFirstSourceWithData 方法 进不去

    项目中有一项功能是接收rtp数据,接收rtp的可以用PJMedia,可以用JrtpLib.PJMedia库无法解决内外网的问题,只有用Jrtp库了. 首先说下Jrtp 的编译问题,我是在windows ...

  4. VS2012更改项目编译后文件输出目录

    1.现在我的解决方案里有存在两个项目,分别是类库项目ClassLibrary1和控制台项目ConsoleApplication1,默认情况下当解决方案重新生成后,这两个项目所对应的编译后文件分别会存在 ...

  5. VS2012中使用编译的Qt-5.1.1静态库开发程序

    1. 安装qt-vs-addin-1.2.2-opensource.exe,安装之后,vs2012菜单栏就会出现QT5菜单. 2. 在qt-vs-addin添加Qt5静态库: QT5->Qt O ...

  6. libcurl开源库在Win7 + VS2012环境下编译、配置详解 以及下载文件并显示下载进度 demo(转载)

    转载:http://blog.csdn.net/fengshuiyue/article/details/39530093(基本教程) 转载:https://my.oschina.net/u/14207 ...

  7. Windows+VS2012环境下编译调试MySQL源码 转

    http://m.blog.csdn.net/blog/SnowyWolf/18952643

  8. QT5静态编译教程,主要针对vs2012(渡世白玉)

    QT5,VS2012静态编译,所有的库准备充分的话qwebkit也可以静态编译通过,但是我编译的版本使用中如果用了QWEBVIEW控件在连接时会出错. 注:我自己编译的环境是:win server 2 ...

  9. vs2012编译boost_1_54_0

    在原文上进行了修改,我的环境是VS2012 ,在编译 注意事项:Boost 请慎用!微软太坑爹...且直接使用GitHub上的exe文件也可以,特定版本的只能自己编译了....汗!!! 原文地址:ht ...

随机推荐

  1. .Net Core使用HttpClient请求Web API注意事项

    HttpClient 使用HttpClient可以很方便的请求Web API,但在使用时有一些需要注意的地方,不然会给你的程序带来毁灭性的问题. HttpClient是一个继承了IDisposable ...

  2. 知识记录——CSS规范(文章内容为转载)

    原作者信息 作者:词晖 链接:http://www.zhihu.com/question/19586885/answer/48933504 来源:知乎 著作权归原作者所有,转载请联系原作者获得授权. ...

  3. iOS 优秀开源项目

    1. 界面 iCarousel: 用来做图片旋转显示效果(相册). MZTimerLabel:用来制作一个计时并显示时间的 label. MSDynamicsDrawerViewController, ...

  4. sgi stl内存池实现------源码加翻译

    class __default_alloc_template { enum { unit = 8 };//分配单位 后面直接用8代替 enum { max_bytes = 128 };//最大分配字节 ...

  5. A - 还是畅通工程(最小生成树)

    点击打开链接 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并 ...

  6. kali linux之无线渗透

    无线技术变化大,难度大,既新鲜刺激,又压力山大.一半协议  一半理论 无线技术特点: 行业发展迅猛 互联网的重要入口 边界模糊 安全实施缺失而且困难 对技术不了解造成配置不当 企业网络私自接入ap破坏 ...

  7. Wireshark系列(从入门到精通的10个干货)

    Wireshark(前称Ethereal)是一个网络封包分析软件.网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料.Wireshark使用WinPCAP作为接口,直接与网卡进 ...

  8. angular核心原理解析3:指令的执行过程

    指令的执行过程分析. 我们知道指令的执行分两个阶段,一个是compile,一个是link. 我们可以在指令中自定义compile和link. 首先,我们来讲解如何自定义link函数 举个例子: < ...

  9. mxonline实战11,课程详情页2,课程章节页

    对应github地址:第11天   一. 课程详情页2   1. 课程详情页第2块中的课程介绍中,修改course-detail.html中代码,搜索课程详情,找到如下代码

  10. SpringData JPA实现CRUD,分页与多参数排序

    Spring Data 项目的目的是为了简化构建基于 Spring 框架应用的数据访问计数,包括非关系数据库.Map-Reduce 框架.云数据服务等等,SpringData JPA是简化创建 JPA ...