numpy 将N*N阵列划分为正方形块(面片)

3htmauhk  于 2022-12-26  发布在  其他
关注(0)|答案(1)|浏览(107)

我对python很陌生。我有一个大小为(128x128)的np数组(图像),我想把它分成64个16x16的面片。我如何对数组进行切片?以及我如何在之后将它重新组装成一个128x128的数组?
我尝试过这种方法,但当我尝试重新组装它时,它会增加内存开销

import numpy as np
xpx = np.random.rand(5,128,128)

new=np.zeros((5,64,16,16))

for i in range(0,5):
  w=0
  for j in range(0,128,16):
    for k in range(0,128,16):
      new[i,w]=xpx[i,j:j+16,k:k+16]
      w=w+1
nzkunb0c

nzkunb0c1#

将阵列拆分为64个大小为16x16的修补程序

patches = np.split(image, 64, axis=0)

将修补程序重新组装到单个阵列中

reassembled = np.concatenate(patches, axis=0)

相关问题