Releases: cdcseacave/openMVS
ROI estimation and new Viewer
Version 2.4.0 (January 20, 2026)
Summary
- Complete viewer rewrite with OpenGL 3, ImGui UI, multi-select, screenshots, workflows
- Automatic Region-Of-Interest (ROI) detection
- GPU-based selection and improved rendering
- Enhanced dense reconstruction with SfM normals, segmentation from masks
- Support for new formats: VGGSFM, GLTF point clouds
- Python utilities for depth-maps and mesh reconstruction
- Improved CMake and build system
Major Features
Viewer Enhancements
- Multi-select and screenshot functionality - Select multiple objects and capture screenshots
- GPU-based picker implementation - Improved selection performance using GPU
- Console in UI - Integrated console for better debugging and logging
- Workflow support - Run workflows directly from the viewer, including background execution
- Empty scene signaling - Better handling of empty scenes
- File type associations - Improved file type handling on different platforms
- 3D axes drawing - Visual coordinate system display
- OpenGL v3 upgrade with ImGui - Modernized rendering pipeline with new UI framework
- Camera selection - Select and interact with individual cameras
- GLEW replaced with GLAD - Updated OpenGL loader
Dense Reconstruction Improvements
- SfM normals and surface patches estimation - Better initial geometry from sparse reconstruction
- Point-cloud segmentation from image masks - Automatic segmentation support
- GLTF point-cloud loading - Support for GLTF format
- ROI estimation - Automatic Region-Of-Interest detection
- Depth confidence adjustment - Fast neighbor agreement-based confidence tuning
- Point weighting in ROI - Better handling of region of interest
- Depth-map confidence unification - Normalized confidence values between [0,1]
Interface & Import/Export
- VGGSFM output support - Import from VGGSFM reconstruction
- SIMPLE_PINHOLE model for COLMAP - Additional camera model support
- Binary COLMAP format - Export options for binary format, no points, and common intrinsics
- Python scripts:
- Depth-maps to TSDF mesh
- Depth-map import from NPY or EXR
- DMAP save functionality
Build System
- Enhanced CMake - Streamlined dependencies and improved library linking
- vcpkg integration updates - Regular updates to latest vcpkg releases
- Docker to Ubuntu 24.04 - Updated Docker environment
Core Improvements
Mathematics & Transformations
- ConfidenceInterval addition - Statistical analysis support
- SimilarityTransform refactoring - Improved transformation handling
- Scene coordinates normalization - Better numerical stability
Mesh Processing
- Crop to ROI - Mesh cropping within region of interest
- Parameters fine-tuning for thin structures - Better reconstruction of thin objects
- TRasterMesh multithread-safety - Thread-safe mesh operations
- Stricter threshold for degenerate faces - Improved mesh quality
- RemoveDegenerateFaces() and RemoveDuplicatedVertices() - Mesh cleanup utilities
Performance & Stability
- Bug fixes:
- Tower generation bug fix
- cList constructor bug (#1229)
- File class support for files >2GB
- CUDA support:
- New GPU architectures (A100, etc.)
- CameraCUDA refactoring
- Device utilities addition
Add multi-texture support to mesh texturing
Version 2.3.0 (January 7, 2024)
Summary
- store all stages in Interface MVS format by default
- store dense point-cloud as PLY, including all point-views information, etc
- add max-texture-size and multi-texture support to mesh texturing stage
- speedup/improve fix non-manifold mesh algorithm
- unify library/application initialization/destroying
- add python support for reading DMAP and Interface MVS file formats
- account for different pixel center conventions when importing/exporting COLMAP which uses pixel center at (0.5,0.5) instead of (0, 0) as OpenMVS
- add interface to MVSNet, Nerfstudio and RTMV scene formats
- improve interface to Polycam scene format
- speedup PLY load/save
- speedup/improve ray-triangle intersection
- add support for UV coordinates agnostic about orientation
- add support for storing neighbor views information in Interface MVS format
- add support for C++20
- various other fixes
Major Features
Storage & I/O
- Interface MVS format as default - All stages stored in MVS format by default
- Dense point-cloud as PLY - Including all point-views information
- Python API - Read DMAP and Interface MVS file formats from Python
- Speedup PLY load/save - Faster file operations
Texturing
- Max-texture-size support - Control texture resolution
- Multi-texture support - Multiple texture maps for large meshes
- UV coordinates orientation agnostic - Flexible UV handling
- Pixel center convention fixes - Correct pixel center handling
Pipeline Integration
- MVSNet interface - Import/export MVSNet scenes
- Nerfstudio interface - Import Nerfstudio data
- RTMV interface - Support for RTMV format
- Polycam improvements - Better Polycam import
Mesh Operations
- Fix non-manifold speedup/improvement - Faster and better mesh cleanup
- Ray-triangle intersection improvements - More accurate and faster
- Neighbor views in MVS format - Store neighbor information
Build & Development
- C++20 support - Modern C++ features
- Unified initialization - Library/application lifecycle management
- COLMAP pixel center convention - Account for (0.5,0.5) center vs (0,0)
Add Python API
- add Python API
- COLMAP support in MvgMvsPipeline.py
- interface for binary COLMAP
- interface for Polycam scenes
- tower mode #1017
- estimate 3D points scale
- transform scene by a given transform matrix
- unify Docker scripts and add support for GUI
- fix incorrect comparison in BufferedOutputStream #1010
- add lines structure
- compute the focus of attention of a set of cameras
- add image mask support in mesh texturing
Improved densification of textureless areas
- Improve depth-map estimation in textureless areas using multi-resolution
- Add texture sharpening
- Ground plane estimation
- Estimate volume from the reconstructed mesh
- Texture transfer between two meshes
- Automatic Region-Of-Interest estimation
- Simplify build with vcpkg
- Add tests
- Add Continuous Integration action
- Various bug fixes
Various bug-fixes and algorithm fine-tuning
Most important changes:
- fix various bugs and fine-tune Patch-Match CUDA
- update
MvgMvsPipeline.pyto match the latest OpenMVG and OpenMVS - add support to rescale a scene, including the images, in
InterfaceCOLMAP - add support to remesh a reconstruction to the mesh cleaning step
- add support to center the scene and set the bounding box to
Viewer - improve view neighbors selection
- generate depth-maps by rendering a given mesh in each view
- simplify view selection in mesh texturing
Faster & more accurate densification
Most important changes:
- new Patch-Match algorithm with improved accuracy and speed (CUDA)
- add geometric-consistency during depth-map estimation
- cluster large scenes to be processed individually (
--sub-scene-area) - Region-Of-Interest (ROI) import and scene trim
- GLTF/GLB exporter
Expose depth-maps
Depth-maps stored as DMAP files can now be exported/imported/visualized. Full changes:
- add DMAP visualization support to Viewer
- expose depth-map file format in Interface.h
- script MvgMvsPipeline.py improvement
- build scripts improvements
- small depth-map estimation improvement
- add option to decimate the input mesh before texturing
- add support for binary COLMAP projects
- add support for Bundle OUT projects (only undistorted cameras)
Implement Semi-Global Matching
Main changes:
- add Semi-Global Matching as a method to estimate a dense point-cloud; this method is still experimental, thus sometimes the speed and completeness might not be as good as the Path-Match approach, though the accuracy could be better; as always any contribution in improving any of these algorithms is welcome
v1.0.1: Merge branch 'develop' into master (#512)
Main changes:
- open depth-map
DMAPfile format for easy utilization outsideOpenMVS(seeExportDepthDataRaw()andImportDepthDataRaw()) - expose some depth-map functions in
SceneDensify.h - add global
IDsupport to image structure to allow processing large scenes by splitting them into multiple sub-scenes to be processed individually
v1.0
First mature version of OpenMVS.
The quality of the dense point-cloud is much improved. Tested on the two most representative benchmarks in this field, OpenMVS obtains a decent position in the leader-board at only a fraction of run-time compared to the other methods, even though using only a CPU implementation:
- ETH3D Benchmark (created by the COLMAP authors)
- Tanks and Temples Benchmark (created by Intel)
Even better results can be obtained by using also the mesh reconstruction and mesh refinement modules on top of the dense-point cloud and submit a point-cloud sampled from the more accurate mesh.
The support for the OpenMVG SfM solution was extended with an interface to/from the COLMAP solution, supporting both SfM import and dense point-cloud import/export in order for you to experiment with combining different modules at the various stages of the Multi-View Stereo pipeline.
Enjoy!