繁体   English   中英

如何将 4d numpy 图像数组转换为 3d?

[英]How to convert 4d numpy array of images to 3d?

我有 4d numpy 形状数组(80,8,8,3)。 它是 80 张 8x8 图像,3 个通道。 我想用它们制作一张 8 行 10 列的大图像。 如何将 4d 数组转换为 3d 并重塑为所需的形状? 我尝试np.concatenate(images[i:i + 10,:,:,:]但由于某种原因它不起作用。

如果您只想查看它们,您可以制作 plot 而无需摆弄您的数据:

data = np.random.random((80, 8, 8, 3))

import matplotlib.pyplot as plt

fig, axs = plt.subplots(nrows=8, ncols=10, figsize=(10, 8))
for ax, img in zip(axs.ravel(), data):
    ax.imshow(img)
    ax.axis('off')

这导致:

matplotlib 输出

如果你真的想重塑它,你可以这样做:

n, h, w, c = data.shape
data_new = (data.reshape(8, 10, h, w, c)
                .swapaxes(1,2)
                .reshape(h*8, w*10, c))

到 plot 这个结果:

plt.figure(figsize=(10, 8))
plt.imshow(data_new)
plt.axis('off')

matplotlib 输出

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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