Skip to main content

Python library for working with 3D point clouds.

Project description

LGTM Code quality Github Actions C.I. Documentation Status https://anaconda.org/conda-forge/pyntcloud/badges/version.svg Launch Binder pyntcloud logo

pyntcloud is a Python 3 library for working with 3D point clouds leveraging the power of the Python scientific stack.

Installation

conda install pyntcloud -c conda-forge

Or:

pip install pyntcloud

Quick Overview

You can access most of pyntcloud’s functionality from its core class: PyntCloud.

With PyntCloud you can perform complex 3D processing operations with minimum lines of code. For example you can:

  • Load a PLY point cloud from disk.

  • Add 3 new scalar fields by converting RGB to HSV.

  • Build a grid of voxels from the point cloud.

  • Build a new point cloud keeping only the nearest point to each occupied voxel center.

  • Save the new point cloud in numpy’s NPZ format.

With the following concise code:

from pyntcloud import PyntCloud

cloud = PyntCloud.from_file("some_file.ply")

cloud.add_scalar_field("hsv")

voxelgrid_id = cloud.add_structure("voxelgrid", n_x=32, n_y=32, n_z=32)

new_cloud = cloud.get_sample("voxelgrid_nearest", voxelgrid_id=voxelgrid_id, as_PyntCloud=True)

new_cloud.to_file("out_file.npz")

Integration with other libraries

pyntcloud offers seamless integration with other 3D processing libraries.

You can create / convert PyntCloud instances from / to many 3D processing libraries using the from_instance / to_instance methods:

import open3d as o3d
from pyntcloud import PyntCloud

# FROM Open3D
original_triangle_mesh = o3d.io.read_triangle_mesh("diamond.ply")
cloud = PyntCloud.from_instance("open3d", original_triangle_mesh)

# TO Open3D
cloud = PyntCloud.from_file("diamond.ply")
converted_triangle_mesh = cloud.to_instance("open3d", mesh=True)  # mesh=True by default
import pyvista as pv
from pyntcloud import PyntCloud

# FROM PyVista
original_point_cloud = pv.read("diamond.ply")
cloud = PyntCloud.from_instance("pyvista", original_point_cloud)

# TO PyVista
cloud = PyntCloud.from_file("diamond.ply")
converted_triangle_mesh = cloud.to_instance("pyvista", mesh=True)

Project details


Download files

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

Source Distribution

pyntcloud-0.1.4.tar.gz (1.8 MB view details)

Uploaded Source

Built Distribution

pyntcloud-0.1.4-py3-none-any.whl (346.2 kB view details)

Uploaded Python 3

File details

Details for the file pyntcloud-0.1.4.tar.gz.

File metadata

  • Download URL: pyntcloud-0.1.4.tar.gz
  • Upload date:
  • Size: 1.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.56.2 CPython/3.7.9

File hashes

Hashes for pyntcloud-0.1.4.tar.gz
Algorithm Hash digest
SHA256 f44b1c6a6cc33c45674f9d8a01f86aac270cde6079e6e169b0da6de789bec652
MD5 2505b31b9f6e9dcd9ccb39437ec9c8c0
BLAKE2b-256 2e14b6331a1b0ac7739cbac1d2a4eb0d39edd2386dec9c94e9fa3228fccb00d7

See more details on using hashes here.

File details

Details for the file pyntcloud-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: pyntcloud-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 346.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.56.2 CPython/3.7.9

File hashes

Hashes for pyntcloud-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 6102ba766989a23e9f2d84d14585713d8be11bfb5fca99f0e27d31f32aadf25d
MD5 ca366961cd8026889066d2c7759c60fc
BLAKE2b-256 792c112d0cc31275f1a98857b1c5da3e4aa994c3f9d3e6a62b7a8f84b126fc31

See more details on using hashes here.

Supported by

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