用的是surface win10 64位 Visual Studio 2017
https://github.com/openMVG/openMVG/blob/master/BUILD.md
安装git
https://git-scm.com/downloads
全部默认
使用vcpkg安装
win+R 打开cmd 输入
cd c:/
mkdir openMVG_MVS
cd openMVG_MVS
git clone https://github.com/Microsoft/vcpkg
意思是在C盘下新建一个文件夹叫做openMVG_MVS 然后在这个文件夹中git clone vcpkg
cd vcpkg
bootstrap-vcpkg.bat
这个就是vcpkg的下载和编译
vcpkg install openmvg[core,openmp]//错误代码
要等很久。。。。。。然后报错了
Error: Building package openblas:x86-windows failed with: BUILD_FAILED
发现是默认装的x86 但是电脑是64位的 所以出错了 改成
vcpkg install openmvg[core,openmp]:x64-windows
Total elapsed time: 1.662 h 一共花了这么久
然后把cmake加入到系统环境变量path里面
也就是path里面增加 C:\openMVG_MVS\vcpkg\downloads\tools\cmake-3.14.0-windows\cmake-3.14.0-win32-x86\bin
不然执行下面第五句话的时候会出错 cmake找不到
cd ../
git clone --recursive https://github.com/openMVG/openMVG.git
mkdir openMVG_Build
cd openMVG_Build
cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_TOOLCHAIN_FILE=C:\openMVG_MVS\vcpkg/scripts/buildsystems/vcpkg.cmake ../openMVG/src/
然后打开C:\openMVG_MVS\openMVG_Build\openMVG.sln
在visual studio 里面选择 模式为 release 编译就好(在debugger 的左边可以看到)
以上就是openmvg安装的过程
https://openmvg.readthedocs.io/en/latest/software/SfM/SfM/
cd c:/openmvg_mvs
mkdir example
cd example
mkdir images
mkdir matches
mkdir outReconstruction
因为文档里面说 三个文件夹比较好 所以就弄三个文件夹
然后下载
https://github.com/openMVG/ImageDataset_SceauxCastle
这个是样例的图片 把样例的图片全部复制到上面的images文件夹中
然后开始进行sfm pipeline
cd C:\openMVG_MVS\openMVG_Build\Windows-AMD64-\Release
openMVG_main_SfMInit_ImageListing -i C:\openMVG_MVS\example\images -d C:\openMVG_MVS\openMVG\src\openMVG\exif\sensor_width_database\sensor_width_camera_database.txt -o C:\openMVG_MVS\example\matches
-i后面跟的是图片的文件夹位置
-d后面跟的是相机参数什么的自带的一个文件吧
-o是输出文件夹
openMVG_main_ComputeFeatures -i C:\openMVG_MVS\example\matches\sfm_data.json -o C:\openMVG_MVS\example\matches -m SIFT -n 4
-i 后面跟的是上一步产生的sfm_data.json
-o是输出文件夹
openMVG_main_ComputeMatches -i C:\openMVG_MVS\example\matches\sfm_data.json -o C:\openMVG_MVS\example\matches
-i 后面跟的是sfm_data.json
-o 是输出文件夹
嗯。。。'neato’未找到 :‘neato’ 不是必要的 解决方案如下: https://github.com/openMVG/openMVG/issues/576
openMVG_main_IncrementalSfM -i C:\openMVG_MVS\example\matches\sfm_data.json -m C:\openMVG_MVS\example\matches\ -o C:\openMVG_MVS\example\outReconstruction
-i 后面跟的是sfm_data.json
-m 后面是前面几何匹配信息存放的matchs文件夹
-o 是输出文件夹
openMVG_main_ComputeSfM_DataColor -i C:\openMVG_MVS\example\outReconstruction\sfm_data.bin -o C:\openMVG_MVS\example\outReconstruction\sfm_data_color.ply
-i 是 在outReconstruction文件夹下的sfm_data.bin文件
-o 是输出
openMVG_main_ComputeStructureFromKnownPoses -i C:\openMVG_MVS\example\outReconstruction\sfm_data.bin -o C:\openMVG_MVS\example\outReconstruction\robustFitting.json -m C:\openMVG_MVS\example\matches -f C:\openMVG_MVS\example\matches\matches.f.bin
-i outReconstruction文件夹下的sfm_data.bin文件
-m matches文件夹
-o 输出
这个步骤在openmvg的sfm说明文档中没有出现 但是后面查看openmvs_sample的一键生成的代码之后
https://github.com/cdcseacave/openMVS_sample/blob/master/MvgMvs_Pipeline.py
发现里面有这样一个步骤 所以就加上这一步
为什么不直接用这个一键生成的代码?
google了一下发现好像windows系统不能用 会报错 所以就一步步来了
openMVG_main_ComputeSfM_DataColor -i C:\openMVG_MVS\example\outReconstruction\robustFitting.json -o C:\openMVG_MVS\example\outReconstruction\robust_colorized.ply
嗯。。在这个网站上的windows环境下的安装代码
https://github.com/cdcseacave/openMVS/wiki/Usage
在cmake那里少了一句。。。导致一直会产生 VCG找不到的问题 所以还是直接看项目首页的 build.md 这个里面的安装方法应该是正确的
https://github.com/cdcseacave/openMVS/blob/master/BUILD.md
接下来是在cmd中输入的代码
cd C:\openMVG_MVS
mkdir OpenMvs
接下来 用vcpkg安装好多好多包。。因为vcpkg默认好像是x86的 所以如果要安装win64的话有两种方法
1 在每个包后面加:x64-windows 比如之前安装OpenMvg时出现过的代码
vcpkg install openmvg[core,openmp]:x64-windows(只是例子不是真正要输入的代码)
2 把环境变量VCPKG_DEFAULT_TRIPLET设置成x64-windows
我选择的是第二个方法 在系统变量中添加
变量名:VCPKG_DEFAULT_TRIPLET
变量值:x64-windows
(如果使用第一个方法应该就是vcpkg install zlib:x64-windows boost-iostreams:x64-windows …balahbalah 在每个东西后面加:x64-windows)
然后执行下面的代码
cd C:\openMVG_MVS\vcpkg
vcpkg install zlib boost-iostreams boost-program-options boost-system boost-serialization eigen3 cgal[core] opencv glew glfw3
要等很久(好 明日方舟启动
Total elapsed time: 38.66 min(下了这么久
继续
cd C:\openMVG_MVS
git clone https://github.com/cdcseacave/VCG.git
cd OpenMVS
git clone https://github.com/cdcseacave/openMVS.git src
mkdir build
cd build
cmake . ..\src -G "Visual Studio 15 2017 Win64" -DCMAKE_TOOLCHAIN_FILE=C:\openMVG_MVS\vcpkg\scripts\buildsystems\vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows -DVCG_ROOT="C:\openMVG_MVS\VCG"
然后可以打开C:\openMVG_MVS\OpenMvs\build中的OpenMVS.sln在visual studio里面编译 或者可以
cmake --build C:\openMVG_MVS\OpenMvs\build
然后OpenMVS就安装完了。。。
接下来 要先把之前经过OpenMVG的sfm pipeline 生成的图片信息转换成mvs文件
在这之前 新建一个文件夹
cd C:\openMVG_MVS\example
mkdir MVS
cd C:\openMVG_MVS\openMVG_Build\Windows-AMD64-\Release
openMVG_main_openMVG2openMVS -i C:\openMVG_MVS\example\outReconstruction\sfm_data.bin -o C:\openMVG_MVS\example\MVS\scene.mvs -d C:\openMVG_MVS\example\MVS
cd C:\openMVG_MVS\OpenMvs\build\bin\vc15\x64\Release
DensifyPointCloud C:\openMVG_MVS\example\MVS\scene.mvs
ReconstructMesh C:\openMVG_MVS\example\MVS\scene_dense.mvs
RefineMesh C:\openMVG_MVS\example\MVS\scene_dense_mesh.mvs
TextureMesh C:\openMVG_MVS\example\MVS\scene_dense_mesh_refine.mvs
这就是openMVG openMVS pipeline 的全部流程和我的代码