为什么'_io.BufferedRandom'对象没有属性'resize'

问题描述 投票:0回答:1

我正在使用PIL,我收到此错误消息:

AttributeError: '_io.BufferedRandom' object has no attribute 'resize'

我的代码:

def phash(img):
    img = img.resize((8, 8), Image.ANTIALIAS).convert('L')
    avg = reduce(lambda x, y: x + y, img.getdata()) / 64.
    return reduce(
        lambda x, y, z: x | (z << y),
        enumerate(map(lambda i: 0 if i < avg else 1, img.getdata())),
        0
    )

python python-imaging-library google-colaboratory attributeerror
1个回答
0
投票

您共享的代码仅包含函数的定义,我认为问题出在您的主代码中。 您收到的错误消息向您显示您尝试调整大小的对象没有此功能,因此我认为您使用命令open('path/to/image.png')意外加载了图像,当您需要将其加载为'image'对象使用命令Image.open('path/to/image.png')

尝试写这样的东西:

from PIL import Image
from functools import reduce


def phash(img):
    pass # your function here

path = 'path/to/image.png'
image = Image.open(path)
phash = phash(image)
© www.soinside.com 2019 - 2024. All rights reserved.