材料准备
首先电脑要安装opencv2.3.1和matlab,我用的matlab版本是2016b,opencv版本是2.4.8。具体的安装步骤在这里不是重点,不赘述。
下载
包括:opencv2.3.1+matlab编译依赖的Mingw+openTLD源码
链接: 百度云
提取码: 6vgc
安装
暂不提供
环境配置
将matlab版的TLD整个文件添加到设置路径中,如下图所示。
第三步
在matlab的命令行中输入:
mex -setup
如果报错就安装附件中的,tdm64-gcc-9.2.0.exe。
setenv(‘MW_MINGW64_LOC’,‘C:\TDM-GCC-64’)
第四步
打开compile.m文件,按照图中所示的修改如下代码:
主要修改的有:包含文件include以及库的目录libpath。
第五步
进入mex文件夹下的lk.cpp, fern.cpp, 和 bb_overlap.cpp,要注释如下所示
的几行代码:
//#ifdef _CHAR16T
//#define CHAR16_T
//#endif
第六步
然后运行compile.m文件,得到如下的显示,则证明编译成功了。
第七步
打开lk.cpp:找到这一行代码(也就是里面最长的那一行代码)
cvCalcOpticalFlowPyrLK( IMG[J], IMG[I], PYR[J], PYR[I], points[1], points[2], nPts, cvSize(win_size,win_size), Level, 0, 0, cvTermCriteria(CV_TERMCRIT_ITER|CV_TERMCRIT_EPS,20,0.03), CV_LKFLOW_INITIAL_GUESSES | CV_LKFLOW_PYR_A_READY | CV_LKFLOW_PYR_B_READY );
将红色的0的改成 status。
第八步
将D:\opencv\build\x64\vc10\bin中所有文件拷贝到D:\matlab\toolbox\zk00006-OpenTLD-8a6934d文件下
第九步
运行run_TLD.m,即可以看到如下现象: