Python如何将10个128*128图像ndarray数组合并为640*256数组
10个128x128 Numpy数组按指定布局合并实现方案
你需要的最终尺寸640x256完全匹配布局要求:垂直方向是5个128像素高度拼接(5128=640),水平方向是2个128像素宽度拼接(2128=256),用Numpy自带的拼接函数即可快速实现。
首先导入依赖:
import numpy as np
你的示例数组定义如下:
a1 = np.random.rand(128,128) a2 = np.random.rand(128,128) b1 = np.random.rand(128,128) b2 = np.random.rand(128,128) c1 = np.random.rand(128,128) c2 = np.random.rand(128,128) d1 = np.random.rand(128,128) d2 = np.random.rand(128,128) e1 = np.random.rand(128,128) e2 = np.random.rand(128,128)
实现方式1:分步拼接(逻辑清晰,适合新手理解)
# 第一步:把每行的2个数组做水平拼接,得到5个形状为128x256的行数组 row1 = np.hstack([a1, a2]) row2 = np.hstack([b1, b2]) row3 = np.hstack([c1, c2]) row4 = np.hstack([d1, d2]) row5 = np.hstack([e1, e2]) # 第二步:把所有行数组做垂直拼接,得到最终结果 result = np.vstack([row1, row2, row3, row4, row5]) # 验证输出尺寸 print(result.shape) # 输出 (640, 256)
实现方式2:一次性拼接(代码更简洁,灵活度更高)
直接用np.block定义布局规则,一次性完成拼接:
result = np.block([ [a1, a2], [b1, b2], [c1, c2], [d1, d2], [e1, e2] ]) print(result.shape) # 同样输出 (640, 256)
后续如果需要调整布局,只需要修改np.block的嵌套列表结构即可,比如要每行放3个就把每个子列表改成3个元素。
内容的提问来源于stack exchange,提问作者usama
相关产品推荐
相关产品推荐

