[CV] bundler安装

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/whzyb1991/article/details/50286563

http://www.cs.cornell.edu/~snavely/bundler/ 下载安装了源码包,在安装配置中会出现以下一些问题

  1. sift在64位系统上运行
    从lowe主页中下载的sift是一个32位的静态库文件

./bin/sift: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.2.5, for SuSE 9.1, not stripped

而我的ubuntu14.04是 64位系统,也就是需要在64位系统上运行32程序。
解决方法:

//add i386 support to run 32bit binary file
sudo apt-get install gcc-multilib

sudo dpkg –add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386

  1. IPL库安装
    $ sudo apt-get install python-imaging

$ sudo apt-get install libjpeg-dev libfreetype6 libfreetype6-dev zlib1g-dev

$ sudo ln -s /usr/lib/uname -i-linux-gnu/libfreetype.so /usr/lib/

$ sudo ln -s /usr/lib/uname -i-linux-gnu/libjpeg.so /usr/lib/

$ sudo ln -s /usr/lib/uname -i-linux-gnu/libz.so /usr/lib/

$ sudo apt-get install pip

$ pip install PIL

  1. 安装Gfortran
    sudo apt-get install gfortran

  2. 其他的一些库
    1)LAPACK:线性代数计算库
    2)BLAS: 基础线性代数子程序,在LAPACK包中自带,但需进行设置
    3)libjpeg:jpeg库,Ubuntu自带
    4)lib: 通用目的的压缩库

1) LAPACK 官网下载好解压后,进入文件夹中
根据安装文档安装后,将生成的lib文件夹下的库文件拷至bundler的lib目录下
2) ZLIB的安装
./configure
make
sudo make install

  1. ImageMagick
    tar xvzf ImageMagick.tar.gz
    cd ImageMagick-x-x-x
    ./configure
    make
    sudo make install
    sudo ldconfig /usr/local/lib
    测试
    /usr/local/bin/convert logo:logo.gif
    make check

只是临时设置变量 LD_LIBRARY_PATH ,下次开机,一切设置将不复存在;如何把这个值持续写到 LD_LIBRARY_PATH 里呢?

我们可以在 ~/.bashrc 或者 ~/.bash_profile 中加入 export 语句,前者在每次登陆和每次打开 shell 都读取一次,后者只在登陆时读取一次。我的习惯是加到 ~/.bashrc 中,在该文件的未尾,可采用如下语句来使设置生效:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
修改完后,记得关掉当前终端并重新打开一个新的终端,从而使上面的配置生效。

然后
Go to /bundler-v0.4-source/bin (copy libANN to lib folder code as follows)
$ sudo cp libANN_char.so /lib

最后make

Make 过程中的问题

After make, we can see such error,

BundlerApp.h:620:32: error: cannot call constructor ‘SkeletalApp::BundlerApp’

  1. The solution is to change “BundlerApp::BundlerApp();” to “BundlerApp();” in line 620 of the file of BundlerApp.h

测试
~/bundler-v0.4-source $ ./RunBundler.sh examples/ET

为了可以增加debug功能
在src中的makefile中将opt flags修改成
CXXFLAGS = -c -g -Ddebug

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页