Изменение размера и разбиение большого изображения TIF - PullRequest
0 голосов
/ 08 ноября 2018

Я импортировал tif-изображение в виде массива с цифрами (6400, 6400, 4) и хотел бы разделить его на 25 меньших изображений (256, 256, 4) и автоматически сохранить их как TIF-файл в определенной папке. (Загрузка с PIL или TIFFFILE вызвала проблемы, потому что это спутниковое изображение с неизвестным пятым каналом), отсюда и массив Numpy.

Есть предложения?

1 Ответ

0 голосов
/ 08 ноября 2018

вы можете использовать np.split

фиктивные данные:

big_array = np.arange(6400) / 6400 * (np.arange(6400) / 6400)[:,np.newaxis]
big_array = (big_array * 256).astype(int)
big_array = np.stack([big_array]*4, axis=2)

big_array.shape
(6400, 6400, 4)

разделить их:

split_arrays = [
    np.split(array, 25, axis=0) 
    for array in np.split(big_array, 25, axis=1)
]

split_arrays[-1][-1].shape
(256, 256, 4)

PS. разделение 25 x 25 позволяет получить 625 изображений, а не 25

...