首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用python检测和裁剪重叠矩形的高效库

使用python检测和裁剪重叠矩形的高效库
EN

Stack Overflow用户
提问于 2015-06-18 00:01:08
回答 1查看 610关注 0票数 2

我有一组相互重叠的矩形。我需要检测一组矩形中是否存在重叠。如果存在重叠,则需要更新坐标,以便矩形集不再重叠。我想知道是否有适合这项任务的现有python库。

此操作将应用于million+矩形集,因此算法效率和利用图形处理器也将是重要的。

EN

回答 1

Stack Overflow用户

发布于 2015-07-02 05:57:23

GEOS的漂亮界面可能就是您正在寻找的库,但我从未将其用于此目的。

在这种情况下,使用自己的代码可能会更容易。该算法是一种简单的扫描线算法,每个矩形的平均复杂度与log(N)成正比。

A)每个矩形由四个坐标表征,左、右、上、下。

B)将按照矩形的左坐标顺序处理矩形

c)使用区间树来维护每个矩形的上下范围,这些矩形的左边缘已经被遇到,而右边缘还没有被遇到

D)维护当前在区间树中的所有矩形的按右边缘排序的优先级队列

1)获取要处理的第一个或下一个矩形。如果没有更多的可用,则退出。

2)当优先级队列上的任何元素的优先级小于或等于此矩形的左值时,从优先级队列中删除该元素,并从间隔树中删除关联的元素。

3)在区间树中搜索与该矩形的顶部-底部范围重叠;处理找到的每个重叠部分。

4)将该矩形的自上而下范围插入到区间树中,并在优先级队列中添加一个元素,该元素的优先级设置为该矩形的右值,引用添加到区间树中的区间。

5)返回步骤1)获取下一个矩形。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30896713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档