该函数用于从点云中创建一个稀疏的体素网格对象,并且只在给定的范围内创建体素。
voxelgrid = open3d.geometry.VoxelGrid.create_from_point_cloud_within_bounds(
point_cloud, voxel_size, bound_min, bound_max)
point_cloud
: open3d.geometry.PointCloud 对象,需要从中创建体素网格的点云。
voxel_size
: float,每个体素在空间中的尺寸大小。
bound_min
: numpy.ndarray(shape=(3,), dtype=float),表示体素网格边界的最小坐标。
bound_max
: numpy.ndarray(shape=(3,), dtype=float),表示体素网格边界的最大坐标。
返回一个 open3d.geometry.VoxelGrid 对象。
import open3d as o3d
import numpy as np
pcd = o3d.io.read_point_cloud("cloud.pcd")
bound_min = np.array([-10, -10, -10])
bound_max = np.array([10, 10, 10])
voxel_size = 1
voxelgrid = o3d.geometry.VoxelGrid.create_from_point_cloud_within_bounds(pcd, voxel_size, bound_min, bound_max)
print(voxelgrid)
输出:
geometry::VoxelGrid with 359 voxels.
Access its attributes via the "voxels_" attribute.
以上代码块使用给定的点云,体素大小和边界限制创建了一个稀疏的体素网格对象。