首先安装Ubuntu Windows子系统,当然也可以直接安装双系统,
由于子系统安装比较容易,这里我们安装子系统
https://zhinan.sogou.com/guide/detail/?id=316512911379
有详细教程
安装完子系统之后
菜单中会出现这样一个启动文件 打开就可进入子系统中

通过 cd /mnt/d命令即可进入d盘

接下来我们开始编译bundler_sfm-master的源码
先安装依赖项
sudo apt-get install liblapack-dev libblas-dev minpack-dev f2c gfortran jhead imagemagick
在安装 sift依赖
sudo apt-getinstall libc6-dev-i386
安装CMVS-PMVS依赖
sudo apt-getinstall libgtk2.0-dev libdevil-dev libboost-all-dev libatlas-cpp-0.6-devlibatlas-dev libcminpack-dev libgfortran3 libmetis-edf-dev libparmetis-devfreeglut3-dev libgsl0-dev
作者:一个阳光的好孩子
来源:优快云
原文:https://blog.youkuaiyun.com/moneyhoney123/article/details/78454659
版权声明:本文为博主原创文章,转载请附上博文链接!
下载sfit程序
https://www.cs.ubc.ca/~lowe/keypoints/
点击sift demo
下载完后将解压得到的siftwin32.exe 重命名为sift拷贝到bundler_sfm-master文件夹下的bin 文件夹下
开始编译:
cd 到bundler的文件夹内
Make
错误1:
这里只需要将signal1.h复制一份改名为signal1.h0(注释这里是因为曾经我在vs上编译的时候改过去的)
同样的复制sysdep1.h即可
即可继续编译 编译时间较长 耐心等待
显示缺少direct.h文件(这里也是曾经编译的时候的错误)
直接注释掉即可
到这里 Bundler就编译完成了
点击运行
缺少jhead ,
将jhead程序安装到bin文件目录下
就安装完成了再次运行
自此bundler软件运行完毕
但是我之前准备的版本重新编译之后 还是报错
不清楚这个错误的来源.
/******************************************************************************************************************************************************************************************************************************************/
CMVS—PMVS
运行完之后只是得到稀疏点云并且估计每一幅图片的相机参数(内参和外参)
之后还需要CMVS-PMVS可以利用已知图片以及图片对应相机参数(使用Bundler求得)来进行稠密的三维重建(dense reconstruction)。
要运行cmvs首先要安装cmvs的依赖项sudo apt-get install libgtk2.0-dev libdevil-dev libboost-all-dev libatlas-cpp-0.6-dev libatlas-dev libcminpack-dev libgfortran3 libmetis-edf-dev libparmetis-dev freeglut3-dev libgsl0-dev
作者:幸福liwenchao
来源:优快云
原文:https://blog.youkuaiyun.com/u013358387/article/details/71576660
版权声明:本文为博主原创文章,转载请附上博文链接!
接下来我们继续对CMVS-PMVS进行编译,我们依然使用cd命令进入到CMVS-PMVS/program/下,然后依次执行以下命令
mkdir build && cd build
cmake …
make
1 2 3 执行完成后,CMVS-PMVS也就编译完成了,生成的可执行文件位于build目录下的main目录中。为了接下来运行方便,我们将生成的可执行文件cmvs、genOption、pmvs2这三个文件拷贝到bundler_sfm目录的bin下。
回到图片目录下
执行
…/…/bin/Bundle2PMVS prepare/list.txt bundle/bundle.out
发现报错
上网查询好像是空指针的问题回想到之前有用到Bundle2PMVS的修改,我们将其改回来 重新编译(这里也是在VS上编译的时候改的,如果直接从github上下载的代码是不会有报错的)
重新编译之后再次运行代码得到下面的
ET文件夹下出现了一个新的文件夹pmvs
对Kermit也进行了同样的操作 得到PMVS文件夹下的文件为
此时会生成pmvs目录,在此目录下有prep_pmvs.sh文件,我们编辑此文件,将里边的BUNDLER_BIN_PATH修改为bundler的bin文件夹的实际路径。例如:
BUNDLER_BIN_PATH=/home/chao/AAAAAA/temp/bundler_sfm/bin
然后依次执行如下操作
修改后的路径为:(这里使用的我的Bundler所在的地点如果自己不知道完整路径的 可以定位到bin后调用pwd函数获取)
运行之后得到
重新从GitHub下载完整的代码编译之后终于跑过了这一步
运行…/…/bin/cmvs pmvs/得到
再次运行
至此Bundler+PMVS、cmvs三维重建完成
生成的最终结果位于pmvs目录的models 文件夹下,名称为option-0000.ply,我们直接使用meshlab打开此文件便可以看到结果。如下图所示
关于源码的下载 Bundler_sfm-master: https://github.com/snavely/bundler_sfm
CMVS-PMVS:https://github.com/pmoulon/CMVS-PMVS.git