[英]divide an N*N array into square blocks (patches)
我对 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
将数组拆分为 64 个大小为 16x16 的补丁
patches = np.split(image, 64, axis=0)
将补丁重新组装回单个阵列
reassembled = np.concatenate(patches, axis=0)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.