【问题标题】:.png image to numpy array conversion code error.png 图像到 numpy 数组转换代码错误
【发布时间】:2019-03-23 15:12:33
【问题描述】:
import numpy as np
from PIL import Image
from matplotlib import pyplot as plt

img = Image.open(r'D:\New folder (2)')
data = np.array(img,dtype='uint8')
np.save('long.png',data)
img_array = np.load('long.png')
plt.imshow(img_array)

当我运行此代码时,我收到一条错误消息:

File "C:\Users\prudhvi\Anaconda3\lib\site-packages\PIL\Image.py", line  2580, in open

    fp = builtins.open(filename, "rb")

PermissionError: [Errno 13] Permission denied: 'D:\\New folder (2)'

还请提出改进​​代码的建议。

【问题讨论】:

  • 看起来您的 Windows 不允许访问 D: 驱动器。转到属性并授予完全访问权限。
  • 我以管理员身份启动 python
  • 尝试将您的文件夹移动到更易于访问的位置,例如桌面。看看你的Image.open()。您只给出了文件夹名称,请给出文件的完整路径。
  • 谢谢它的工作,但我在第 7 行有错误文件“C:\Users\prudhvi\Anaconda3\lib\site-packages\numpy\lib\npyio.py”,第 384 行,在 load fid = open(file, "rb") FileNotFoundError: [Errno 2] 没有这样的文件或目录:'long.png'
  • 在解决上一个问题后,不要继续更改问题。此错误是新鲜的,与您之前的问题完全无关。

标签: python python-3.x numpy spyder


【解决方案1】:

Image.open() 的第一个参数必须是文件名(有或没有完整路径,具体取决于您的工作目录)。您为它提供了一个文件夹名称。所以对我来说

Image.open("C:\Python27")

会给我同样的错误。

解决方案是包含您的图像文件名(包括扩展名)以及路径:

Image.open("C:\Python27\my_image.png")

您当然可以更改当前工作目录,这意味着您可以只传递文件名而不是完整路径:

import os
os.chdir("D:\New folder (2)")

【讨论】:

  • 谢谢它有效,但我在第 7 行有另一个错误,指出文件“C:\Users\prudhvi\Anaconda3\lib\site-packages\numpy\lib\npyio.py”,第 384 行, in load fid = open(file, "rb") FileNotFoundError: [Errno 2] No such file or directory: 'long.png'
  • @PrudhviReddy 您可能没有提供open() 的完整文件路径,因此Python 将在您当前的工作目录中查找,而不是文件所在的目录
猜你喜欢
  • 2018-05-31
  • 2018-09-22
  • 2016-04-19
  • 2023-03-25
  • 2015-06-20
  • 2019-12-10
  • 2015-12-01
  • 2019-06-19
  • 1970-01-01
相关资源
最近更新 更多