TLD算法-Matlab混合编程之配置问题
最近在搞TLD的算法,首先是配置问题的解决。
最开始在win7_x64+vs2010ultimate+opencv2.4.3+Matlab2011b的环境下配置 vs跑mex.sln总是个各种问题。。
后来换到32位win7,vs、opencv、matlab装好 在matlab里跑compile OK,跑run_TLD报错 然后看别人用xp装成功了 觉得还是系统的问题
最后换到了xp(当然是32位的啊) 发现和win7_x86一样的问题 显然不是系统问题 是配置问题(xp装的是正版的。。。)
我觉得win7不管32位还是64位应该都是可以的吧,就是配置没弄好才跑步起来的。。不过没去试过 。
xp下配置的过程:
1.matlab装好(我装的是matlab2011b)
2.vs2010装好(我装的是ultimate)
3.opencv装好(我没有用cmake编译),记得把“c:\OpenCV2.2\bin”或“C:\software\opencv\build\x86\vc10\bin”这样的路径添加到系统PATH中(!!关键!)(貌似加了path后要注销的)
4.打开matlab 依次输入mbuild -setup(选vs2010), mex -set up(选vs2010)
5.matlab命令框里切换到TLD 路径下(偶然发现matlab可以打基本的linux命令,爽啊),打开compile.m修改“if isp”下的include和libpath,改成你opencv安装的对应路径(注意最后一个"\"不可省略),保存后运行 发现报错说FSPECIAL的问题 打开到对应文件中修改fspecial(小写)保存后运行就ok
6.运行compile.m, 显示complete 然后运行run_TLD.m, 会跳出一个视频捕捉窗口(一个人在骑摩托),成功!!
这里感谢samjohnson在github上的回答,详见https://github.com/zk00006/OpenTLD/issues/24
如果你感觉配置好了 compile后complete, 运行run_TLD后显示“....\lk.mexw32': 找不到指定的模块,但是明明在路径下能找到lk.mexw32 这是因为opencv/bin(或者其他路径,见上面步骤3)没有加入到系统PATH里面去