why'_io.BufferedRandom 'объект не имеет атрибута' resize ' - PullRequest
0 голосов
/ 05 апреля 2019

Я использую 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
    )

1 Ответ

0 голосов
/ 06 апреля 2019

Код, которым вы поделились, включает только определение функции, и я думаю, что проблема в вашем основном коде.
Полученное вами сообщение об ошибке показывает, что объект, размер которого вы пытаетесь изменить, не соответствуетимеют эту функциональность, и из-за этого я думаю, что вы случайно загрузили изображение с помощью команды open('path/to/image.png'), когда вам нужно загрузить его как объект 'Изображение' с помощью команды 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)
...