TLD(跟踪学习检测)是英国萨里大学的捷克学生Zdenek Kalal在其2010的一篇论文中提出的实时性较好的单目标长时间跟踪算法。其主页上有相关的文章下载,源码是从这里下载的,还可以找到安装步骤,我先跑的是MATLAB+C的TLD程序自己按照步骤加上网站上别人的一些做法。
我的电脑软件环境是:win7(32位)+VS2010+Matlab2013a+OpenCV2.4.4
下载并安装完各个软件。是我下载的OpenCV图标,解压后果断将命名改了一下,去掉了‘-‘ ‘.‘以及空格之类的,而且解压后的路径最好也如此,防止后面麻烦!
一、首先,安装OpenCV244(OpenCV中文网站)时,得设置系统的环境变量,右击我的电脑->属性->高级->环境变量。如下图:
我的安装路径是 ‘E:\OpenCV244\‘
1. 用户变量设置:由于我没有中文网站上说的PATH,自己新建了一个,在其编辑界面的变量值中输入路径:E:\OpenCV244\opencv\build\x86\vc10\bin
同样,新建OpenCV变量(好像可以自己定义),添加路径:E:\OpenCV244\opencv\build
2. 系统变量设置:找到了Path,添加路径:E:\OpenCV244\opencv\build\x86\vc10\bin
好了,这里重新启动一下。
二、配置vs2010。告诉vs在什么地方找到OpenCV的头文件和库。在vs2010中新建一个Win32控制台应用程序的空项目,左击下图‘属性管理器‘,双击‘Microsoft.Cpp.Win32.user‘,在弹出的界面上选中‘VC++ 目录‘。
添加的路径如下:
(1)可执行文件:E:\OpenCV244\opencv\build\x86\vc10\bin
(2)包含目录:E:\OpenCV244\opencv\build\include
E:\OpenCV244\opencv\build\include\opencv
E:\OpenCV244\opencv\build\include\opencv2
(3)库目录:E:\OpenCV244\opencv\build\x86\vc10\lib
在‘链接器‘->‘输入‘->‘附加依赖项‘中添加E:\OpenCV244\opencv\build\x86\vc10\lib中的文件名称,如下图。
至此,设置完毕。简单测试一下,看OpenCV是否正常工作。如下图,可以正常显示任意图片。got it!
三、 Matlab中运行TLD。前两部只是环境准备。
(1) Setup mex compiler in Matlab。这是TLD文件包中README文件中的一句,做法就是在打开的Matlab的Command Window界面输入命令‘mex -setup‘(注意mex后必须有空格),选择编译器,如下图。
(2)Compilation of mex files。检查‘complie.m‘的OpenCV路径。
我的路径设置为:
include = ‘ -IE:\OpenCV244\opencv\build\include -IE:\OpenCV244\opencv\build\include\opencv -IE:\OpenCV244\opencv\build\include\opencv2‘;
libpath =
‘E:\OpenCV244\opencv\build\x86\vc10\lib\‘;
注意路径的正确!
此时编译,出现了【e:\program
files\matlab\r2013a\extern\include\matrix.h(319) : error C4430: 缺少类型说明符 - 假定为
int。注意: C++ 不支持默认 int 】的错误提示。
参照csdn上的shanpohe的博客,注释掉lk.cpp, fern.cpp, bb_overlap.cpp文件中的
#ifdef _CHAR16_T
#define CHAR16_T
#endif
编译成功了!
(3)运行文件包中的‘run_TLD.m‘。算法跟踪一辆行进中的摩托。
原文:http://www.cnblogs.com/jsdtqk/p/3689080.html