Deformable Part Model中mex文件在windows下运行的修改方法

最近做的两个实验中,都需要对在linux下编写的mex程序进行修改使得能够在windows平台下编译。

其一:deformable part model的源码

http://www.cs.brown.edu/~pff/latent/

其二:使用HOG特征进行templateMatching的小demo,使用了上述源码中的resize,以及feature提取和convolution的.cc源码进行mex编译。

http://web.mit.edu/jxiao/的网页下的:http://web.mit.edu/jxiao/Public/software/templateMatching/

下面简述修改方法:

  1. resize.cc中主要有两个函数需要重新定义:

bzero和round。在程序中添加:

#define bzero(a, b) memset(a, 0, b) 
int round(float a) { float tmp = a - (int)a; if( tmp >= 0.5 ) return (int)a + 1; else return (int)a; }

此外,resize.cc中:  alphainfo ofs[len]; 数组的维数不能为变量, 这句改成:

alphainfo *ofs = new alphainfo[len]; 

当然在同一作用域后面加上:delete []ofs

 

  2.  compile.m中:结尾加上mex -O fconv.cc

% use one of the following depending on your setup
% 1 is fastest, 3 is slowest

% 1) multithreaded convolution using blas
% mex -O fconvblas.cc -lmwblas -O fconv
% 2) mulththreaded convolution without blas
% mex -O fconvMT.cc -o fconv
% 3) basic convolution, very compatible
% mex -O fconv.cc -o fconv
mex -O fconv.cc

其他几个fconv用了其他平台的multiThread在windows上跑不起!

参考:http://www.cnblogs.com/tjulxh/archive/2012/04/23/2467094.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值