You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将(36,51,51)的Numpy图像栈重组成9×4布局的大图像?

解决方案

要将形状为(36,51,51)的图像栈重组为9行4列布局的大图像,直接用reshape会因元素顺序不符合布局要求而失败,正确实现需要先调整维度结构再按行/列拼接,具体方法如下:

方法一:分步拼接(直观易理解)

import numpy as np

# 假设图像栈为image_stack,形状(36,51,51)
# 1. 将图像栈重组为(9,4,51,51),对应9行、每行4个51×51的图像块
stack_reshaped = image_stack.reshape(9, 4, 51, 51)

# 2. 把每行的4个图像块水平拼接,得到形状(9,51, 204)的数组(204=4×51)
row_combined = np.concatenate(stack_reshaped, axis=2)

# 3. 把所有行垂直拼接,得到最终大图像,形状(459,204)(459=9×51)
large_image = np.concatenate(row_combined, axis=0)

方法二:紧凑写法(维度转置+reshape)

如果追求代码简洁,可通过调整维度顺序后直接reshape,原理和分步方法一致:

import numpy as np

large_image = image_stack.reshape(9,4,51,51).transpose(0,2,1,3).reshape(9*51, 4*51)

代码说明:

  • reshape(9,4,51,51):将36张图像分组为9行×4列的块结构
  • transpose(0,2,1,3):调整维度顺序为(行索引, 块高度, 列索引, 块宽度),让同一行内的块在列方向连续排列
  • reshape(9*51,4*51):合并维度,自动完成行内块的水平拼接、行之间的垂直拼接

结果验证

执行large_image.shape应输出(459, 204),符合9行4列的布局要求。

内容的提问来源于stack exchange,提问作者bbbeenn32

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 13:35:02