我安装的时候主要参考的此链接http://www.sigvc.org/bbs/thread-953-1-1.html,此文内容只是稍有添加,已记录安装使用过程
我电脑的程序配置:WIN7+VS2010+MATLAB R2010a+OpenCV2.2
OpenCV2.2的下载地址(这里含有各种版本的OpenCV)http://www.opencv.org.cn/index.php/Download
第一步:安装OpenCV2.2 OpenCV和VS2010的安装教程地址http://www.opencv.org.cn/index.p ... E8%A3%85OpenCV2.4.3
第二步:启动matlab R2010a,matlab R2010a本身不支持vs2010,所以要在此处下载一个名为“VS2010MEXSupport.zip”的补丁,下载地址http://mail2liujie.blog.163.com/blog/static/10743422013211339310/ 。在命令窗口中输入“mex –setup”,按y键进入编译器选择,输入vs2010编译器对应的序号(如果没有安装补丁是找不到vs2010的编译器的)。
第三步:设置“complie.m”文件的opencv的路径 原文件路径为:include = ' -Ic:\OpenCV2.2\include\opencv\ -Ic:\OpenCV2.2\include\'; libpath = 'c:\OpenCV2.2\lib\';
我的路径为: include = ' -IE:\OpenCV2.2\include\opencv\ -IE:\OpenCV2.2\include\'; libpath = 'E:\OpenCV2.2\lib\';(每个人根据自己安装opencv的路径更改,注意每个路径-I前有空格,每个路径结束有\)
注释掉:lk.cpp, fern.cpp, bb_overlap.cpp文件中的: #ifdef _CHAR16_T
#define CHAR16_T
#endif
第四步: 修改complie.m文件中的代码
解决办法是打开mex文件下的的lk.cpp文件,找到其中的186行,这里看仔细了,是这一行
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,如下:
cvCalcOpticalFlowPyrLK( IMG[J], IMG[I], PYR[J], PYR[I], points[1], points[2], nPts, cvSize(win_size,win_size), Level,status ,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 );
修改后运行,会出现'Compilation finished.'语句,这样前面的工作就成功完成了
第五步:运行run_TLD.m,这时会出现一个跟踪摩托车的影像。
第六步:打开run_TLD.m,设置camera为1,即opt.source = struct('camera',1, ...
第七步:运行run_TLD.m,之后划一个方框,即可跟踪目标。