Python-显示3D点云

时间:2018-06-21 09:58:16

标签: python 3d point-cloud-library point-clouds ply

我有一个.PLY文件,其中包含3D点云:我想绘制它并用Python对其进行可视化。 .PLY文件仅包含顶点,而不包含面。

您能告诉我一个简单的Python库,该库将负责绘制3D点云吗?

重要的一点是,我对绘制网格不感兴趣,而对点云不感兴趣。

4 个答案:

答案 0 :(得分:6)

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

打开cmd并输入:

pip install open3d

这将在您的计算机上安装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()

答案 1 :(得分:6)

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

要安装,

>> pip install pptk

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

>> import pptk
>> import numpy as np
>> P = np.random.rand(100,3)
>> v = pptk.viewer(P)

screenshot of pptk viewer visualizing 100 random points

文档网站上还有一个tutorial,专门用于可视化从.ply文件加载的点云。

答案 2 :(得分:1)

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

from pyntcloud import PyntCloud

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

human_face.plot()

答案 3 :(得分:0)

您可以使用vtk,它具有python绑定到 just 显示。 Code snippet

如果要使用numpy等处理数据,我建议执行以下步骤:

  1. 将.ply转换为.pcd(ascii):pcl_ply2pcd input.ply output.pcd -format 0
  2. 使用 pypcd (这是一个用于读取和写入.pcd文件的python模块)
  3. Pypcd返回一个 numpy ndarray,可以与 matplotlib
  4. 完美地使用

如果您想留在pcl世界中,可以使用python-pcl模块,其中包含与库的绑定。

如果其中之一符合您的需求,我可以进一步详细说明。