pyntcloud处理 3D 点云的 Python 库

联合创作 · 2023-09-26 06:09

pyntcloud 是一个 Python 3 库,用于利用 Python 科学堆栈的强大功能处理 3D 点云。

安装

conda install pyntcloud -c conda-forge

或者:

pip install pyntcloud

快速概览

开发者可以从其核心类 PyntCloud 访问 pyntcloud 的大部分功能。

使用 PyntCloud,您可以用最少的代码行执行复杂的 3D 处理操作。例如:

  • 从磁盘加载 PLY 点云
  • 通过将 RGB 转换为 HSV,添加 3 个新的标量字段
  • 从点云构建 voxels 网格
  • 构建一个新的点云,只保留与每个占用 voxels 中心最近的点
  • 以 numpy 的 NPZ 格式保存新的点云

使用以下简洁的代码:

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")

与其他库的集成

pyntcloud 提供与其他 3D 处理库的无缝集成。

开发者可以使用 from_instance / to_instance 方法从/到许多 3D 处理库创建/转换 PyntCloud 实例:

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)
浏览 2
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报