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