我有一个边界框列表,我想知道如何计算哪些是多余的/重复的。
原因是我有200万这些我发送到API并且我想知道哪些与其他重叠因此我可以减少它们因此每个盒子只覆盖一个独特的土地区域,所以没有两个边界框覆盖同一块地理空间。
我如何计算它,以便这些边界框各自覆盖自己独特的地理空间?
我用C ++ btw编写这个程序。
答案 0 :(得分:1)
我认为这个任务比你想象的要复杂得多。
您必须拆分现有的框,直到不存在重叠,然后删除完全包含在另一个框中的框。
相反,为您提供解决方案,我建议您检查一下是否可以忍受:
1)取出另一个盒子中完全包含的盒子 2)保持(部分)重叠的盒子。
对于2百万,您需要一个空间索引(QuadTree),以获取一个框附近所有框的列表。
如果你必须避免任何重叠,那么你必须继续思考结果应该是什么? A)重叠矩形的联合,它不再是一个矩形,而是一个多边形 或者B)结果应该是矩形。
答案 1 :(得分:0)
你可以检查一个方框顶点的X%是否在另一个方框内,以查明它是否重叠,但我认为这不是最佳解决方案。