如何导出点云?

时间:2018-04-03 18:52:18

标签: python point-clouds 3d-modelling

所以我正在研发3D扫描仪,并制作了一些3D重建代码 这是code 但是因为我更多的是菜鸟,我不确定如何导出点云,然后使用它来建立一个三维建模程序,如搅拌机。

3 个答案:

答案 0 :(得分:2)

我无法确定没有3D重建结果的示例,但根据您链接的代码,我认为您可以生成一个.ply文件,准备导入Blender,如下所示:

使用https://github.com/daavoo/pyntcloud

import numpy as np
import pandas as pd

from pyntcloud import PyntCloud

cloud = PyntCloud(pd.DataFrame(
    # same arguments that you are passing to visualize_pcl
    data=np.hstack((points, colors)),
    columns=["x", "y", "z", "red", "green", "blue"]))

cloud.to_file("output.ply")

答案 1 :(得分:1)

您可以将PLY formatOBJ format导入Blender两个支持ASCII文件。用适当的标题和&写出适当的ASCII文件。只要您的格式正确,它们应该可以被支持PLY&的程序读取。 OBJ。

或者,您可以使用Python's CSV library将数据另存为CSV文件,并使用Blenders Python API以CSV格式导入Blender。

答案 2 :(得分:0)

正如David de la Iglesia所说,您可以使用https://github.com/daavoo/pyntcloud软件包。但是他的方式使颜色无效,因为它是浮点格式的,这是因为将其与坐标叠加在一起。

d = {'x': points[:,0],'y': points[:,1],'z': points[:,2], 
             'red' : colors[:,0], 'green' : colors[:,1], 'blue' : colors[:,2]}
        
cloud = PyntCloud(pd.DataFrame(data=d))
cloud.to_file("output.ply")

矩阵“点”是浮点格式,而“颜色”是uint8