import sys sys.path.append("../src") import os import json import PIL.Image from analyzer.epoint import EPoint from analyzer.grid import Grid filepath=sys.argv[1] with open(filepath,mode="rt") as f: annotations=json.load(f) for (filename,data) in annotations.items(): grid=Grid([EPoint(x,y) for (x,y) in data["corners"]]) intersections=grid.intersections img=PIL.Image.open(os.path.join(os.path.dirname(filepath), filename)) basename=filename.partition(".")[0] for (r,row) in enumerate(intersections): for (c,p) in enumerate(row): (w,h)=map(int,grid.stoneSizeAt(r,c)) x=p.x-w//2 y=p.y-h//2 cut=img.transform((w,h),PIL.Image.EXTENT,(x,y,x+w,y+h)) cut.save("/tmp/stones/{0}-{1}-{2}.jpg".format(basename,r,c))