Skip to content

Can't produce dense model from pycolmap tutorial because of: Could not fuse any points. This is likely caused by incorrect settings - filtering must be enabled for the last call to patch match stereo. #4280

Open

Description

@nkemter

Describe the bug
When using the https://pypi.org/project/pycolmap/ tutorial section (see code at the end) for "Sparse & Dense Reconstruction" it fails with the following error(s):

I20260321 20:24:57.432746 131780097111552 fusion.cc:283] Fusing image [2/2] with index 1
I20260321 20:24:57.797152 131780097111552 fusion.cc:310] in 0.364s (0 points)
W20260321 20:24:57.797279 131780097111552 fusion.cc:331] Could not fuse any points. This is likely caused by incorrect settings - filtering must be enabled for the last call to patch match stereo.
I20260321 20:24:57.797326 131780097111552 fusion.cc:337] Number of fused points: 0
I20260321 20:24:57.797328 131780097111552 timer.cc:90] Elapsed time: 0.016 [minutes]
I20260321 20:24:57.798541 131780097111552 mvs.cc:341] Writing output: "/home/nkmep/data/colmap/original/pycolmap/mvs/dense.ply"
E20260321 20:24:57.798578 131780097111552 reconstruction.cc:1032] Check failed: colmap::ExistsDir(path_val) Directory "/home/nkmep/data/colmap/original/pycolmap/mvs/dense.ply" does not exist.
Traceback (most recent call last):
File "/home/nkmep/pycolmap/reconstruction_pycolmap.py", line 24, in
pycolmap.stereo_fusion(mvs_path / "dense.ply", mvs_path)
ValueError: [reconstruction.cc:1032] Check failed: colmap::ExistsDir(path_val) Directory "/home/nkmep/data/colmap/original/pycolmap/mvs/dense.ply" does not exist.

It creates the following files/folder at pycolmap: 0; 1; cameras.bin; database.db; frames.bin; images.bin; mvs points3D.bin; rigs.bin

Additionally when using pycolmap with more parameters and other functions its always the same/close errors.

On my personal PC I used colmap GUI automatic_reconstructer with the same images (>80 of "hallway" with machinery on one side) yet on the workstation it always fails.

Expected behavior
Produce dense model(s) like fused.ply in the GUI

Environment:

  • OS: Ubuntu 24.04.4 LTS
  • COLMAP Version:
    pycolmap 4.0.2; pycolmap-cuda12; python 3.11.15 (in a conda env)
    NVIDIA-SMI 580.126.09; Driver Version: 580.126.09; CUDA Version: 13.0
    NVIDIA RTX PRO 6000 Blackwell Server Edition
  • Capture Device: Azure Kinect (only used every fifth image from the video)

The code:

import pycolmap
import sys
import pathlib

if not pycolmap.has_cuda:
print("kein cuda da")
sys.exit(1)

image_dir = pathlib.Path(r"/home/nkmep/data/colmap/original/frames_5")
output_path = pathlib.Path(r"/home/nkmep/data/colmap/original/pycolmap")

output_path.mkdir()
mvs_path = output_path / "mvs"
database_path = output_path / "database.db"

pycolmap.extract_features(database_path, image_dir)
pycolmap.match_exhaustive(database_path)
maps = pycolmap.incremental_mapping(database_path, image_dir, output_path)
maps[0].write(output_path)

pycolmap.undistort_images(mvs_path, output_path, image_dir)
pycolmap.patch_match_stereo(mvs_path) # requires compilation with CUDA
pycolmap.stereo_fusion(mvs_path / "dense.ply", mvs_path)

Activity

  1. ahojnnes commented on Mar 21, 2026

    @ahojnnes
    Contributor

    Possibly related to: #4090

  2. TaqiHamoda commented on Apr 11, 2026

    @TaqiHamoda

    It is not. I am using COLMAP v4.0.3 which includes the fix to issue #4090 and I still am facing the same error.

  3. TaqiHamoda commented on Apr 12, 2026

    @TaqiHamoda

    So I was able to figure out how to get around this issue. Turns out the PyCOLMAP API has changed the default output format of stereo fusion to be COLMAP's bin format (#799).

    In order to make the tutorial on PyPI work, you just need to specify the output type of the function:

    pycolmap.stereo_fusion(mvs_path / "dense.ply", mvs_path, output_type="ply")

    Please note that the bin output format DOES NOT save the associated surface normals of the fused point cloud and, as such, cannot be used for Poisson Meshing; I couldn't make it work using the export_PLY method, but maybe I was missing something.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions