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)



浏览 16
点赞
评论
收藏
分享

手机扫一扫分享

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

手机扫一扫分享

编辑 分享
举报