Замена цвета пикселя в массиве Numpy

Имею изображение в RGB. Код на входе получает список из цветов, которые при совпадении с пикселем на изображении заменяются на белый.

import os
from PIL import Image
Image_name = 'image.bmp'

os.chdir('C:\\rastr')
colors = [(253,145,11),(123,121,123),(123,111,133),(126,111,123)]

im = Image.open(Image_name)
width, height = im.size

for x in range(width):
    for y in range(height):
        if im.getpixel((x, y)) in colors.__iter__():
            im.putpixel((x, y), blank)

print('done')
im.save(Image_name + '---отредактировано.bmp')

На деле список colors и картинка большие и итерация медленная.

Вопроc: как решить это через массивы? Моя незавершенная попытка:

import numpy
im = Image.open(Image_name)
np_image = numpy.array(im)
print(np_Root.shape)

find_pixels = (numpy.where(((numpy.array(im))[:, :, 0:3] == colors.__iter__())))

Спасибо


Ответы (0 шт):