我有一个大小为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
结果,它合并了图像,但没有按实际顺序合并
请告诉我解决办法
问候 亚西尔
如果您使用的是Windows,您可能对我的另一个答案有困难,因此这里有一个基于Python的答案
同样,我建议您更改文件命名,将零填充改为5位数的长度。然后,通过查看名称中包含
x00000
的文件,可以获得所有y偏移的列表,通过查看名称中包含y00000
的所有文件,可以获得所有x偏移的列表可能是这样的:
现在,您可以将文件名打印到一个文件中,然后像以前一样启动ImageMagick
montage
,也可以创建一个大的空画布,在我的最终for
循环中一次打开一个文件,并将每个文件粘贴到正确的位置未经测试,但试试这个。首先稍微更改文件命名,以适应更多的磁贴:
现在您的
x
和y
坐标应该颠倒,以便更容易排序,并将零填充到5个位置,而不是3个位置然后,您应该能够使用以下工具以正确的顺序获得文件列表:
然后用以下图片蒙太奇:
或者,如果您需要等效的单衬里:
关键词:Python、图像处理、重新组装、拼图、ImageMagick、蒙太奇
相关问题 更多 >
编程相关推荐