gpt4 book ai didi

python - 使用Sklearn加载本地文件,尝试显示任何图像返回空

转载 作者:行者123 更新时间:2023-11-30 09:40:20 25 4
gpt4 key购买 nike

我正在启动一个 ML 项目,在真正制作模型之前,我想尝试导入我的图像(我有一个仅保存图像的文件,如果重要的话它们是 .png)并使用它们并操纵它们,使它们适合模型。我所做的就是加载文件,然后尝试显示它们,但它没有显示任何内容。文件路径似乎是正确的,因为我第一次尝试它是错误的,并给出了一个大错误消息,但现在似乎没有这样做。我如何获得它,以便当我加载文件时,我可以运行类似

data[0]

并查看第一张图像(或图像的详细信息)。我的代码如下(我从该代码上方的 tensorflow 指南中导入了很多其他内容,所以我认为不是这样,但如果有必要,我可以在其他导入中进行编辑):

import pathlib
import sklearn.datasets
data_dir = sklearn.datasets.load_files('/Users/USer/Downloads/C4IMAGES/', shuffle='False')
data_dir

运行的输出是:

{'data': [],
'filenames': array([], dtype=float64),
'target_names': [],
'target': array([], dtype=float64),
'DESCR': None}

如果我尝试 data_dir[0] 应显示第一张图像,则错误消息为

---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-48-5541d6af8248> in <module>
2 import sklearn.datasets
3 data_dir = sklearn.datasets.load_files('/Users/USer/Downloads/C4IMAGES/', shuffle='False')
----> 4 data_dir[0]

KeyError: 0

感谢您的帮助!

最佳答案

实际上,sklearn.datasets.load_files 的文档表示图像或任何数据文件必须存在于以下层次结构中:

container_folder/
category_1_folder/
file_1.txt file_2.txt … file_42.txt
category_2_folder/
file_43.txt file_44.txt …

我认为您的图像位于路径 /Users/USer/Downloads/C4IMAGES/ 中。在这种情况下,您必须创建一个子文件夹,例如 category 1category 2(如果您的数据未分类,只需创建一个任意名称的子文件夹,然后将所有数据放入子文件夹中的图像)并将具有相应类别的图像放入子文件夹中。

现在,您可以在函数 load_files 中传递参数 /Users/USer/Downloads/C4IMAGES/ ,它应该将您的数据加载到 python 列表 data_dir 中['data'] 二进制格式。

然后,您可以将图像从二进制格式转换为 numpy 数组并显示图像:

import io
import numpy as np
from PIL import Image

# decode i'th image using:
img = Image.open(io.BytesIO(data_dir.data[i]))
img = np.asarray(img)

# display i'th image
import matplotlib.pyplot as plt

plt.imshow(img)
plt.show()

引用文献:
1.https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_files.html
2.Convert image loaded as binary string into numpy array

关于python - 使用Sklearn加载本地文件,尝试显示任何图像返回空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59147049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com