for img in os.listdir(imgfolder):
imgname, Suff = os.path.splitext(img)
im = Image.open(imgfolder + img)
im_size = im.size
width, height = im_size[0], im_size[1]
xnum = int(width/cropsize) + 1
ynum = int(height/cropsize) + 1
rowindex = 0
for yindex in range(ynum): #yindex: row
rowindex += 1
columnindex = 0
for xindex in range(xnum): #xindex: column
columnindex += 1
if xindex != 0:
box = (xindex*cropsize - overlap, yindex*cropsize, (xindex+1)*cropsize - overlap,(yindex+1)*cropsize) #设定裁剪区域
else:
box = (xindex*cropsize,yindex*cropsize,(xindex+1)*cropsize,(yindex+1)*cropsize) #设定裁剪区域
#To compare the box edge with the width and height of image.
if box[2] > width and box[3] < height:
box = (width-1024, box[1], width, box[3])
if box[3] > height and box[2] < width:
box = (box[0], height-1024, box[2], height)
if box[3] > height and box[2] > width:
box = (width-1024, height-1024, width. height)
# crop and save img
region = im.crop(box)
region.save(imgsavefolder + imgname + '-' + str(rowindex) + '-' + str(columnindex) + Suff)
overlap:设置重叠区域
cropsize:生成图片大小