考虑到由(白色)矩形限制的2D空间和占据该空间的一组(黑色)矩形,我正在寻找以某种方式索引空(白色)空间的方法。为此,我想创建一组(白色)矩形,这样对于空间中的任何给定点(不属于任何“黑色”矩形的点),最终的空矩形存在于该结果的白色矩形集中。
由于
答案 0 :(得分:1)
您是在网格(即图像)中还是在连续的2D空间中?我的答案是针对每个点都有整数坐标的情况。在另一种情况下,您可以通过我的答案获得近似值。
如果我理解你的问题,你需要做两件事:
为了计算列表,您可以使用算法O(N),其中N是黑白图像中的像素数。您可以在http://www.ulg.ac.be/telecom/rectangles找到一篇描述这种算法的论文,其中包含一些(未经优化的)C ++源代码。在实践中,它非常快。
为了计算pin的2D数组,你需要遍历所有最大的空矩形的列表,并且对于每一个,需要更新所有包含像素的指针(如果需要)。由于最多有N个最大的空矩形(对于prrof,请参阅http://www.ulg.ac.be/telecom/rectangles上链接的文章),并且每个矩形包括最多N个像素,此步骤在最坏情况下为O(N ^ 2)。我不知道是否有可能降低这一步骤的成本。
答案 1 :(得分:0)
http://rd.springer.com/chapter/10.1007%2F3-540-53487-3_50 本文介绍了解决我问题的有效方法。
此致 戴姆詹·