Skip to main content
 首页 » 编程设计

python之如何在 python 中 reshape 这个图像数组

2025年05月04日15leader

我有一个像这样的 8X8 图像阵列:

a = np.array([[1,1,1,1,2,2,2,2], 
              [1,1,1,1,2,2,2,2], 
              [1,1,1,1,2,2,2,2], 
              [1,1,1,1,2,2,2,2], 
              [3,3,3,3,4,4,4,4], 
              [3,3,3,3,4,4,4,4], 
              [3,3,3,3,4,4,4,4], 
              [3,3,3,3,4,4,4,4]]) 

我想将它 reshape 成一个数组,每个部分都像这样彼此分开:

a = np.array([ 
              [[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]], 
              [[2,2,2,2],[2,2,2,2],[2,2,2,2],[2,2,2,2]], 
              [[3,3,3,3],[3,3,3,3],[3,3,3,3],[3,3,3,3]], 
              [[4,4,4,4],[4,4,4,4],[4,4,4,4],[4,4,4,4]] 
             ]) 

这是一个 4X4X4 数组,我可以单独绘制图像的一部分。我该怎么做?

请您参考如下方法:

这样就可以了:

>>> b = np.split(np.hstack(np.split(a, 2)), 4, axis=1) 
>>> np.array(b) 
array([[[1, 1, 1, 1], 
        [1, 1, 1, 1], 
        [1, 1, 1, 1], 
        [1, 1, 1, 1]], 
 
       [[2, 2, 2, 2], 
        [2, 2, 2, 2], 
        [2, 2, 2, 2], 
        [2, 2, 2, 2]], 
 
       [[3, 3, 3, 3], 
        [3, 3, 3, 3], 
        [3, 3, 3, 3], 
        [3, 3, 3, 3]], 
 
       [[4, 4, 4, 4], 
        [4, 4, 4, 4], 
        [4, 4, 4, 4], 
        [4, 4, 4, 4]]])