目录
一、背景
ShapeNet数据集的txt格式为xyzrgb+label,为了可视化点云,将txt文件保存为pcd或ply
二、实现代码
import open3d as o3d
import numpy as np
txt_path = '1e664c94e932ece9883158c0007ed9ba.txt'
# 通过numpy读取txt点云
pcd = np.genfromtxt(txt_path, delimiter=" ")
pcd_vector = o3d.geometry.PointCloud()
# 加载点坐标
# txt点云前三个数值一般对应x、y、z坐标,可以通过open3d.geometry.PointCloud().points加载
# 如果有法线或颜色,那么可以分别通过open3d.geometry.PointCloud().normals或open3d.geometry.PointCloud().colors加载
pcd_vector.points = o3d.utility.Vector3dVector(pcd[:, :3])
pcd_vector.colors = o3d.utility.Vector3dVector(pcd[:, 3:6])
o3d.visualization.draw_geometries([pcd_vector])
o3d.io.write_point_cloud('motorbike.ply',pcd_vector)