第一步:
首先电脑要安装opencv和VS,我个人用的VS版本是VS2010,opencv版本是2.4.8。具体的安装步骤在这里不是重点,不累赘。
第二步:
将matlab版的TLD整个文件添加到设置路径中,如下图所示
。
第三步:在matlab的命令行中输入mex -setup:
第四步:
打开compile.m文件,按照图中所示的修改如下代码:
主要修改的有:包含文件include以及库的目录libpath。我个人将opencv安装在D盘了,熟练一点的兄弟,可以参考如下步骤修改就行了,注意一下就是我的电脑是64位的,所以在libpath = 'D:\opencv\build\x64\vc10\lib\';
必须要用X64的,我平常用opencv都是用的VS2010的X86版本的,在VS上运行也是没问题的,X64兼容X86的,但这个地方却不能使用X86的,否则会报一些很多错误。
第五步:
进入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,即可以看到如下现象: