欢迎访问宙启技术站
智能推送

使用Python随机生成20个独特边界框(unique_boxes)数据集

发布时间:2023-12-11 04:24:03

确定一个边界框需要四个值,即左上角的x和y坐标,以及宽度和高度。我们可以使用Python中的random模块来生成随机的x和y坐标以及宽度和高度。

首先,我们导入random模块,并创建一个空的列表来存储边界框数据集。

import random

unique_boxes = []

然后,我们使用一个循环生成20个独特的边界框。在每次迭代中,我们生成随机的x和y坐标以及宽度和高度,并将其添加到边界框列表中。为了确保生成的边界框是独特的,我们在每次迭代之前检查它是否与已经存在的边界框重叠。

while len(unique_boxes) < 20:
    x = random.randint(0, 100)  # 生成0到100之间的随机x坐标
    y = random.randint(0, 100)  # 生成0到100之间的随机y坐标
    width = random.randint(1, 10)  # 生成1到10之间的随机宽度
    height = random.randint(1, 10)  # 生成1到10之间的随机高度

    # 检查边界框是否与已有边界框重叠
    overlap = False
    for box in unique_boxes:
        if (x < box[0] + box[2] and x + width > box[0]
            and y < box[1] + box[3] and y + height > box[1]):
            overlap = True
            break

    # 如果边界框不重叠,则添加到数据集中
    if not overlap:
        unique_boxes.append((x, y, width, height))

最后,我们可以打印生成的边界框数据集,以及一个使用这些边界框的示例。

for i, box in enumerate(unique_boxes):
    print(f"边界框 {i+1}:")
    print(f"左上角坐标:({box[0]}, {box[1]})")
    print(f"宽度和高度:{box[2]}x{box[3]}")
    print()

# 使用示例
box1 = unique_boxes[0]
print(f"      个边界框的左上角坐标:({box1[0]}, {box1[1]})")
print(f"      个边界框的宽度和高度:{box1[2]}x{box1[3]}")

这样,我们就使用Python随机生成了一个包含20个独特边界框的数据集,并输出了其中一个边界框的示例。注意,在生成边界框时,我们使用了一个循环来确保生成的边界框是独特的,并且没有重叠。