使用numpy实现两个边界框不相交的检查
示例代码:
import numpy as np
def is_disjoint(bb1, bb2):
"""Determine if two bounding boxes are disjoint."""
# Extract coordinates from bounding boxes
x1, y1, w1, h1 = bb1
x2, y2, w2, h2 = bb2
# Compute intersection rectangle
x_int = max(x1, x2)
y_int = max(y1, y2)
w_int = min(x1+w1, x2+w2) - x_int
h_int = min(y1+h1, y2+h2) - y_int
# Check if intersection is empty
if w_int <= 0 or h_int <= 0:
return True
else:
return False
上述代码中,函数is_disjoint用于检查两个边界框是否不相交,输入参数bb1和bb2表示两个边界框,每个边界框由左上角坐标和宽高组成。函数返回值为True表示两个边界框不相交,为False表示两个边界框相交。该函数的实现方式是通过计算两个边界框的交集来判断它们是否相交,如果交集为空,则两个边界框不相交。