python - 计算点相对于引用点云的距离

标签 python point-cloud-library point-clouds

可以使用最近邻距离简单地计算点云到点云的距离。问题是最近的邻居不一定是由云表示的表面上的实际最近点。特别是在我们的例子中:引用云的密度很低。在这种情况下,使用了插值技术(伪代码):

from scipy import interpolate
import numpy as np

ref_point_cloud = np.load("ref_point_cloud.npy").item() # Grid
f = interpolate.interp2d(ref_point_cloud['x'], ref_point_cloud['y'], ref_point_cloud['z'], kind='linear', copy=False, bounds_error=True)

#### Read dense point cloud (point_cloud_dense) code here ####

for point in point_cloud_dense:
    distance = abs(f(point(x), point(y)) - ref_point_cloud['z'])
插值似乎是一种耗时的技术,但它确实有效。是否有更省时的技术来计算点相对于引用点云的距离?
最终目标:使用仅包含地面点的引用点云,从密集的 MLS 点云中移除地面点。距离阈值将决定一个点是否属于地面。
引用:
https://www.cloudcompare.org/doc/wiki/index.php?title=Cloud-to-Cloud_Distance
https://pointclouds.org/documentation/tutorials/kdtree_search.html
enter image description here

最佳答案

你可以得到 k 个最近的邻居,在它们上面安装一个平面并计算点到平面的距离。

关于python - 计算点相对于引用点云的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67167940/

相关文章:

python - tensorflow 中具有权重衰减参数的 SGD

python - 如何在 VS Code 中调试导入的 Jupyter 笔记本?

c++ - 我如何管理内存?点云库

PointCloud 库中的 C++ : No matching function to call to

c++ - 复制 PCL 点云,同时保留组织或 Ransac + 曲面法线计算

3d - 用于样条拟合的 RANSAC

python - 尝试在 Python 3.4.3 上通过 pip 安装 PyGame 时出现 HTTP 错误 400

python - 如何使用 anaconda3 在 Visual Studio Code 中为 python 启用智能感知?

algorithm - 有效查找点云之间的距离

matlab - 如何在 Matlab 中更新散点图(循环)