【发布时间】:2020-01-21 18:45:24
【问题描述】:
我有一张尺寸为 10980x10980 的图像,我使用 python 脚本将此图像裁剪为 256x256 尺寸。我用于裁剪的脚本是:
from PIL import Image
infile = 'Amritsar_T43SDR.tif'
chopsize = 256
img = Image.open(infile)
width, height = img.size
for x0 in range(0, width, chopsize):
for y0 in range(0, height, chopsize):
box = (x0, y0,
x0+chopsize if x0+chopsize < width else width - 1,
y0+chopsize if y0+chopsize < height else height - 1)
print('%s %s' % (infile, box))
img.crop(box).save('Train.%s.x%03d.y%03d.tif' % (infile.replace('.tif',''), x0, y0))
在 1855 张图像中按给定尺寸成功裁剪图像(大多数图像文件大小为 193K,但生成了一些大小为 171Kb 的图像)
现在我想回滚整个过程,即使用裁剪图像,将所有图块合并回原始图像。我们找到了一个函数rollback如下
def roll(image, delta):
x0, y0 = img.size
delta = delta % xsize
if delta == 0: return image
part1 = image.crop((0, 0, delta, y0))
part2 = image.crop((delta, 0, x0, y0))
image.paste(part1, (x0-delta, 0, x0, y0))
image.paste(part2, (0, 0, x0-delta, y0))
return image
它没有捕捉到原始尺寸 或者,我们使用 ImageMajik 程序并发出命令为
montage -mode concatenate -tile 43x85 Train*.tif new_amritsar.tif
结果它合并了图像,但不是按照真正的顺序
请给我建议解决方案
问候 亚西尔
【问题讨论】:
-
请问您使用的是什么操作系统?
标签: python image python-imaging-library