Skip to main content

COLMAP bindings

Project description

Python Bindings for COLMAP

PyCOLMAP exposes to Python most capabilities of the COLMAP Structure-from-Motion (SfM) and Multi-View Stereo (MVS) pipeline.

Installation

Pre-built wheels for Linux, macOS, and Windows can be installed using pip:

pip install pycolmap

The wheels are automatically built and pushed to PyPI at each release. To benefit from GPU acceleration, wheels built for CUDA 12 (only for Linux - for now) are available under the package pycolmap-cuda12.

[Building PyCOLMAP from source - click to expand]
  1. Install COLMAP from source following the official guide.

  2. Build PyCOLMAP:

    • On Linux and macOS:
      python -m pip install .
      
    • On Windows, after installing COLMAP via VCPKG, run in powershell:
      python -m pip install . `
          --cmake.define.CMAKE_TOOLCHAIN_FILE="$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake" `
          --cmake.define.VCPKG_TARGET_TRIPLET="x64-windows"
      

Reconstruction Pipeline

PyCOLMAP provides bindings for multiple steps of the standard reconstruction pipeline:

  • Extracting and matching SIFT features
  • Importing an image folder into a COLMAP database
  • Inferring the camera parameters from the EXIF metadata of an image file
  • Running two-view geometric verification of matches on a COLMAP database
  • Triangulating points into an existing COLMAP model
  • Running incremental reconstruction from a COLMAP database
  • Dense reconstruction with multi-view stereo

Sparse & Dense Reconstruction

Sparse & Dense reconstruction from a folder of images can be performed with:

output_path: pathlib.Path
image_dir: pathlib.Path

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)

# Dense reconstruction
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)

PyCOLMAP can leverage the GPU for feature extraction, matching, and multi-view stereo if COLMAP was compiled with CUDA support. Similarly, PyCOLMAP can run Delaunay Triangulation if COLMAP was compiled with CGAL support. This requires to build the package from source and is not available with the PyPI wheels.

Configuration Options

All of the above steps are easily configurable with python dicts which are recursively merged into their respective defaults, for example:

pycolmap.extract_features(
    database_path, image_dir,
    extraction_options={"sift": {"max_num_features": 512}}
)

# Equivalent to:
ops = pycolmap.FeatureExtractionOptions()
ops.sift.max_num_features = 512
pycolmap.extract_features(database_path, image_dir, extraction_options=ops)

To list available options and their default parameters:

help(pycolmap.SiftExtractionOptions)

For another example of usage, see example.py or hloc/reconstruction.py.

Reconstruction Object

We can load and manipulate an existing COLMAP 3D reconstruction:

import pycolmap

reconstruction = pycolmap.Reconstruction("path/to/reconstruction/dir")
print(reconstruction.summary())

for image_id, image in reconstruction.images.items():
    print(image_id, image)

for point3D_id, point3D in reconstruction.points3D.items():
    print(point3D_id, point3D)

for camera_id, camera in reconstruction.cameras.items():
    print(camera_id, camera)

reconstruction.write("path/to/reconstruction/dir/")

Common Operations

The object API mirrors the COLMAP C++ library. The bindings support many operations, for example:

Projecting a 3D point into an image with arbitrary camera model:

uv = camera.img_from_cam(image.cam_from_world * point3D.xyz)

Aligning two 3D reconstructions by their camera poses:

rec2_from_rec1 = pycolmap.align_reconstructions_via_reprojections(
    reconstruction1, reconstruction2
)
reconstruction1.transform(rec2_from_rec1)
print(rec2_from_rec1.scale, rec2_from_rec1.rotation, rec2_from_rec1.translation)

Exporting reconstructions to text, PLY, or other formats:

reconstruction.write_text("path/to/new/reconstruction/dir/")  # text format
reconstruction.export_PLY("rec.ply")  # PLY format

Estimators

We provide robust RANSAC-based estimators for:

  • Absolute camera pose (single-camera and multi-camera-rig)
  • Essential matrix
  • Fundamental matrix
  • Homography
  • Two-view relative pose for calibrated cameras

All RANSAC and estimation parameters are exposed as objects that behave similarly as Python dataclasses. The RANSAC options are described in colmap/optim/ransac.h and their default values are:

ransac_options = pycolmap.RANSACOptions(
    max_error=4.0,  # For example the reprojection error in pixels
    min_inlier_ratio=0.01,
    confidence=0.9999,
    min_num_trials=1000,
    max_num_trials=100000,
)

Absolute Pose Estimation

To estimate the absolute pose of a query camera given 2D-3D correspondences:

# Parameters:
# - points2D: Nx2 array; pixel coordinates
# - points3D: Nx3 array; world coordinates
# - camera: pycolmap.Camera
# Optional parameters:
# - estimation_options: dict or pycolmap.AbsolutePoseEstimationOptions
# - refinement_options: dict or pycolmap.AbsolutePoseRefinementOptions
answer = pycolmap.estimate_and_refine_absolute_pose(points2D, points3D, camera)
# Returns: dictionary of estimation outputs or None if failure

2D and 3D points are passed as Numpy arrays or lists. The options are defined in estimators/absolute_pose.cc and can be passed as regular (nested) Python dictionaries:

pycolmap.estimate_and_refine_absolute_pose(
    points2D, points3D, camera,
    estimation_options=dict(ransac=dict(max_error=12.0)),
    refinement_options=dict(refine_focal_length=True),
)

Absolute Pose Refinement

# Parameters:
# - cam_from_world: pycolmap.Rigid3d, initial pose
# - points2D: Nx2 array; pixel coordinates
# - points3D: Nx3 array; world coordinates
# - inlier_mask: array of N bool; inlier_mask[i] is true if correspondence i is an inlier
# - camera: pycolmap.Camera
# Optional parameters:
# - refinement_options: dict or pycolmap.AbsolutePoseRefinementOptions
answer = pycolmap.refine_absolute_pose(
    cam_from_world, points2D, points3D, inlier_mask, camera
)
# Returns: dictionary of refinement outputs or None if failure

Essential Matrix Estimation

# Parameters:
# - points1: Nx2 array; 2D pixel coordinates in image 1
# - points2: Nx2 array; 2D pixel coordinates in image 2
# - camera1: pycolmap.Camera of image 1
# - camera2: pycolmap.Camera of image 2
# Optional parameters:
# - options: dict or pycolmap.RANSACOptions (default inlier threshold is 4px)
answer = pycolmap.estimate_essential_matrix(points1, points2, camera1, camera2)
# Returns: dictionary of estimation outputs or None if failure

Fundamental Matrix Estimation

answer = pycolmap.estimate_fundamental_matrix(
    points1,
    points2,
    [options],  # optional dict or pycolmap.RANSACOptions
)

Homography Estimation

answer = pycolmap.estimate_homography_matrix(
    points1,
    points2,
    [options],  # optional dict or pycolmap.RANSACOptions
)

Two-View Geometry Estimation

COLMAP can also estimate a relative pose between two calibrated cameras by estimating both E and H and accounting for the degeneracies of each model.

# Parameters:
# - camera1: pycolmap.Camera of image 1
# - points1: Nx2 array; 2D pixel coordinates in image 1
# - camera2: pycolmap.Camera of image 2
# - points2: Nx2 array; 2D pixel coordinates in image 2
# Optional parameters:
# - matches: Nx2 integer array; correspondences across images
# - options: dict or pycolmap.TwoViewGeometryOptions
answer = pycolmap.estimate_calibrated_two_view_geometry(
    camera1, points1, camera2, points2
)
# Returns: pycolmap.TwoViewGeometry

The TwoViewGeometryOptions control how each model is selected. The output structure contains the geometric model, inlier matches, the relative pose (if options.compute_relative_pose=True), and the type of camera configuration, which is an instance of the enum pycolmap.TwoViewGeometryConfiguration.

Camera Argument

Some estimators expect a COLMAP camera object, which can be created as follows:

camera = pycolmap.Camera(
    model=camera_model_name_or_id,
    width=width,
    height=height,
    params=params,
)

The different camera models and their extra parameters are defined in colmap/src/colmap/sensor/models.h. For example for a pinhole camera:

camera = pycolmap.Camera(
    model='SIMPLE_PINHOLE',
    width=width,
    height=height,
    params=[focal_length, cx, cy],
)

Alternatively, we can also pass a camera dictionary:

camera_dict = {
    'model': COLMAP_CAMERA_MODEL_NAME_OR_ID,
    'width': IMAGE_WIDTH,
    'height': IMAGE_HEIGHT,
    'params': EXTRA_CAMERA_PARAMETERS_LIST
}

SIFT Feature Extraction

import numpy as np
import pycolmap
from PIL import Image, ImageOps

# Input should be grayscale image with range [0, 1].
img = Image.open('image.jpg').convert('RGB')
img = ImageOps.grayscale(img)
img = np.array(img).astype(np.float) / 255.

# Optional parameters:
# - options: dict or pycolmap.SiftExtractionOptions
# - device: default pycolmap.Device.auto uses the GPU if available
sift = pycolmap.Sift()

# Parameters:
# - image: HxW float array
keypoints, descriptors = sift.extract(img)
# Returns:
# - keypoints: Nx4 array; format: x (j), y (i), scale, orientation
# - descriptors: Nx128 array; L2-normalized descriptors

Bitmap

PyCOLMAP provides bindings for the Bitmap class to work with images and convert them to/from NumPy arrays:

import numpy as np
import pycolmap

# Read a bitmap from file
bitmap = pycolmap.Bitmap.read("image.jpg", as_rgb=True)
print(f"Size: {bitmap.width}x{bitmap.height}, Channels: {bitmap.channels}")

# Convert to NumPy array
array = bitmap.to_array()  # Shape: (H, W, 3) for RGB or (H, W) for grayscale

# Create bitmap from NumPy array
array = np.random.randint(0, 255, (480, 640, 3), dtype=np.uint8)
bitmap = pycolmap.Bitmap.from_array(array)

# Write bitmap to file
bitmap.write("output.jpg")

# Rescale bitmap
bitmap.rescale(new_width=320, new_height=240)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pycolmap-3.14.0.dev0-cp314-cp314-win_amd64.whl (24.1 MB view details)

Uploaded CPython 3.14Windows x86-64

pycolmap-3.14.0.dev0-cp314-cp314-manylinux_2_28_x86_64.whl (27.1 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

pycolmap-3.14.0.dev0-cp314-cp314-macosx_14_0_arm64.whl (19.9 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

pycolmap-3.14.0.dev0-cp313-cp313-win_amd64.whl (23.4 MB view details)

Uploaded CPython 3.13Windows x86-64

pycolmap-3.14.0.dev0-cp313-cp313-manylinux_2_28_x86_64.whl (27.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

pycolmap-3.14.0.dev0-cp313-cp313-macosx_14_0_arm64.whl (19.9 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

pycolmap-3.14.0.dev0-cp312-cp312-win_amd64.whl (23.4 MB view details)

Uploaded CPython 3.12Windows x86-64

pycolmap-3.14.0.dev0-cp312-cp312-manylinux_2_28_x86_64.whl (27.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

pycolmap-3.14.0.dev0-cp312-cp312-macosx_14_0_arm64.whl (19.9 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

pycolmap-3.14.0.dev0-cp311-cp311-win_amd64.whl (23.4 MB view details)

Uploaded CPython 3.11Windows x86-64

pycolmap-3.14.0.dev0-cp311-cp311-manylinux_2_28_x86_64.whl (27.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

pycolmap-3.14.0.dev0-cp311-cp311-macosx_14_0_arm64.whl (19.9 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

pycolmap-3.14.0.dev0-cp310-cp310-win_amd64.whl (23.4 MB view details)

Uploaded CPython 3.10Windows x86-64

pycolmap-3.14.0.dev0-cp310-cp310-manylinux_2_28_x86_64.whl (27.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

pycolmap-3.14.0.dev0-cp310-cp310-macosx_14_0_arm64.whl (19.8 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

File details

Details for the file pycolmap-3.14.0.dev0-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for pycolmap-3.14.0.dev0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 29953b1c761af35e91deeeae45bbe684ff20cbae9d4694bf22489d1aa725810d
MD5 124b068566809a5ad83ebdc444fc1967
BLAKE2b-256 2172551597f3581d3a2e73015b2b806d35907d8dcc22dbc8ad190e8942fe90c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycolmap-3.14.0.dev0-cp314-cp314-win_amd64.whl:

Publisher: build-pycolmap.yml on colmap/colmap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycolmap-3.14.0.dev0-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pycolmap-3.14.0.dev0-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 440996c74fcc28b1afb74648a5a427423daf3c1568cf2cb0457b75b8d336f960
MD5 7ece28d6eb97809efa0e3cace3100c16
BLAKE2b-256 1c5044db4c9b138af803ed650fff17e628e11023349800c32878787f2e1c3aa5

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycolmap-3.14.0.dev0-cp314-cp314-manylinux_2_28_x86_64.whl:

Publisher: build-pycolmap.yml on colmap/colmap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycolmap-3.14.0.dev0-cp314-cp314-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pycolmap-3.14.0.dev0-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 7130c3a874c390144f06399f8b31771e579231367e078f126e4d430a1e170621
MD5 df6e293c633f567f30c1b050c9d9653c
BLAKE2b-256 728a3ad275595c1095ee8fc4cb52c1d5c9a63cac3351f4468dbd2d1ab275b85b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycolmap-3.14.0.dev0-cp314-cp314-macosx_14_0_arm64.whl:

Publisher: build-pycolmap.yml on colmap/colmap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycolmap-3.14.0.dev0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for pycolmap-3.14.0.dev0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 221defcc3aaf951ade79ea875ec2aa6704908d9a0ad815730ac4c7327efd72cb
MD5 f1bfe6606aba6e9c2ed9ef3050df79d5
BLAKE2b-256 95a2850a88ed6979ac59ca0b96303fc7fffeb0c7f1311d12d501151a9620ffd8

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycolmap-3.14.0.dev0-cp313-cp313-win_amd64.whl:

Publisher: build-pycolmap.yml on colmap/colmap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycolmap-3.14.0.dev0-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pycolmap-3.14.0.dev0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8f94f4fe0fba01721141c8597787136430df8205ae42ff03ea3716b221e6b34f
MD5 20cbb24d220b33837133efffb103976b
BLAKE2b-256 31661a5fdb2d63c8d9851fcd9722df218e81a9fb9f0b3218737c2d7b1facbfe4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycolmap-3.14.0.dev0-cp313-cp313-manylinux_2_28_x86_64.whl:

Publisher: build-pycolmap.yml on colmap/colmap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycolmap-3.14.0.dev0-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pycolmap-3.14.0.dev0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 d351104f4c99573a2afbab1acf2e15c10057a5f6e400d7cf1a28f25813926d95
MD5 b1a46ad104159c09407259a298e1e7ff
BLAKE2b-256 122756116014263661d5285759b0759f5a69bc8948bcb1199851e3d0e52c31e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycolmap-3.14.0.dev0-cp313-cp313-macosx_14_0_arm64.whl:

Publisher: build-pycolmap.yml on colmap/colmap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycolmap-3.14.0.dev0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for pycolmap-3.14.0.dev0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 1f2d4cc0c9b25b0ddfed9bfbb52aad63417fa3cd475ff9789f3122124158cb40
MD5 ef9d95b1ed03d3ab20f055a66ce5d44e
BLAKE2b-256 b5ba5a5a488129a83794a247147777f010597029b371a051b165f8f92f6a3208

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycolmap-3.14.0.dev0-cp312-cp312-win_amd64.whl:

Publisher: build-pycolmap.yml on colmap/colmap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycolmap-3.14.0.dev0-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pycolmap-3.14.0.dev0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a9493ee2af00ce3a11be4455a81feba02a3d573702d74d74d228c33324d4335e
MD5 ad6a5d48b397186d965ffe6dab2ca75b
BLAKE2b-256 666e45762c1166083a3ea7fe9ae324700a0e46109a86cff6f89de359f5ff0047

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycolmap-3.14.0.dev0-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: build-pycolmap.yml on colmap/colmap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycolmap-3.14.0.dev0-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pycolmap-3.14.0.dev0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 f303776bc75051e60b60e7d0013643a275a7c5eca9169b348811d7c3061dacea
MD5 9cf53bbec5822aee67ef0d2f3bb8625b
BLAKE2b-256 d819bcc387f8fe03e4b4449aaf4c04d176b433cd3fec92978cd5e6b5f0768e2c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycolmap-3.14.0.dev0-cp312-cp312-macosx_14_0_arm64.whl:

Publisher: build-pycolmap.yml on colmap/colmap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycolmap-3.14.0.dev0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for pycolmap-3.14.0.dev0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 7d7b5aad994316849b9c086d71d64229b4b96be8dcb9b7c5ced9fe58398a33e1
MD5 25ca00c18e9379954ec78c358df4bafa
BLAKE2b-256 7ec088fdf9ee5b2c8e1a5cc7e5b46a6ec40d7d47f440e0662ebc95a2e2604005

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycolmap-3.14.0.dev0-cp311-cp311-win_amd64.whl:

Publisher: build-pycolmap.yml on colmap/colmap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycolmap-3.14.0.dev0-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pycolmap-3.14.0.dev0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 70964e645c5986586d2a63cf06c6fda883d238887f82ca75480a5031cd9a83b4
MD5 ffb1bfd0314693481bf041cbf6f98767
BLAKE2b-256 6e2f8fbd9188b8823e54a1d8d11cd5bc3f44bbf2dfab07dd64f1109728197810

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycolmap-3.14.0.dev0-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: build-pycolmap.yml on colmap/colmap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycolmap-3.14.0.dev0-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pycolmap-3.14.0.dev0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 591c88693975d707a21a0c212b636bfef1221225fb65856708cb294a571c35b5
MD5 fdddf9ea7c7fd45f4a64de3af2acec58
BLAKE2b-256 720f3e1a5764bf944d6b118dbddc5f1caea1a0574aa45d944d49ff316aadc6a0

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycolmap-3.14.0.dev0-cp311-cp311-macosx_14_0_arm64.whl:

Publisher: build-pycolmap.yml on colmap/colmap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycolmap-3.14.0.dev0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for pycolmap-3.14.0.dev0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 648827738cee9dac2deccc3ad64dad1221745e6d02dea9d6fcb309f372c5d80c
MD5 8fef44fd69602a5dfae028a21e970ca0
BLAKE2b-256 9f48e15c4dd645374310de35d9841fac6fc38a0c0f6e4601ab293757f336ab3d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycolmap-3.14.0.dev0-cp310-cp310-win_amd64.whl:

Publisher: build-pycolmap.yml on colmap/colmap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycolmap-3.14.0.dev0-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pycolmap-3.14.0.dev0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8ecc5c8cc22b6cf939f7242f7ee39b7288345f0cbac61add1065743c217566c6
MD5 2ef7dc58d7e046b20371a233452ff7ee
BLAKE2b-256 ef8ff7fa3bb468cac2e016bfcb79b203ac9654ab7bc38ea09c7e55fdab4ad3b7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycolmap-3.14.0.dev0-cp310-cp310-manylinux_2_28_x86_64.whl:

Publisher: build-pycolmap.yml on colmap/colmap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycolmap-3.14.0.dev0-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pycolmap-3.14.0.dev0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 cbc6827443507788b161e27612bf5a262f3e2fe1c0d34551ddabaa363419f069
MD5 f20a6084f74b987d362da4fb4c7acba1
BLAKE2b-256 1034e22ceb9d2d2a737cb8b4b90efefb504d2ac04a10f83cfef89767352d03a3

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycolmap-3.14.0.dev0-cp310-cp310-macosx_14_0_arm64.whl:

Publisher: build-pycolmap.yml on colmap/colmap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page