cropping a random part of an image
drewes.mil at gmail.com
drewes.mil at gmail.com
Wed Aug 10 08:13:05 EDT 2016
Ok, did it :)
import random, os, time
from PIL import Image
INPATH = ('/home/sdrewes/Desktop/Portaits/Bilder/Test/')
OUTPATH = ('/home/sdrewes/Desktop/Portaits/Bilder/Gut_Crop/')
dx = dy = 228
tilesPerImage = 100
files = os.listdir(INPATH)
numOfImages = len(files)
print(files)
t = time.time()
for file in files:
im = Image.open(INPATH+file)
for i in range(1, tilesPerImage+1):
newname = file.replace('.', '_{:03d}.'.format(i))
w, h = im.size
x = random.randint(0, w-dx-1)
y = random.randint(0, h-dy-1)
print("Cropping {}: {},{} -> {},{}".format(file, x,y, x+dx, y+dy))
im.crop((x,y, x+dx, y+dy))\
.save(os.path.join(OUTPATH, newname))
t = time.time()-t
print("Done {} images in {:.2f}s".format(numOfImages, t))
print("({:.1f} images per second)".format(numOfImages/t))
print("({:.1f} tiles per second)".format(tilesPerImage*numOfImages/t))
More information about the Python-list
mailing list