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

时间:2018-03-29 07:54:47

标签: python numpy matplotlib deep-learning keras

我想阅读有关256 X 512 RGB图像的信息(我正在C:\ folder_test中记录笔记本电脑上的数据)。因此,它是一个3D形状,具有形状(256,512,3),第三维保持颜色R,G和B

现在,我想(加载)读取45个这样的图像并制作这些图像的数组。所以我决定制作一个4D阵列,其尺寸为(45,256,512,3),第一维45为图像数,第二,第三和第四维为图像尺寸(256, 512,3)

我尝试使用连接但我收到错误。有没有办法做到这一点?

4 个答案:

答案 0 :(得分:0)

我认为在连接之前你忘了扩展尺寸:

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)

答案 1 :(得分:0)

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)

更改本地目录的路径。

答案 2 :(得分:0)

您可以使用 PIL Pillow及其旧名称来加载图片,并使用NumPy以高效的方式将图片转换为数组。

from PIL import Image
import numpy as np

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

答案 3 :(得分:-1)

您可以创建列表变量并按照以下方式逐个附加图片:

imageCollection = []
for oneImagePath in (imagePaths):
  #code for reading the image
  image = ....     # image contains (256,512,3) shape image.
  imageCollection.append (image)

那就是它。 imageCollection 就是您想要的。