一、编译环境
1.虚拟机:vmware workstation
2.操作系统:centos7
二、去官网下载bundler源码包,点这里下载
或者直接执行下列命令(1)从网络获取源码压缩包(2)解压(3)重命名
wget http://phototour.cs.washington.edu/bundler/distr/bundler-v0.4-source.tar.gz
tar -zvxf bundler-v0.4-source.tar.gz
mv bundler-v0.4-source bundler
三、进入bundler根目录,开始编译,如果提示没有gcc等编译工具,自行google相关的yum安装命令
在编译(make)之前请大家在/src打开Bundle2PMVS.cpp
将217行的fprintf(f_scr,"mv pmvs/%s.rd.jpg %s/visualize/%08d.jpg\n", 修改为 fprintf(f_scr, "mv %s.jpg %s/visualize/%08d.jpg\n"。
一定要小心改,至于原因我也不清楚,大致是与后面的pmvs有关。
cdbundlermake
四、此时会出现很多命令,大多是缺少依赖包之类的。
Bundler所依赖的外部库列表如下:
LAPACK :线性代数计算库
BLAS :基础线性代数子程序,在LAPACK包中有自带,但需进行设置
libjpeg :jpeg库,Ubuntu已自带
libz :通用目的的压缩库
执行以下命令安装上述的依赖库
yum install atlas atlas-devel lapack-devel blas-devel
yum install zlib-devel
若执行以上命令时出现找不到包的情况,就需要安装第三方的yum源,有(EPEL、RPMForge和RPMFusion),执行以下命令
wget https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm
rpm -Uvh rpmfusion-free-release-7.noarch.rpm
wget http://repository.it4i.cz/mirrors/repoforge/redhat/el7/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
rpm -Uvh rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
yum install epel-release
yum repolist
五、继续编译,当然,还会出现错误,提示在编译到BundlerApp.h文件第620行, 出现错误: 不能直接调用构造函数'SkeletalApp::BundlerApp')
解决方法:该头文件在/bundler/src目录中, 注释掉该行。
继续make,一般情况下就已经成功了,但如果还有错,那就是你人品太好。。。。
六、安装ImageMagick(用于将jpg文件转换为pgm格式,David Lowe的SIFT二进制文件需要)
yum install ImageMagick
七、编译sift,执行以下命令
1. 从网络获取源码包
2. 解压
3. 进入sift根目录
4. 编译
5. 将编译生成的sift文件复制到bundler根目录中的bin目录下,“bundler”表示bundler的根目录
wget http://www.cs.ubc.ca/~lowe/keypoints/siftDemoV4.zipunzip siftDemoV4.zipcdsiftDemoV4makecp sift"bundler"/bin/
八、大功告成,开始测试bundler自带的例子,在bundler根目录执行下列命令
./RunBundler.sh examples/ET
结果在bunlde文件夹中,其中包括.ply格式的稀疏点云图
网友评论