diff --git a/exp/createsamples.py b/exp/createsamples.py --- a/exp/createsamples.py +++ b/exp/createsamples.py @@ -1,15 +1,20 @@ +import sys +sys.path.append("../src") + import os -import sys import random import PIL.Image import PIL.ImageDraw import PIL +from diagram import createDiagram from color_sampler import DataFile finalPosCount=5000 +empty=True +perspective=False random.seed(361) inputDir=sys.argv[1] outputDir=sys.argv[2] @@ -71,12 +76,36 @@ def extract(image,cornerList,i,filename) print(outputPath,1,0,0,x2-x1,y2-y1) -for (filename,cornerList) in annotations.items(): - path=os.path.join(inputDir, filename) - if not os.path.isfile(path): - print("{0} not found, ignored".format(path)) - continue +def generate(background,i,outputDir): + bg=background.copy() + img=createDiagram([[]]) + maxSize=min(*img.size,*bg.size) + size=random.randint(min(80,maxSize),maxSize) + img=img.resize((size,size),PIL.Image.BICUBIC) + wRange=bg.size[0]-img.size[0] + hRange=bg.size[1]-img.size[1] + x=random.randint(0,wRange) + y=random.randint(0,hRange) + bg.paste(img,(x,y)) + outputPath=os.path.join(outputDir,"{0:04}.jpg".format(i)) + bg.save(outputPath) + rect=[ + max(x-5,0), + max(y-5,0), + img.size[0]+min(10,bg.size[0]-x), + img.size[1]+min(10,bg.size[1]-y) + ] + print(outputPath,1,*rect,flush=True) - img=PIL.Image.open(path) - for i in range(multiple): - extract(img,cornerList,i,filename) +# for (filename,cornerList) in annotations.items(): +# path=os.path.join(inputDir, filename) +# if not os.path.isfile(path): +# print("{0} not found, ignored".format(path)) +# continue +# +# img=PIL.Image.open(path) +# for i in range(multiple): +# extract(img,cornerList,i,filename) + +for i in range(finalPosCount): + generate(pickRandom(),i,outputDir)