繁体   English   中英

将一个 N*N 数组分成方块(patches)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM