open3d读取bin文件x,y,z,r,g,b,intensity转为pcd?

新手上路,请多包涵

open3d读取bin文件x,y,z,r,g,b,intensity转为pcd发现只能存储x,y,z,rgb无法同时存储颜色跟强度信息,如何处理?
在open3d中发现只有points,colors两个字段可以存储,请问如何同时存储颜色跟强度信息,如何自定义添加字段?

阅读 1.9k
1 个回答
import open3d as o3d

# 读取点云数据
pcd = o3d.t.io.read_point_cloud("name.pcd")
pcd_intensity = pcd.point["intensity"]  # 访问强度
pcd_points = pcd.point["positions"]  # 访问位置

# 转换为NumPy数组(如果需要)
pcd_intensity = pcd_intensity[:, :].numpy()
pcd_points = pcd_points[:, :].numpy()

# 生成带有强度信息的新点云
device = o3d.core.Device("CPU:0")
dtype = o3d.core.float32
pcd = o3d.t.geometry.PointCloud(device)
pcd.point["positions"] = o3d.core.Tensor(pcd_points, dtype, device)
pcd.point["intensity"] = o3d.core.Tensor(pcd_intensity, dtype, device)

# 将新点云写入PCD文件
o3d.t.io.write_point_cloud("name1.pcd", pcd, write_ascii=True)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进