How cdcseacave/openmvs works
OpenMVS is a multi-view stereo reconstruction library and command-line toolkit. Its principal workflow takes camera poses and a sparse point cloud, densifies the reconstruction, reconstructs and refines a mesh, then textures it. The repository also provides format adapters, scene transformation, keyframe extraction, and a geometry viewer. The README documents the overall reconstruction stages; the source index confirms application-to-scene dependencies and some internal module relationships. Several capabilities are represented at their exact source paths, but their unsampled implementations are not inferred in detail.
Main entry points: MVS/Scene.h MVS scene model · SFM/Scene.h SfM scene and alignment · DensifyPointCloud.cpp Densify command · SceneDensify.cpp Dense point cloud
Components 22
SfM support
- SfM scene and alignment
libs/SFM/Scene.h - Rotation averaging
libs/SFM/GlobalRotationAveraging.cpp - Keyframe extraction
libs/SFM/KeyframeExtractor.cpp - SfM format imports
libs/SFM/ImportCOLMAP.cpp
Formats and scenes
- Format adapters
apps/InterfaceCOLMAP/InterfaceCOLMAP.cpp - MVS scene model
libs/MVS/Scene.h - Image and geometry I/O
libs/IO/Common.h
MVS reconstruction
- Dense point cloud
libs/MVS/SceneDensify.cpp - Depth maps
libs/MVS/DepthMap.cpp - Mesh reconstruction
libs/MVS/SceneReconstruct.cpp - Mesh refinement
libs/MVS/SceneRefine.cpp - Mesh texturing
libs/MVS/SceneTexture.cpp
User tools
- Densify command
apps/DensifyPointCloud/DensifyPointCloud.cpp - Mesh reconstruction command
apps/ReconstructMesh/ReconstructMesh.cpp - Mesh refinement command
apps/RefineMesh/RefineMesh.cpp - Texture command
apps/TextureMesh/TextureMesh.cpp - Scene transformation
apps/TransformScene/TransformScene.cpp - Interactive scene viewer
apps/Viewer/Window.h - Geometry selection
apps/Viewer/SelectionController.cpp - Python pipeline
scripts/python/MvgMvsPipeline.py
Other components
- Poses and sparse cloud
- Textured mesh
Connections 22
- Poses and sparse cloud → SfM scene and alignment: provides poses
README.md - SfM scene and alignment → Rotation averaging: averages rotations
libs/SFM/GlobalRotationAveraging.cpp - SfM scene and alignment → MVS scene model: transfers scene
- SfM format imports → SfM scene and alignment: imports models
- Format adapters → MVS scene model: loads or saves
apps/InterfaceCOLMAP/InterfaceCOLMAP.cpp - MVS scene model → Image and geometry I/O: uses formats
libs/IO/Common.h - MVS scene model → Densify command: provides input
apps/DensifyPointCloud/DensifyPointCloud.cpp - Densify command → Dense point cloud: runs densification
- Dense point cloud → Depth maps: computes depth maps
libs/MVS/SceneDensify.cpp - Poses and sparse cloud → Densify command: supplies sparse data
README.md - Dense point cloud → Mesh reconstruction command: provides dense cloud
README.md - Mesh reconstruction command → Mesh reconstruction: runs reconstruction
- Mesh reconstruction → Mesh refinement command: provides mesh
README.md - Mesh refinement command → Mesh refinement: runs refinement
- Mesh refinement → Texture command: provides refined mesh
README.md - Texture command → Mesh texturing: runs texturing
- Mesh texturing → Textured mesh: produces texture
README.md - Scene transformation → MVS scene model: transforms scene
apps/TransformScene/TransformScene.cpp - Interactive scene viewer → MVS scene model: views geometry
- Interactive scene viewer → Geometry selection: uses selection
apps/Viewer/Window.h - Python pipeline → Densify command: orchestrates
- Keyframe extraction → SfM scene and alignment: processes images