Мне нужно изменить значение RGB всего изображения в папке.Мне нужно изменить цвета еще раз для всего списка, используя другое значение RGB, чем у меня, в словарь, и переименовать все изображения, добавив ключ словаря для каждого изображения.Я написал этот код, но он не работает.
import os
import numpy as np
from PIL import Image
def lista_immagini():
filelist=os.listdir(r"C:\Users\fdivito\Desktop\image")
for fichier in filelist[:]: # filelist[:] makes a copy of filelist.
if not(fichier.endswith(".png")):
filelist.remove(fichier)
print(filelist)
return filelist
brand = {'Ferrari': (0, 47, 128), 'Lamborghini': (196, 18, 48)}
for key, value in brand.iteritems():
brand_model = key
color_model_r = value[0]
color_model_g = value[1]
color_model_b = value[2]
for i in lista_immagini():
im = Image.open(r'path'+ i)
data = np.array(im)
r1, g1, b1 = 54, 115, 51 # Original value
r2, g2, b2 = color_model_r, color_model_g, color_model_b # Value that we want to replace it with
red, green, blue = data[:,:,0], data[:,:,1], data[:,:,2]
mask = (red == r1) & (green == g1) & (blue == b1)
data[:,:,:3][mask] = [r2, g2, b2]
im = Image.fromarray(data)
im.save(r"path" + brand_model + "_" + i)
print("Done " + str(i))
Результатом этого кода являются все изображения в список с изменением цвета и переименованный с помощью Ferrari, Lamborghini, но с изображением списка 3 ° симя состоит из всех ключей словаря.Любая помощь, пожалуйста?