导入像MNIST这样的图像

时间:2018-02-26 07:16:57

标签: python image import mnist

我有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 /'

1 个答案:

答案 0 :(得分:0)

从上面的日志中,您似乎没有对文件夹图像的权限/已作为参数传递给函数imageprepare。您是否尝试更改图像的访问权限?或者只是以管理员的身份从提示中运行它。