Normalized Cut的C++代码 Linux Win

本文分享了一款可靠的NormalizedCut算法C++版本的配置过程,包括在Ubuntu系统中配置所需的库,解决编译错误,以及如何将Linux版本的代码移植到Windows平台Visual Studio上。

由于工作上需要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 编译即可

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值