我下载的是voc-release5
1.按照这篇文章,都操作了一遍:http://blog.csdn.net/pozen/article/details/7023742#quote
2.运行demo不成功 继续按照http://cfanz.cn/index.php?c=article&a=read&id=128978的方法修改
2.1在按这一篇运行 >> mex cascade.cpp model.cpp 时报错: D:\PROGRA~1\MATLAB\R2012B\BIN\MEX.PL: Error: 'cascade.cpp' not found.
解决:将matlab的当前路径修改成存放cascade.cpp文件的路径
2.2 打开timer.h 将#include <sys\time.h> 改成 #include <time.h>
2.3 惊喜。在运行mex fconv_var_dim.cpp时没有报错
3.运行demo.m
3.1注释掉
% fprintf('compiling the code...');
% compile;
% fprintf('done.\n\n');
运行报错:Undefined function 'resize' for input arguments of type 'double'.
看来还是不能注释掉上面那三句。
取消注释后,把cascade_compile.m 中的第41行mexcmd = [mexcmd ' star-cascade/cascade.cc star-cascade/model.cc']; 改成 :mexcmd = [mexcmd ' star-cascade/cascade.cpp star-cascade/model.cpp']; 因为前面改过名字
把当前路径改成voc-release5的路径:F:\competition\Deformable Part Model\voc-release5
做到上面一步,做不下去了。各种报错。 发现网上的教程都是对应4.01版本的 我用的版本5连文件名都不完全一样
--------------------------------------------------------------------------------------------------------------------
改下载旧版本voc-release4.01
按照:http://www.verydemo.com/demo_c92_i211009.html 的说明处理 实际上就是 http://blog.csdn.net/pozen/article/details/7023742#quote后面加上了一个步骤:
将void *process(void *thread_arg) 改为 void process(void *thread_arg)
此外还需要把compile.m中的mex -O fconvsse.cc -o fconv 注释掉