我正在将神经网络编码为一个项目,每当我尝试将数据中的图像转换并打印为灰度时,我都会不断收到恼人的弹出窗口。如果有人可以提供帮助,我们将不胜感激! :) 代码 错误消息
到目前为止,我已经在互联网上搜索过什么可以解决这个问题,但我一无所获。我看到一些东西在路径之前放置一个 r 使其成为原始字符串,但仅此而已。
出现
FileNotFoundError
错误是因为你的代码找不到图像文件所在的路径。 让我们来解决这个问题。
你的代码中存在的一个问题是
'../Downloads/archive/PetImages/Cat'
. 中的文件路径。 让我们来分析一下如何修复它:
理解文件路径
-
相对路径:
'../Downloads/archive/PetImages/Cat'
这样的路径是 相对 于你的代码运行位置的。 '../' 部分表示“上一级目录”。 你的代码可能无法从其当前位置找到这个目录。 - 绝对路径: 绝对路径表示磁盘上的完整位置,例如 'C:/Users/YourName/Downloads/archive/PetImages/Cat'(在 Windows 上)或 '/Users/YourName/Downloads/archive/PetImages/Cat'(在 macOS 或 Linux 上)。
如何修复
-
使用绝对路径:
最可靠的方法是提供到
PetImages
文件夹的完整、准确的绝对路径。用你的实际用户名和文件夹名称替换示例:
```python import os import cv2 import numpy as np from matplotlib import pyplot as plt
DATADIR = 'C:/Users/YourName/Downloads/archive/PetImages' # Windows # DATADIR = '/Users/YourName/Downloads/archive/PetImages' # macOS 或 Linux
CATEGORIES = ["Cat", "Dog"]
for category in CATEGORIES: path = os.path.join(DATADIR, category) for img in os.listdir(path): img_array = cv2.imread(os.path.join(path, img), cv2.IMREAD_GRAYSCALE) plt.imshow(img_array, cmap="gray") plt.show() break break ```
-
将工作目录更改为“Downloads”文件夹:
-
在代码中: 在你的代码开始处添加以下行,将工作目录更改为你的“Downloads”文件夹:
python import os os.chdir(os.path.expanduser('~/Downloads'))
-
在你的 IDE 中: 大多数 IDE 允许你设置工作目录。 在运行代码之前,在你的 IDE 中找到此设置并将其更改为你的“Downloads”文件夹。
其他提示
-
打印路径以进行验证:
在你的循环中,使用
print(os.path.join(path, img))
打印完整的图像路径。 这将帮助你确保你的代码正在查找正确的位置。 - 检查文件夹结构: 仔细检查你的“Downloads/archive/PetImages”文件夹是否确实包含名为“Cat”和“Dog”的子文件夹,以及其中的图像文件。
通过按照这些步骤操作,你将能够修复
FileNotFoundError
错误并成功加载你的图像! 如果还有其他问题,请告诉我,我会尽力提供帮助。