1

我正在尝试找出 3D 框内的点云的 3D 点。我可以通过以下逻辑获得 3D 框内的点,只有当 3d 框与轴对齐时,但在旋转 3d 框时,逻辑失败。

(这只适用于盒子的边缘与坐标轴对齐的情况。)

如果顶点是(x1,y1,z1),(x2,y1,z1),(x1,y2,z1),⋯,(x2,y2,z2),那么任何点(x,y,z)都在里面盒子当且仅当

x1<x<x2
and
y1<y<y2
and
z1<z<z2

换句话说,点的坐标在顶点的坐标之间。

现在我从https://math.stackexchange.com/questions/2909812/points-inside-a-3d-rectangle?noredirect=1&lq=1得到了算法,但无法弄清楚如何获取“位置向量”。

有什么建议么!!

另一个问题:有没有什么快速的方法可以找出 3D 盒子内的所有点,而不是遍历整个点云。

任何建议表示赞赏!

4

2 回答 2

2

由于您point-cloud-library在问题的标签中列出,pcl::CropBox可能是您正在寻找的。您基本上提供了两个角点,一个平移和一个旋转,之后,您可以提取框内的所有点。

于 2018-12-20T20:13:49.623 回答
0

I'll use the notation $\vec{OA}=\vec A-\vec O$ for a difference of position vectors. $O$ is one vertex, and $A,B,C$ are its three adjacent vertices.

O,A,B,C中有长方体的顶点。作为一个平行六面体,立方体可以由三个相邻的面定义,总共是四个点。

于 2018-12-20T08:36:05.150 回答