体素降采样使用常规体素网格从输入点云创建均匀的缩减采样点云。它通常用作许多点云处理任务的预处理步骤。该算法分两步运行:
-
点被收集到体素中。
-
把点云分配在三维网格中取平均值
import open3d as o3d import numpy as np print("Load a ply point cloud, print it, and render it") pcd = o3d.io.read_point_cloud("fragment.ply") print(pcd) print(np.asarray(pcd.points)) o3d.visualization.draw_geometries([pcd], zoom=0.3412, front=[0.4257, -0.2125, -0.8795], lookat=[2.6172, 2.0475, 1.532], up=[-0.0694, -0.9768, 0.2024]) #体素降采样 print("Downsample the point cloud with a voxel of 0.05") downpcd = pcd.voxel_down_sample(voxel_size=0.05) #voxel_down_sample 把点云分配在三维的网格中取平均值 o3d.visualization.draw_geometries([downpcd], zoom=0.3412, front=[0.4257, -0.2125, -0.8795], lookat=[2.6172, 2.0475, 1.532], up=[-0.0694, -0.9768, 0.2024])
生成的结果: