一、计算点云之间的距离
Open3D提供了方法,用于计算源点云到目标点云的距离。也就是说,它会计算源点云中每个点到目标点云中最近点的距离。
在下面的示例中,我们使用该方法来计算两个点云之间的差异。请注意,这个方法也可以用来计算两个点云之间的Chamfer距离。
1.1 生成直线点云(有对比点云跳过)
原理
这段代码首先使用函数生成一个从-3到3的包含1500个数的数组。然后,利用函数生成了一个二维网格坐标系,其中和分别表示和坐标轴上的坐标值网格。
接着,创建了一个形状为的零数组,其中和分别是和的形状。然后,通过函数将数组展平为一维数组,并将其赋值给数组的第一列,以表示x坐标轴上的坐标值。将0.1赋值给数组的第二列,以表示y坐标轴上的坐标值。将-0.0025赋值给数组的第三列,以表示z坐标轴上的坐标值。
最终,数组中的每一行都表示了三维空间中一个网格点的坐标。
效果
1.2 计算点云之间距离
原理
- 使用方法计算点云到之间的距离。
- 将计算得到的距离转换为NumPy数组。
- 使用函数找到距离小于0.01的点的索引。
- 使用方法基于索引选择距离小于0.01的点云部分,得到处理后的点云。
- 将处理后的点云渲染为红色。
效果
二、全码测试直接使用
三、相关数据
和点云的更多操作:numpy中的点云操作-CSDN博客
百度网盘数据集:
包括 ,,,,等