如何在python中将多个三维数组更改为单个4Dimensional数组?

2024-07-02 04:28:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用python将多个图像存储在一个4维数组中。我怎样才能改变它

我试过np.vstack,np.concatenate,np.hstack,如下所示 image\u all=np.连接([img\u 3,img\u 4],axis=0),但我得到“除连接轴外的所有输入数组维度必须精确匹配

我试图为图像创建新的维度,但没有成功。我像img_1=(1428640,3)一样创建了一个数组,我也像所有人一样创建了一个新的数组,但没有成功

假设我有以下尺寸的图像

img_1 = (428, 640, 3)
img_2 = (426, 640, 3)
img_3 = (426, 640, 3)
img_4 = (640, 480, 3)
img_5 = (640, 427, 3)

我希望我的新维度数组是串联的,并且维度为(5?3) 如下所示 img_all.shape=(5,,,3)


Tags: 图像imageimg尺寸np数组allshape
1条回答
网友
1楼 · 发布于 2024-07-02 04:28:53

不同形状的Numpy数组不能按您要求的方式组合在单个数组中。但您可以轻松地将图像调整为相同的形状,然后进行组合。您可以这样使用枕头库:

import numpy as np
from PIL import Image

# List of images to be combined in a single array
images = [img_1, img_2, img_3, img_4, img_5] 

# Common shape
SIZE = (640, 480) # Any size you find suitable

# Convert into pillow images and resize
images_pil = [Image.fromarray(img).resize(SIZE) for img in images]

# Convert back and combine into single array
images_np_arr = np.array([np.array(img) for img in images_pil])


print(images_np_arr.shape) # prints (5, 640, 480, 3)

相关问题 更多 >