如何合并 30 个点云?

问题描述 投票:0回答:1

我有 30 个按时间顺序拍摄的点云,我需要将它们合并为一个点云,希望获得更完整的点云。

我正在使用 python 和 open3D。

现在我创建了一个函数,首先在两个点云之间执行全局配准,然后运行彩色ICP(我的点云也有颜色信息)。

我尝试将第一个点云与第二个点云合并,然后将此结果与第三个点云合并,依此类推。 或者,我还将第一个与第二个、第三个和第四个合并,...,然后再次合并这些对,直到获得最终的点云。

结果非常相似。还有其他办法吗?

python 3d point-clouds open3d
1个回答
0
投票

如果您正在寻找更快的方法,您可能需要考虑使用 Open3D 中的 voxel_down_sample 函数。此函数通过创建体素网格并获取每个体素的质心来减少点云中的点数。这可以显着减小点云的大小并使合并过程更快。

将 open3d 导入为 o3d

pcd1 = o3d.io.read_point_cloud("cloud1.pcd") pcd2 = o3d.io.read_point_cloud("cloud2.pcd")

pcd1_down = pcd1.voxel_down_sample(voxel_size=0.05) pcd2_down = pcd2.voxel_down_sample(voxel_size=0.05)

merged_pcd = pcd1_down + pcd2_down

o3d.io.write_point_cloud(“merged_cloud.pcd”,merged_pcd)

© www.soinside.com 2019 - 2024. All rights reserved.