如何从图像中获取随机边界框? (蟒蛇)

时间:2016-08-28 12:21:43

标签: python image bounding-box

我有一批图像,我使用open模式打开每个图像' rb'然后我用read函数读取每一个。现在我想从每个图像中获取50个随机边界框,并使用open和read函数再次读取每个边界框。有没有简单的方法呢?

2 个答案:

答案 0 :(得分:0)

这是一个可能的解决方案:

from random import randint
from PIL import Image


def random_bbox(bbox):
    v = [randint(0, v) for v in bbox]
    left = min(v[0], v[2])
    upper = min(v[1], v[3])
    right = max(v[0], v[2])
    lower = max(v[1], v[3])
    return [left, upper, right, lower]

filename = "your_image.png"
im = Image.open(filename)
bbox = im.getbbox()
N = 50

for i in range(N):
    random_tile = im.crop(random_bbox(bbox))
    #random_tile.show()

正如您所看到的,此解决方案是从一个图像中裁剪随机子图像,因为您可以看到我已经对random_tile.show()行进行了评论,现在它取决于您如何处理random_tile(保存,调整,...)

答案 1 :(得分:0)

Sklearn的extract_patches_2d可以满足您的需求。