如何在python中以4d数组保存一些3d图像?

如何在python中以4d数组保存一些3d图像?,python,numpy,matplotlib,deep-learning,keras,Python,Numpy,Matplotlib,Deep Learning,Keras,我想阅读有关256 X 512 RGB图像的信息(我正在笔记本电脑上的C:\folder\u test中记录数据)。所以它是一个三维阵列,形状(256512,3)三维包含颜色R、G和B 现在,我想(加载)读取45个这样的图像,并制作这些图像的数组。所以我决定制作一个四维数组,它的维数为(45,256,512,3),其中第一维中的45是图像的数量,第二维,第三维和第四维是图像的维数,即(256,512,3) 我尝试使用concatenate执行此操作,但出现了错误。有什么方法可以做到这一点吗?我想

我想阅读有关256 X 512 RGB图像的信息(我正在笔记本电脑上的C:\folder\u test中记录数据)。所以它是一个三维阵列,形状(256512,3)三维包含颜色R、G和B

现在,我想(加载)读取45个这样的图像,并制作这些图像的数组。所以我决定制作一个四维数组,它的维数为(45,256,512,3),其中第一维中的45是图像的数量,第二维,第三维和第四维是图像的维数,即(256,512,3)


我尝试使用concatenate执行此操作,但出现了错误。有什么方法可以做到这一点吗?

我想您在连接之前忘记了展开维度:

import numpy as np
pics = [np.random.sample((256 , 512 , 3)) for i in range(45)]
pics = [np.expand_dims(pic, axis=0) for pic in pics]
np.shape(np.concatenate(pics))

这将为您提供(45、256、512、3),而pics中的每个条目都具有形状(1、256、512、3)

您可以创建一个列表变量,并按如下方式逐个追加图像:

imageCollection = []
for oneImagePath in (imagePaths):
  #code for reading the image
  image = ....     # image contains (256,512,3) shape image.
  imageCollection.append (image)
就这样imageCollection是您想要的

from scipy import misc
import numpy as np
import glob

images = np.array([misc.imread(fname) for fname in glob.glob('./*.png')])
print(images.shape)
更改到本地目录的路径。

您可以使用旧名称的PIL加载映像,并以高效的方式将映像转换为数组

from PIL import Image
import numpy as np

image = Image.open("YOUR_IMAGE_PATH")
array = np.array(image)

您是如何阅读图片的?请将您尝试过的代码粘贴到代码块中,以使您的问题更易于理解。请阅读。基本信息是您的代码和错误消息的完整回溯。
scipy.misc.imread
已弃用,将在scipy 1.2.0中删除。可以改用
imageio.imread