我有100个图像,每个数字每个10个,我试图将其转换为python中的MNIST图像。但是,我经常遇到错误。发布错误!
from PIL import Image, ImageFilter
from os import listdir
def imageprepare(argv):
"""
This function returns the pixel values.
The imput is a png file location.
"""
imagesList = listdir(argv)
for image in imagesList:
im = Image.open(argv).convert('L')
width = float(im.size[0])
height = float(im.size[1])
newImage = Image.new('L', (28, 28), (255)) # creates white canvas of 28x28 pixels
if width > height: # check which dimension is bigger
# Width is bigger. Width becomes 20 pixels.
nheight = int(round((20.0 / width * height), 0)) # resize height according to ratio width
if (nheight == 0): # rare case but minimum is 1 pixel
nheight = 1
# resize and sharpen
img = im.resize((20, nheight), Image.ANTIALIAS).filter(ImageFilter.SHARPEN)
wtop = int(round(((28 - nheight) / 2), 0)) # calculate horizontal position
newImage.paste(img, (4, wtop)) # paste resized image on white canvas
else:
# Height is bigger. Heigth becomes 20 pixels.
nwidth = int(round((20.0 / height * width), 0)) # resize width according to ratio height
if (nwidth == 0): # rare case but minimum is 1 pixel
nwidth = 1
# resize and sharpen
img = im.resize((nwidth, 20), Image.ANTIALIAS).filter(ImageFilter.SHARPEN)
wleft = int(round(((28 - nwidth) / 2), 0)) # caculate vertical pozition
newImage.paste(img, (wleft, 4)) # paste resized image on white canvas
# newImage.save("sample.png
tv = list(newImage.getdata()) # get pixel values
# normalize pixels to 0 and 1. 0 is pure white, 1 is pure black.
tva = [(255 - x) * 1.0 / 255.0 for x in tv]
print(tva)
return tva
argv= 'images/'
x=imageprepare(argv)#file path here
print(len(x))# mnist IMAGES are 28x28=784 pixels
错误: File" C:/Users/lenovo/.spyder-py3/Project1/test12.py" ;,第47行,在 x = imageprepare(argv)#file path here
文件" C:/Users/lenovo/.spyder-py3/Project1/test12.py",第14行,在imageprepare中 im = Image.open(argv).convert(' L')
文件" C:\ Users \ lenovo \ Anaconda3 \ lib \ site-packages \ PIL \ Image.py",第2477行,处于打开状态 fp = builtins.open(filename," rb")
PermissionError:[Errno 13]权限被拒绝:' images /'
答案 0 :(得分:0)
从上面的日志中,您似乎没有对文件夹图像的权限/已作为参数传递给函数imageprepare。您是否尝试更改图像的访问权限?或者只是以管理员的身份从提示中运行它。