Python, передающий AttributeError: объект 'PngImageFile' не имеет атрибута 'read' с подушкой - PullRequest
0 голосов
/ 22 мая 2019

Итак, я работаю над небольшим исследовательским проектом, и отчасти это связано с тем, что мне необходимо получить пиксельные координаты изображения, которые соответствуют определенному цвету.Пример изображения (с именем testpic.png) показан здесь:

enter image description here

То, что я пытаюсь сделать, это определить местоположение всех точек, которыецвет бирюзовый.Однако следующий код (адаптированный из Поиск пикселей с заданными цветами RGB ) выдает мне ошибку: «AttributeError: у объекта« PngImageFile »нет атрибута« read »», и я не уверен, что происходит.

from PIL import Image
myImage = Image.open("testpic.png")

def find_turq_pixels(image_name):

    # Set the value you want for these variables
    r_min = 0
    r_max = 65
    g_min = 220
    g_max = 255
    b_min = 220
    b_max = 255

    turq_pixels = set()

    img = Image.open(image_name)
    rgb = img.convert('rgb')
    for x in range(img.size[0]):
        for y in range(img.size[1]):
            r, g, b = rgb.getpixel((x, y))
            if r >= r_min and r <= r_max and b >= b_min and b <= b_max and g >= g_min and g <= g_max:
                turq_pixels.add((x,y))

    return turq_pixels

print(find_turq_pixels(myImage))

В настоящее время я использую Python 3.7, и если я все правильно установил, python говорит, что "PIL.PILLOW_VERSION" работает 5.4.1.Файл python и файл изображения также находятся в одной папке, если это вызвало ошибку.Я впервые за последние несколько лет использую Python, поэтому заранее извиняюсь, если я очень глуп по этому поводу, так как я уже забыл кучу о программировании, но если кто-нибудь может помочь мне это исправить, это будет очень цениться!Спасибо:)

1 Ответ

0 голосов
/ 22 мая 2019

Просто пара маленьких ошибок ...


Удалить эту строку:

myImage = Image.open("testpic.png")

Изменить эту строку:

print(find_turq_pixels(myImage))

до

print(find_turq_pixels("testpic.png"))

Изменить эту строку:

rgb = img.convert('rgb')

до:

rgb = img.convert('RGB')

Тогда все это работает.

...