Normalized Cut的C++代码 Linux Win

来源:互联网 发布:java手机游戏51 编辑:程序博客网 时间:2024/05/16 15:24

由于工作上需要C++版的Normalized Cut 代码,爬遍几乎整个网络,找到了一个比较靠谱的版本,但期间各种配置,终于搞定,做下记录。


代码原始版:https://github.com/bsankaran/clutter_segmentation/tree/master/ncuts-evh


一、 首先自己在Ubuntu系统上验证了下,配置的时候:

1 先下载Boost Eigen3 两个库,放到/usr/include路径下(这两个是.h版的库,不需要安装) 

2 安装依赖库arpack: sudo apt-get install libarpack2-dev libsuperlu3-dev

3 git clone源码,进行make


make的时候出现错误: no declarations were found by argument-dependent lookup,跟进去发现找不到的是继承里的虚函数

解决:在makefile里添加 -fpermissive

make搞定


二、Linux->Window的移植

自己的程序是在VS上编写的,所以需要移植到VS,但开源代码是Linux下的。成功移植的步骤如下:


1 移植ARPACK,参考文章:http://www.cs.cmu.edu/~barbic/arpack.html,需要注意的是

(1) 现在已经淘汰FC=g77的Fortran的编译器,需要改为gfortran,修改文件 ARmake.inc:

    FC = gfortran 注释掉FFLAGS = -O -cg89


(2)修改 second.f 文件为:

      SUBROUTINE SECOND( T )
      REAL       T
      CALL CPU_TIME(T)
      RETURN
      END


2 arcompp.h里加入 #define __GNUG__ 不然提示找不到 arcomplex标志


3 编译即可

0 0