Изменить список цветных изображений с помощью rgb по словарю - PullRequest
0 голосов
/ 16 мая 2019

Мне нужно изменить значение 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 ° симя состоит из всех ключей словаря.Любая помощь, пожалуйста?

...