TLD(matlab版)调试

1.下载源代码,matlab版。

2.mex -setup 指定编译器,我用的是vs2008+matlab2012a。

3.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.m,然后运行run_TLD.m即可

4.运行compile.m文件。在运行之前要修改m文件中的include和libpath路径,使其指向本机opencv安装的目录。注意以下几点:

   a.目录最后加 “\‘”; b.不要把opencv安装在有空格的目录下,比如\program files\;c.系统变量path中加入bin和include的目录;d.FSPECIAL函数改为小写;

5.程序默认是播放视频文件,_input文件夹下有个txt文件,是初始矩形框的。如果要改为摄像头,把run_TLD.m文件中

opt.source          = struct('camera',0,'input','_input/','bb0',[]); % camera/directory swith, directory_name, initial_bounding_box (if empty, it will be selected by the user)

’camera'后的0改为1即可。

6.运行摄像头目标跟踪,先运行initcamera.m文件,报错的话在调整下面的程序的注释二选一即可。

source.vid = videoinput('winvideo', 1,'RGB24_320x240');
%source.vid = videoinput('winvideo', 1,'YUY2_320x240');

你可能感兴趣的:(TLD(matlab版)调试)