Need help with pyntcloud?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

daavoo
935 Stars 178 Forks MIT License 952 Commits 32 Opened issues

Description

pyntcloud is a Python library for working with 3D point clouds.

Services available

!
?

Need anything else?

Contributors list

# 12,039
Python
Tensorf...
pytorch
3d-deep...
756 commits
# 19,125
Lua
tcl
Keras
capsnet
6 commits
# 288,352
Python
Shell
scikit-...
HTML
5 commits
# 223,387
3d-deep...
3d-poin...
Rust
Shell
4 commits
# 376,974
Python
HTML
3d-deep...
3d-poin...
3 commits
# 376,172
Python
HTML
3d-deep...
3d-poin...
3 commits
# 55,784
jupyter
scienti...
Shell
vtk
3 commits
# 96,991
C
multi-v...
MATLAB
blender
3 commits
# 415,512
Python
HTML
3d-deep...
3d-poin...
2 commits
# 408,070
Python
HTML
3d-deep...
3d-poin...
2 commits
# 414,331
Python
HTML
3d-deep...
3d-poin...
2 commits
# 414,913
Python
HTML
3d-deep...
3d-poin...
2 commits
# 213,207
C
Shell
C++
3d-deep...
2 commits
# 470,223
Python
HTML
3d-deep...
3d-poin...
1 commit
# 228,484
xquery
xslt
eta
twilio
1 commit
# 94,120
Qt
OCaml
c-plus-...
tiling-...
1 commit
# 482,662
Python
HTML
3d-deep...
3d-poin...
1 commit
# 482,016
Python
HTML
3d-deep...
3d-poin...
1 commit
# 481,414
Python
HTML
3d-deep...
3d-poin...
1 commit
# 148,232
HTML
3d-deep...
C
jupyter
1 commit

=============================

Making point clouds fun again

.. image:: https://img.shields.io/lgtm/grade/python/g/daavoo/pyntcloud.svg?logo=lgtm&logoWidth=18) :target: https://lgtm.com/projects/g/daavoo/pyntcloud/context:python :alt: LGTM Code quality

.. image:: https://github.com/daavoo/pyntcloud/workflows/pyncloud%20C.I./badge.svg :target: https://github.com/daavoo/pyntcloud/actions :alt: Github Actions C.I.

.. image:: https://readthedocs.org/projects/pyntcloud/badge/?version=latest :target: https://pyntcloud.readthedocs.io/en/latest/?badge=latest :alt: Documentation Status

.. image:: https://anaconda.org/conda-forge/pyntcloud/badges/version.svg
:target: https://anaconda.org/conda-forge/pyntcloud

.. image:: https://mybinder.org/badge.svg :target: https://mybinder.org/v2/gh/daavoo/pyntcloud/master :alt: Launch Binder

.. image:: https://raw.githubusercontent.com/daavoo/pyntcloud/master/docs/images/pyntcloud_logo.png :alt: pyntcloud logo

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

  • Examples_ (We encourage you to try out the examples by launching
    Binder 
    _.)
  • Documentation_

.. _Examples: https://github.com/daavoo/pyntcloud/tree/master/examples .. _Documentation: http://pyntcloud.readthedocs.io/en/latest/

Installation

.. code-block:: bash

conda install pyntcloud -c conda-forge

Or:

.. code-block:: bash

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:

.. code-block:: python

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:
  • Open3D 
    _

.. code-block:: python

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

  • PyVista 
    _

.. code-block:: python

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)

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.