简要记录一下colmap+openMVS稠密重建相关使用
cd ~/Documents/OPENMVS/openMVS/openMVS_build
# 稠密重建及可视化
./bin/DensifyPointCloud -w ../../data/ -i scene.mvs -o test_dense.mvs
# 网格重建及可视化
./bin/ReconstructMesh -w /home/juling/Documents/OPENMVS/demo/ -i demo_dense.mvs -o demo_mesh.mvs
./bin/Viewer ../../demo/demo_mesh.mvs
# 网格优化
./bin/RefineMesh -w /home/juling/Documents/OPENMVS/demo/ -i demo_mesh.mvs -o demo_refinemesh.mvs
./bin/Viewer ../../demo/demo_refinemesh.mvs
# 纹理贴图
./bin/TextureMesh -w /home/juling/Documents/OPENMVS/demo/ -i demo_refinemesh.mvs -o demo_texture.mvs
./bin/Viewer ../../demo/demo_texture.mvs
生成的稠密点云结果如下所示:

纹理贴图结果如下所示:

windows下的稠密重建教程:colmap稠密三维重建
colmap进行稀疏重建主要有以下几个步骤:
稀疏重建结束,可以看到SFM的结果如下:

注:我使用SIMPLE_RADIAL相机模型导出了cameras.txt,在cameras.txt中将所有SIMPLE_RADIAL直接修改为PINHOLE后保存,再使用openMVS重建,得到的效果非常奇怪,最后重新跑了一遍稀疏重建,相机模型选择PINHOLE,得到的重建结果正常。
项目目录结构:

openMVS/openMVS_build/bin,有InterfaceCOLMAP接口。
box文件夹下有images和sparse两个文件夹,其中images为图片,sparse下为SFM生成的3个txt文件。
cd openMVS/openMVS_build
./bin/InterfaceCOLMAP -i /home/juling/Documents/OPENMVS/box -o box.mvs
-i 是包含images和sparse文件夹的目录。
-o 是生成.mvs文件保存的路径。-o box.mvs表示在openMVS_build目录下生成box.mvs。
注:生成.mvs文件的路径貌似不能设置保存到自定义路径,设置保存到自定义路径是可以保存成功的,但在进行稠密点云重建时会出现路径错误,无法读取图片。所以默认设置
-o box.mvs在openMVS_build目录下生成box.mvs,然后将这个文件复制到box下使用,就不会出现稠密重建读不到图像的问题。
cd ~/Documents/OPENMVS/openMVS/openMVS_build./bin/DensifyPointCloud -w ../../box/ -i box.mvs -o box_dense.mvs,会在box目录下生成深度图、box_dense.mvs、box_dense.ply文件。查看稠密重建的结果可用MeshLab打开ply文件,也可使用openMVS提供的Viewer接口查看./bin/Viewer ../../box/box_dense.mvs。./bin/ReconstructMesh -w ../../box/ -i box.mvs -o box_mesh.mvs生成box_mesh.mvs以及box_mesh.ply。注:继续进行网格优化时出现报错,发现是相对路径的问题,在运行时-w输入绝对路径即可。
cd ~/Documents/OPENMVS/openMVS/openMVS_build
# 转换mvs格式
./bin/InterfaceCOLMAP -w /home/juling/Documents/OPENMVS/underwater/ -i /home/juling/Documents/OPENMVS/underwater/ -o underwater.mvs
# 稠密建图
./bin/DensifyPointCloud -w /home/juling/Documents/OPENMVS/underwater/ -i underwater.mvs -o underwater_dense.mvs
# 网格重建
./bin/ReconstructMesh -w /home/juling/Documents/OPENMVS/underwater/ -i underwater_dense.mvs -o underwater_mesh.mvs
# 网格优化
./bin/RefineMesh -w /home/juling/Documents/OPENMVS/underwater/ -i underwater_mesh.mvs -o underwater_refinemesh.mvs
# 纹理贴图
./bin/TextureMesh -w /home/juling/Documents/OPENMVS/underwater/ -i underwater_refinemesh.mvs -o underwater_texture.mvs
稠密重建结果如下:

参考:
[1] MVS三维重建概述与OpenMVS开源框架配置