我正在尝试找到二维点云的最小边界框,其中只有一部分点云可见。
给定具有粗糙矩形形状的点云,剪裁以便只能看到一个角:
点云被剪裁在绿色边框处。我知道图像中边框的位置,我知道在这个边框内总会有一个矩形的角可见。我也知道矩形的大小。
现在我想找到包含这个形状的所有点的最小边界框,即使那些在屏幕上看不到的也是如此。由于我知道盒子的尺寸,找到可见的两面就足以确定其他两面了。
(实际上有两种可能的解决方案,因为可以交换形状的宽度和高度,但暂时忽略它)
我想找到红色的盒子。
我不需要精确解决方案,也不需要快速解决方案。我目前的尝试使用一种简单的强力算法,以1°的步长旋转点云,找到轴对齐的边界框。
我只需要一个标准,告诉我哪种旋转对于这种情况最好。 Minimal-Area是最小边界框的通常标准,但显然只有在所有点都可见时才有效。
可能有一些涉及凸壳的最优算法,但我宁愿让解决方案尽可能简单
答案 0 :(得分:0)
您真正需要的是红色和绿色矩形之间交叉角的位置。假设这些点是边界的合适近似值,这应该是一个相当可靠的方法来获得这些:
A,B,C& D是红色矩形的角落和绿色和红色矩形之间的交叉点的一些组合。要弄清楚哪些是哪个,只需检查绿色矩形边框的一些小容差范围内。有了它,你就可以获得足够的信息来轻松计算出红色矩形的位置。