调整和分割大tif图像

时间:2018-11-08 14:35:01

标签: python reshape tiff

我已导入形状为(6400、6400、4)的numpy数组形式的tif图像,并希望将其分为25个较小的形状(256、256、4)的图像,并自动将它们保存为tif文件在特定文件夹中。 (使用PIL或TIFFFILE加载会出现问题,因为它是一个卫星图像,具有未知的第五个通道),因此是numpy数组。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您可以使用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张