[2014.5.18][SuperPixel] 也看Greg.Mori.代码的配置与执行

SuperPixel最初由Xiaofeng Ren提出(ICCV 2003),但我在网络上尚未找到有关这个最初想法的源代码;比较容易获得的倒是Greg Mori(CVPR 2004,ICCV 2005)基于Xiaofeng Ren算法做的代码https://www.cs.sfu.ca/~mori/research/superpixels/.代码包分为32bit版和64bit版.

这个代码用到了C与M混合编程,并非是拿来即可运行的,在代码和matlab的配置上还是有一定需要注意的问题。

搜索了下,有关Greg Mori代码的配置主要都是针对32bit的.网络上共有两个版本.一个是Linux(32bit+matlab 2010a)下的配置指导:http://kittipatkampa.wordpress.com/2011/02/28/how-to-install-greg-moris-superpixel-matlab-code/

配置的步骤非常详细,对产生的问题也是有预见性.参考价值较大.

另一个版本是国内研究者的简单修改版http://blog.csdn.net/likuan/article/details/7389761也是针对32bit版进行的测试,适用于windows版本的测试。

本人下载的是64bit的程序包,在配置上还是遇到了上述两种修改方法都不一样的地方。先把具体过程列出来。

1.从berkeley上下载image segmentation的benchmark的库,解压到你的superpixel代码的文件夹下(假设你的代码解压到名为superpixel的文件夹下),解压后的目录结构如下:

2.按照kittipatkampa的方法修改'segbench/Dataset/bsdsRoot.m'中的路径;

3.mex目录yu_imncut下的所有C文件,要逐个mex,‘mex *.c’不好用....这步骤和上述两种方法差不多,唯一不同由于是64bit上运行,mex命令要求带如下参数:

mex -O -largeArrayDims csparse.c
mex -O -largeArrayDims ic.c
mex -O -largeArrayDims imnb.c
mex -O -largeArrayDims parmatV.c
mex -O -largeArrayDims spmd1.c
你也可以把这些命令写入一个名为'make.m'文件,batch运行;

4.修改sp_demo.m的头部,加入对当前路径的获取(这个基本参照likuan的指导)

s_cur_path = fileparts(mfilename('fullpath'));
cd(s_cur_path);
addpath(genpath(s_cur_path));

5.likuan的guidence中要求修改cncut.m中的两处spmd为spmd2,这个在64bit代码中不需要,针对64bit代码,此步可以忽略;

6.Then Enjoy It!


7.一些注记 由于不同系统 不同内置编译器(gcc,vc2008,2010 etc ),建议需要把代码移植到不同机器上的童鞋在运行代码前都要把原先mex的文件删除,然后重新mex,这样可以避免一些不必要的报错.

当然代码中还是有些warning的,本人较懒 还来不及深究 哪位同好有好的suggestion pm我


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值