Skip to content

Releases: cdcseacave/openMVS

ROI estimation and new Viewer

20 Jan 06:29
5811720

Choose a tag to compare

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

07 Jan 03:29
ce03889

Choose a tag to compare

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

04 Jul 21:12
0d94605

Choose a tag to compare

  • 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

28 Nov 10:37
f62b38d

Choose a tag to compare

  • 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

17 Apr 09:32
3b2bb84

Choose a tag to compare

Most important changes:

  • fix various bugs and fine-tune Patch-Match CUDA
  • update MvgMvsPipeline.py to 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

16 Dec 16:38
35facc5

Choose a tag to compare

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

02 Jul 11:21

Choose a tag to compare

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

17 Feb 11:40
304bb3c

Choose a tag to compare

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)

05 Jan 15:41
2289a04

Choose a tag to compare

Main changes:

  • open depth-map DMAP file format for easy utilization outside OpenMVS (see ExportDepthDataRaw() and ImportDepthDataRaw())
  • expose some depth-map functions in SceneDensify.h
  • add global ID support to image structure to allow processing large scenes by splitting them into multiple sub-scenes to be processed individually

v1.0

26 May 12:40
eacdde9

Choose a tag to compare

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:

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!