ZK大神的TLD代码调试

经过几天的调试 写出这篇文章希望能对有要调试TLD代码的同学有帮助 。

(我自己是按照这个方法调试正确的,环境是VS2010+matlabR2012a+OpenCV2.3.1)

OpenCV的安装这里就不说了 详情请见http://pan.baidu.com/share/link?shareid=1859964713&uk=1040785224&fid=804639295

我是按照这篇文章配置的。这里说一下 我的电脑是64位的,matlab当然是装的64位的,OpenCV却是按照上面文章这样配置的32位的(x86)的路径,这里在后面调试会有影响,后面来细说。

当OpenCV配置好了之后,在大神的代码里面要改几个地方。在compile.m文件中

if ispc
    disp('PC');
    include = ' -ID:\Opencv\opencv\build\include\opencv\ -ID:\Opencv\opencv\build\include\ -ID:\Opencv\opencv\build\include\opencv2\';
    libpath = 'D:\Opencv\opencv\build\x64\vc10\lib\';

(注意这里每个路径替换原来有\的地方一定要有!)

要改掉。将红色的地方改为自己的opencv的里面的文件路径。(千万记住不要犯这篇文章之中的错误http://hi.baidu.com/mvp_xuan/blog/item/0f6dbf8ae7633e629f2fb424.html)


(有的文章之中说compile.m中clc; clear all; cd mex;要把mex换成TLD程序中mex文件夹在电脑中的位置,我自己试过觉得其实可以不用。因为我没换也运行出来了。)

注释掉:lk.cpp, fern.cpp, bb_overlap.cpp文件中的:    #ifdef _CHAR16_T 

                                                     #define CHAR16_T 

                                                     #endif 这三行代码

然后修改compile.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 );

改了这里,之前看的文章就说可以运行了,但是我的程序compile时却一直在报错。报错的内容大概是matlab和VC混编的代码里面很多的函数无法识别。

我的解决方法是在OPENCV的配置.lib文件时,在debug和release下都多加了几个文件,分别是libmat.lib libmx.lib libut.lib

这时compile正确。

但是TLD运行错误,改正的方法是,img_blur文件中FSPECIAL改成fspecial。

注意!!

之前说了我的OPENCV是按照上面网站的32位来装的,可能是这是32位和64位的编译问题,我就把opencv\build\x64\vc10\bin下面的.dll文件都放在了C盘的window下面,程序就compile正确,并且可以运行!


(不知道这个方法适不适合大家,只是把我调试的过程大致的写出来,要是有用的话帮大家少走弯路,节约时间。没用的话我也没有办法了= =)





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值