Python - 显示3D点云

Emp*_*yee 10 python 3d ply point-clouds point-cloud-library

我有一个包含人脸3D点云的.PLY文件:我想绘制它并用Python可视化它.

我的.PLY文件只包含顶点和非面.

你能否指出我一个简单的Python库,它将负责绘制3D点云,以便我可以想象它?

重要的是要注意我对绘制MESH不感兴趣,而只是POINT CLOUD.

任何帮助将非常感激.

Emp*_*yee 14

对于想在Python中读取和显示PLY点云简单方法的人,我回答了自己的问题,报告了我发现的最佳解决方案。

打开cmd并输入:

pip install open3d
Run Code Online (Sandbox Code Playgroud)

这将在您的计算机上安装Open3D,然后只需执行以下示例脚本即可读取和分配PLY点云:

import numpy as np
from open3d import *    

def main():
    pcd = read_point_cloud("test.ply") # Read the point cloud
    draw_geometries([pcd]) # Visualize the point cloud     

if __name__ == "__main__":
    main()
Run Code Online (Sandbox Code Playgroud)

  • 一些Linux用户可能需要使用命令pip install open3d-python安装open3d。 (3认同)

vic*_*ser 9

尝试使用pptk(点处理工具包)。该软件包具有一个3-d点云查看器,该查看器直接将3列numpy数组作为输入,并且能够交互式地可视化10到1亿个点。(通过使用八叉树剔除视锥内部的点并将近似的远点组近似为单个点,它减少了每个帧中需要渲染的点数)

安装,

>> pip install pptk
Run Code Online (Sandbox Code Playgroud)

要在Python中可视化100个随机生成的点,

>> import pptk
>> import numpy as np
>> P = np.random.rand(100,3)
>> v = pptk.viewer(P)
Run Code Online (Sandbox Code Playgroud)

pptk查看器的屏幕截图,显示了100个随机点

该文档网站还提供了一个专门用于可视化从.ply文件加载的点云的教程

  • 对 pptk.viewer(P) 的调用永远不会返回:-( (5认同)
  • 我正在pptk文档中进行搜索,但找不到任何实用程序可以让我在同一个可视化器中动态添加和删除PLY。您知道是否可以这样做?我正在尝试创建动态PLY可视化器:给定N个PLY文件,每个文件都必须在可视化器中显示,一个接一个 (2认同)
  • @Employee假设您已将PLY文件加载到名为“ X”的列表中,则将执行以下操作:`for X in x:v = pptk.viewer(x); v.wait(); v.close()`吗?不幸的是,这会在新查看器中打开每个点云。要在同一查看器中加载新的点云,您需要使用viewer.load,当前看来它有问题:( (2认同)
  • 不能安装在 MacOS 10.13.6、Python 3.7.2 上。 (2认同)

Dav*_*sia 6

您可以使用https://github.com/daavoo/pyntcloud来可视化 Jupyter notebook 中的 PLY:

from pyntcloud import PyntCloud

human_face = PyntCloud.from_file("human_face.ply")

human_face.plot()
Run Code Online (Sandbox Code Playgroud)