Замена цвета пикселя в массиве 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__())))
Спасибо