我有一批图像,我使用open模式打开每个图像' rb'然后我用read函数读取每一个。现在我想从每个图像中获取50个随机边界框,并使用open和read函数再次读取每个边界框。有没有简单的方法呢?
答案 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可以满足您的需求。