VS2013+OpenCV3.0编译CMT跟踪算法

这个算法的全称是Clustering of Static-Adaptive Correspondences for Deformable Object Tracking,文章发表在CVPR2015上,官方的网址为:
http://www.gnebehay.com/cmt/ 这个作者就是OpenTLD的C++版本的作者,包括ROS版的OpenTLD也是基于他的代码改的。

-1. 下载源码,并且解压,我是解压到F盘根目录的。F:\CppMT-master
-2. 打开里面的fastcluster.cpp后,找到heapify()函数,修改成下面:

  void heapify() {
    // Arrange the indices I and R so that H[i] := A[I[i]] satisfies the heap
    // condition H[i] < H[2*i+1] and H[i] < H[2*i+2] for each i.
    //
    // Complexity: Θ(size)
    // Reference: Cormen, Leiserson, Rivest, Stein, Introduction to Algorithms,
    // 3rd ed., 2009, Section 6.3 “Building a heap”
   // t_index idx; 注释这里
    int_fast32_t idx;//添加这句
    for (idx=(size>>1); idx>0; ) {
      --idx;
      update_geq_(idx);
    }
  }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

-3. 在F盘根目录下新建一个BuildCppMT文件夹,用来存放适合VS2013工程文件。
-4. 下载最新的CMake工具,https://cmake.org/download/ 我自己用的是CMake 3.4.0 RC
-5. 安装OpenCV,必须是2.4.8以上,我用的是3.0,最新版本3.1是不行的,个人觉得因为里面没有x86的库,如果你自己编译x86库就可能可以。因为OpenCV官网不翻墙是上不了的,所以我还是给出3.0的下载链接https://yunpan.cn/cqF2Eps8WApZS 访问密码 7df9
-6. 安装完OpenCV后,添加环境变量,下面的路径自己灵活变通,不要全抄。

在path环境变量里面添加:D:\OpenCV3.0\opencv\build\x86\vc12\bin
新建一个OpenCV_DIR变量,值为:D:\OpenCV3.0\opencv\build
  • 1
  • 2

-7. 打开CMake,然后配置如下图:

VS2013+OpenCV3.0编译CMT跟踪算法

-8.点击Configure,选择VS2013编译器后,点击Finish,然后再点击一下Configure。如下图:

VS2013+OpenCV3.0编译CMT跟踪算法

-9. 点击Generate生成工程文件。
-10. 用VS2013打开BuildCppMT文件里面的CMT.sln工程。在这里我们可以看到四种生成配置,四种生成配置最后都会生成cmt.lib静态库,记得是静态库,其实这四种四种生成配置实现的效果都是一样的,只是有的是为带输出调试的lib文件,有的是体积比较小的lib文件,所以你可以只编译Release就行了,下面就为每一种生成配置都单独编译一次。

VS2013+OpenCV3.0编译CMT跟踪算法

  1. 选择Debug版本的配置。打开cmt工程的属性页面,按照图片设置:

VS2013+OpenCV3.0编译CMT跟踪算法

然后点击[生成]-[生成解决方案],大概几十秒就看到文件夹里面有一个Debug的目录,里面就有cmt.lib文件。

VS2013+OpenCV3.0编译CMT跟踪算法

  1. 选择MinSizeRel生成配置,同样来到cmt的属性页里面,修改运行库为/MTd,然后跟第一种编译方式一样。
  2. 选择Release生成配置,来到cmt的属性页面里面,修改运行库为/MT,然后编译。
  3. 选择RelWithDebInfo生成配置,来到cmt的属性页面里面,同样修改运行库为/MTd,然后编译。

-11.编译完成后就看到里面有四个文件夹对应四种生成。

VS2013+OpenCV3.0编译CMT跟踪算法

这时候可以试试运行里面的cmt.exe这个demo,因为博主见不了人就不截图了~~~

转载自:https://blog.****.net/trustguan/article/details/51042558