Как я могу получить отсутствие красных пикселей и отсутствие чёрных пикселей в изображении PIL
from PIL import ImageGrab
pil_img=ImageGrab.grab([0,0,1000,1000])
Теперь я хочу получить не красные пиксели и черные пиксели в двух отдельных переменных. Так как мне следует продолжить на pil_img
Ответ 1
Это намного быстрее, если вы не пишете цикл самостоятельно по всем пикселям.
import os.path
from collections import Counter
from PIL import Image
path_to_file = os.path.join('..', '..', 'img', '9BLW9.jpg')
# Count the number of occurrences per pixel value for the entire image
img = Image.open(path_to_file)
pixels = img.getdata()
print(Counter(pixels))
# Count the number of occurrences per pixel value for a subimage in the image
img = img.crop((100, 100, 200, 200))
pixels = img.getdata()
print(Counter(pixels))
Тот факт, что у вас есть более двух значений пикселей, обусловлен артефактами JPG. Вы можете написать какую-то пользовательскую логику, чтобы увидеть, что пиксель напоминает больше черного или красного цвета, и посчитайте их такими же.
Ответ 2
Используйте pil_img.getpixel((x, y)) или pil_img[x, y].