当前位置: 代码迷 >> python >> 如何将一列图像网址转换为数据帧中的numpy数组?
  详细解决方案

如何将一列图像网址转换为数据帧中的numpy数组?

热度:74   发布时间:2023-07-14 09:53:22.0

我正在Kaggle上处理Plant Seedlings数据集,并准备了一个具有2列的数据框。

第一列具有火车集中存在的每个图像的目录,第二列具有该图像的标签(名称)。

我想将其转换为数据框,以便随后可以使用此数据框来训练我的模型。

此外,图像具有3个通道。

给定具有目录和标签为arr的数据框的名称。

                              file               category
0        ../input/train/Maize/a5c2eec2d.png        Maize
1        ../input/train/Maize/8cd93b279.png        Maize
2        ../input/train/Maize/8c6fba454.png        Maize
3        ../input/train/Maize/abadd72ab.png        Maize
4        ../input/train/Maize/f60369038.png        Maize

我应该如何做上述任务?

from PIL import Image
import numpy as np

dataset = []
# If you to encode category names you can do the following
# df['category_code'] = df['category'].cat.codes 
# and you can iterate over this in for loop
for image_name, category in zip(df['file'],df['category']):
    image = np.asarray(Image.open(image_name))
    dataset.append((image,category))

要将图像调整为特定大小,

image = np.asarray(Image.open(image_name).resize(size))

其中的大小是类似(224,224)的元组