У меня есть набор уникальных цветов RGB в словаре в key: 'Color'
и list
каждого цвета RGB в целевом изображении.Python - вычислить частоту уникальных элементов
Я хочу:
- итерации в списке цветов Target RGB
- Проверьте, что элемент соответствует любому из цветов в
key: 'Color'
- Если он совпадает, я хочу, чтобы изменить
key: frequency
увеличить это один (+ = 1)
в конце концов я надеюсь добиться, чтобы обновить frequency['Frequency']
так что в конце процесса dict: Frequency
Виль l содержит кучу пар (Color,Frequency)
. Затем я хочу сортировать от более низкой до более высокой частоты и печатать каждую пару RGB Color + количество появлений.
Вот мой код до сих пор:
from PIL import Image
im = Image.open('test.png').convert('RGB')
im2 = Image.open('test2.png').convert('RGB')
unique_colors = set()
def get_unique_colors(img):
for i in range(0,img.size[0]):
for j in range(0,img.size[1]):
r,g,b = img.getpixel((i,j))
unique_colors.add((r,g,b))
return(unique_colors)
unique_colors = get_unique_colors(im)
all_colors = []
def get_all_colors(img):
for i in range(0,img.size[0]):
for j in range(0,img.size[1]):
r,g,b = rgb_im.getpixel((i,j))
all_colors.append((r,g,b))
return(all_colors)
all_colors = get_all_colors(im2)
frequency = {'Color': list(unique_colors), 'Frequency': [0 for x in range(0,len(unique_colors))]}
Я столкнулся много проблем с моим отсутствием способности манипулировать словари, это действительно целесообразно использовать словари для хранения таких данных в этом случае?
Спасибо, это помогло. После этого я только должен был сделать: 'для е в all_colors: для г в unique_colors: если е == я: частота [е] + = 1 ' И чем каждый (R, G, В) Кортеж обновил счетчик. – EduGord
Рад быть в состоянии помочь! – ilke444