将N*N数组划分为正方形块(patch)



我对python很陌生。我有一个大小为(128x128)的np数组(图像),我想把它分成64个16x16的补丁。如何对数组进行切片?我怎么能重新组装成一个128 × 128数组之后?

我试过了,但是当我试图重组它时,它增加了内存开销

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

将数组拆分为64个大小为16x16的小块

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

将这些补丁重新组装成一个数组

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

最新更新