Ich habe eine Reihe von einzigartigen RGB-Farben in einem Wörterbuch in einer key: 'Color'
und eine list
von jeder RGB-Farbe in einem Zielbild.Python - Häufigkeit der einzigartigen Elemente berechnen
Ich möchte:
- Iterate über die Ziel RGB-Farbliste
- prüfen, ob dieses Element entspricht eine der Farben in der
key: 'Color'
- Wenn es passt ich die
key: frequency
zu erhöhen ändern möchten es von einem (+ = 1)
am Ende I frequency['Frequency']
so am Ende der Prozess dict: Frequency
Wil zu erreichen hoffen zu aktualisieren, Ich habe eine Reihe von Paaren von (Color,Frequency)
. Ich möchte dann von niedriger zu höherer Frequenz sortieren und jedes Paar RGB-Farbe + Anzahl der Erscheinungen drucken.
Hier ist mein Code so weit:
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))]}
ich viele Probleme mit meinem Mangel an Fähigkeit, mit Blick auf Wörterbücher zu manipulieren, ist es wirklich angemessen Wörterbücher zu verwenden diese Daten in diesem Fall zu speichern?
Dank, war es sehr hilfreich. Danach hatte ich nur zu tun: 'für e in all_colors: für i in unique_colors: wenn e == i: Frequenz [e] + = 1 ' Und als jede (R, G, B) Tupel würde seinen Zähler aktualisiert haben. – EduGord
Froh, helfen zu können! – ilke444