Изменение цвета пикселя с помощью Pillow

Ника

Новичок
Пользователь
Окт 17, 2020
26
0
1
Python:
#Открыть изображение, выделить три компоненты цвета для всего изображения. Попиксельно обработать изображение.
# Если red+gren+blue для текущего пикселя больше, чем для всего изображения, изменить цвет пикселя на красный.
# Помогите, пожалуйста, разобраться в чем проблема, и как её исправить.
#выдаёт ошибку
#
File "C:/Users/Lenovo/PycharmProjects/untitled2/иии.py", line 16, in <module>
    r=pix[x,y][0]
TypeError: 'JpegImageFile' object is not subscriptable


import PIL
from PIL import Image
from PIL import ImageDraw

img=Image.open('image.jpg')
pix=Image.open('image.jpg')
w=img.size[0]#ширина
h=img.size[1]#высота
draw=ImageDraw.Draw(img)

for x in range (w):
    for y in range(h):
        r=pix[x,y][0]
        g=pix[x,y][1]
        b=pix[x,y][2]
        for i in range(w):
            for j in range(h):
                if (pix[i,j][0] + pix[i,j][1] + pix[i,j][2] ) > (r+g+b):
                    draw.point([i,j], (255,0,0))
 
Последнее редактирование:

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 566
454
83
у вас код не рабочий...
у вас ошибки начинаются со второй строки, 'Image' не определена...
но если у вас этот код работает, то возможно после 'pix' не надо точку ставить, или после точки нужно дописать какой то метод...
и если добавить импорты верно, то ругается на метод 'load', его нет в объекте 'Image'...
 

Ника

Новичок
Пользователь
Окт 17, 2020
26
0
1
у вас код не рабочий...
у вас ошибки начинаются со второй строки, 'Image' не определена...
но если у вас этот код работает, то возможно после 'pix' не надо точку ставить, или после точки нужно дописать какой то метод...
и если добавить импорты верно, то ругается на метод 'load', его нет в объекте 'Image'...
спасибо, но меня больше интересует сам процесс отбора пикселя и его перекраска..я не нашла ничего похожего, чтобы понять, как это можно сделать..
 

Форум IT Специалистов