如何导出点云?
How to export a point cloud?
所以我正在研究 3D 扫描仪,并制作了一些 3D 重建代码。
这是 code.
但是因为我比较菜鸟,我不确定如何导出点云,然后将其用于 3d 建模程序,如 blender。
您可以将 PLY format and OBJ format 导入到均支持 ASCII 文件的 Blender。使用适当的 headers 写出适当的 ASCII 文件,只要格式正确,支持 PLY 和 OBJ 的程序就应该可以读取它们。
或者,您可以使用 Python's CSV library 将数据保存为 CSV 文件,然后使用 Blenders Python API.
将数据作为 CSV 文件导入 Blender
如果没有 3D 重建结果的示例,我无法确定,但根据您链接到的代码,我认为您可以生成一个准备好导入到 Blender 的 .ply 文件,如下所示:
使用 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")
正如 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")
矩阵“points”为 float 格式,“colors”为 uint8
所以我正在研究 3D 扫描仪,并制作了一些 3D 重建代码。
这是 code.
但是因为我比较菜鸟,我不确定如何导出点云,然后将其用于 3d 建模程序,如 blender。
您可以将 PLY format and OBJ format 导入到均支持 ASCII 文件的 Blender。使用适当的 headers 写出适当的 ASCII 文件,只要格式正确,支持 PLY 和 OBJ 的程序就应该可以读取它们。
或者,您可以使用 Python's CSV library 将数据保存为 CSV 文件,然后使用 Blenders Python API.
将数据作为 CSV 文件导入 Blender如果没有 3D 重建结果的示例,我无法确定,但根据您链接到的代码,我认为您可以生成一个准备好导入到 Blender 的 .ply 文件,如下所示:
使用 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")
正如 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")
矩阵“points”为 float 格式,“colors”为 uint8