.png图片到numpy数组转换代码错误

时间:2018-10-18 18:23:47

标签: python python-3.x numpy spyder

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)'

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

1 个答案:

答案 0 :(得分:2)

Image.open()的第一个参数必须是文件名(是否包含完整路径,取决于您的工作目录)。您已为其提供了文件夹名称。所以对我来说

Image.open("C:\Python27")

会给我同样的错误。

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

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

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

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