TLD matlab c++混编代码的运行配置方法

  最近在看TLD这篇论文,其作者提供的源代码是matlab与C++混编的,所以在运行代码之前,需要进行一些配置步骤,网上也提供了很多,不过我根据我在配置中遇到的问题总结了一下,应该是比较完整的版本:

步骤如下:

1、在matlab的command window中输入:mex_setup  选择 y 回车,并选择相应的VS编译器  (这里需要注意:MATLAB 的版本要高于VS的版本才可以,比如我的是matlab R2012a  ,我在选择编译器版本时只能选择VS2010,虽然我的电脑中也安装了VS2013)详细过程见下面的截图:



2、安装opencv (我安装的是opecv 2.4.12) 安装教程可以参见网上,以后应该也会写一个完整的版本。


3、打开TLD的compile.m文件

  将下面的信息修改成自己的opencv的路径和版本:

	include = ' -ID:\MenghanZhou\Han_Tools\VS2013\opencv\build\include\opencv\ -ID:\MenghanZhou\Han_Tools\VS2013\opencv\build\include\ -ID:\MenghanZhou\Han_Tools\VS2013\opencv\build\include\opencv2\';
	%D:\MenghanZhou\Han_Tools\VS2013\opencv\build\include\opencv\
	%D:\MenghanZhou\Han_Tools\VS2013\opencv\build\include\
	%D:\MenghanZhou\Han_Tools\VS2013\opencv\build\includeopencv2\
	libpath = 'D:\MenghanZhou\Han_Tools\VS2013\opencv\build\x64\vc12\lib\';

  注意其中的空格!!!!


4、如果你是64位系统,打开mex文件夹,找到lk.cpp  fern.cpp bb_overlap.cpp,将以下代码注释掉   

//#ifdef _CHAR16T
//#define CHAR16_T
//#endif


5、打开lk.cpp,找到其中的186行左右,将Level,0,0改成Level,status,0,具体见下:

            //forward trajectory 前向轨迹跟踪  
			cvCalcOpticalFlowPyrLK( IMG[I], IMG[J], PYR[I], PYR[J], points[0], points[1], nPts, cvSize(win_size,win_size), Level, status, 0, cvTermCriteria(CV_TERMCRIT_ITER|CV_TERMCRIT_EPS,20,0.03), CV_LKFLOW_INITIAL_GUESSES);
			//backward trajectory 后向轨迹跟踪  
            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 );


6、打开compile.m,第30行左右修改为:

	files = dir(fullfile(libpath, '*.lib'));
	lib = [];
	for i = 1:length(files),
		lib = [lib ' ' libpath '\' files(i).name];
	end


7、运行compile.m,出现compilation finished。哈哈,ok!!


8、把img\img_blur.m中的第29行的FSPECIAL改成小写fspecial,运行run_TLD.m

  出现下图这种对原图像中每帧图像目标boundingbox的跟踪,则说明运行成功啦!!



另外,可能会提示.....不是有效的32位程序类似的错误,这时的解决方法是:

将系统环境变量中的opencv bin目录中的×86改为×64


修改完之后,记得要重启matlab再运行程序。




  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值