У меня есть изображение размером 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 изображениях (большая часть размера файла изображения составляет 193 КБ, но создается некоторое изображение размером 171 КБ)
теперь я хочу откатить всю процедуру, т.е. использовать обрезанные изображения, объединяя все плитки обратно в исходное изображение. мы нашли откат функции, который выглядит следующим образом:
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
, в результате она объединяет изображения, но не в реальном порядке
Пожалуйста, предложите мне решение
касается Ясира
список обрезанных изображений
список обрезанных изображений с разным размером и масштабом, поскольку 10980 x 10980 не были разделены точно 256 x 356