【问题标题】:Loading image dataset in numpy arrays in python在python中的numpy数组中加载图像数据集
【发布时间】:2020-06-05 22:30:15
【问题描述】:

我有 6 张不同的图片。我想将它们一起存储在一个 numpy 数组中。那可能吗?如果是,我该怎么做?

from PIL import Image
from matplotlib import image
import matplotlib.pyplot as plt
from os import listdir
from numpy import asarray
import numpy as np

for i in range(1,6):
    image=Image.open(str(i)+'.jpg')
    image=image.resize((100,100))
    temp=asarray(image)
    print(np.append(X_train,temp,axis=0))

这会引发以下异常:

ValueError:所有输入数组的维数必须相同

【问题讨论】:

    标签: python-3.x image-processing python-imaging-library numpy-ndarray


    【解决方案1】:

    您可以创建一个数组列表并将其转换回 numpy 数组

    list_of_pics = list()
    for i in range(1,6):
        image=Image.open(str(i)+'.jpg')
        image=image.resize((100,100))
        list_of_pics.append(np.asarray(image))
    new_array = np.array(list_of_pics)
    

    new_array 的最终尺寸应该是 (6,100,100)

    【讨论】:

    • 我的形状为 (6,100,100,3) 但我想要形状为 (6,100,100)
    • 我认为你得到的正是你想要的,因为最后 3 个维度是定义颜色值的 RGB 值。如果您对颜色不感兴趣,您可以使用亮度的平均值,这样您就可以将图像转换为黑白。检查这个en.wikipedia.org/wiki/Brightness
    猜你喜欢
    • 2020-09-07
    • 2017-09-21
    • 2020-06-06
    • 2019-01-21
    • 2017-01-04
    • 2020-03-20
    • 2020-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多