Python 合并重叠矩形框
时间: 2023-11-05 16:04:32 浏览: 221
要合并重叠的矩形框,你可以按照以下步骤进行:
1. 首先,将所有的矩形框按照其左上角的坐标进行排序,这样可以确保在后续的遍历中,我们只需要考虑右下角的坐标。
2. 然后,从第一个矩形框开始遍历,对于每个矩形框,我们检查其右下角的坐标是否在后续的矩形框中,如果是,则将后续的矩形框合并到当前矩形框中,并更新当前矩形框的右下角坐标。
3. 最后,将所有合并后的矩形框输出即可。
下面是一个示例代码,可以实现合并重叠的矩形框:
```python
def merge_rectangles(rectangles):
# 根据左上角坐标排序
rectangles.sort(key=lambda x: (x[0], x[1]))
merged = []
current = rectangles[0]
for rect in rectangles[1:]:
# 判断是否有重叠
if rect[0] <= current[2] and rect[1] <= current[3]:
# 合并矩形框
current[2] = max(current[2], rect[2])
current[3] = max(current[3], rect[3])
else:
# 将当前矩形框加入结果中,并更新当前矩形框
merged.append(current)
current = rect
# 将最后一个矩形框加入结果中
merged.append(current)
return merged
```
例如,给定以下矩形框:
```python
rectangles = [
[1, 1, 4, 4],
[2, 2, 5, 5],
[5, 5, 7, 7],
[6, 6, 8, 8],
[10, 10, 12, 12]
]
```
调用 `merge_rectangles(rectangles)` 后,可以得到合并后的矩形框:
```python
[[1, 1, 5, 5], [5, 5, 8, 8], [10, 10, 12, 12]]
```
阅读全文