c++ - 从点云中切出角度

标签 c++ point-cloud-library point-clouds

我希望从使用 PCL 的激光雷达扫描得到的 270 度点云中,沿轴从原点两侧 45 度切出 90 度截面。到目前为止,我的想法是寻找两个点(在我的例子中是 x 和 z 方向,因为这些轴分别代表水平和深度方向),其比率与 45 度的切线相匹配。

但是我不确定如何以有效的方式解决这个问题;我正在考虑使用 kd 树,但我不确定如何在其中搜索两点/两点的比率。

有谁知道该怎么做,或者有更好的方法吗?

谢谢!

最佳答案

  • 您必须触摸每个点一次以查看它是否存在于切片中。构建 kd-tree 的计算复杂度会比这更高,因此构建它没有意义。

  • 由于点云是轴对齐的,这个问题变得更容易了。您对切线的直觉是正确的。您基本上只需要为每个点检查 x 是否大于 z。对于角度不一定为 45 度的一般情况,您会将点的 xz 坐标归一化,并使用点积角度公式计算与 z 轴的角度。

关于c++ - 从点云中切出角度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27393139/

相关文章:

c++ - 在 C++ 中自动实例化一堆类型

c++ - 更改光标隐藏光标

c++ - VSCode C++ IntelliSense 工作正常,除了 PCL(点云库)

point-cloud-library - 如何可视化 "XYZL"点云?

c++ - 从 C++ 文件写入数据(点云库)

C++ 64 位文件 i/o 陷阱

c++ - 查找总和除以给定数的数组的子数组数

c++ - 在 PCL 中可视化 PointNormal 点云的法线

python - 如何检查点云/3d 对象上的某些坐标?

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