OpenTLD是一个视频长期跟踪目标的一个算法,是一位英国在读博士最先提出来的(Zdenek Kalal),他还提供了源代码,不过是C和matlab的,不过不大好懂,所以有大神移植了一个Cpp版本,一般学习这个算法都是看着cpp版本,所以我们下面就来将怎么编译运行这个版本。
1、安装opencv库,网上都有教程。在linux下面一般是把安装包下载下来,执行
cmake .
make
make install
默认OpenCV安装到/usr/loca下面。
2、下载OpenTLD源码(C++)版本(https://github.com/gnebehay/OpenTLD)。
3、解压压缩包进入,执行
$mkdir build
$cd build
$cmake ../src
然后会告诉你要设置OpenCV_DIR,这时候打开../src/FIndOpenCV.cmake,在
find_path(OpenCV_DIR "OpenCVConfig.cmake" DOC "Root directory of OpenCV")
前面一行添加 OpenCV的安装路径,一般情况下是包含该路径下面会包含OpenCVConfig.cmake文件,如果OpenCV是默认安装的话一般这个路径是 /usr/local/share/OpenCV, 所以在
find_path(OpenCV_DIR "OpenCVConfig.cmake" DOC "Root directory of OpenCV")
上一行添加
set (OpenCV_DIR "/usr/local/share/OpenCV")
即可。
cmake 成功之后,执行
$make
然后,如果OpenCV版本不对(一般是版本过高情况),会提示PatchGenerator不是cv的一个成员,这是一个版本
兼容的问题,在TLD.h文件头文件添加
#include “opencv2/legacy/legacy.hpp”
即可,然后再执行make成功。
4、运行测试
$cd ../bin
$./run_tld -p ../parameters.yml -s ../datasets/01_david/david.mpg -b ../datasets/01_david/init.txt
成功运行。
此文为原创,转载请注明原创地址http://blog.csdn.net/u013453369/article/details/42641539。