J'ai un tas de couleurs RVB uniques dans un dictionnaire dans un key: 'Color'
et un list
de chaque couleur RVB dans une image cible.Python - Calculer la fréquence des éléments uniques
Je veux:
- itérer sur la liste des couleurs RVB cible
- Vérifiez si cet élément correspond à l'une des couleurs du
key: 'Color'
- Si elle correspond, je veux changer le
key: frequency
d'augmenter par une (+ = 1)
A la fin je souhaite réaliser la mise à jour frequency['Frequency']
donc à la fin du processus dict: Frequency
wil Je contiens un groupe de paires de (Color,Frequency)
. Je veux ensuite trier de la plus basse à la plus haute fréquence et imprimer chaque paire de couleur RVB + nombre d'apparences.
Voici mon code à ce jour:
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))]}
Je suis face à de nombreux problèmes avec mon manque de capacité à manipuler les dictionnaires, est-il vraiment approprié d'utiliser des dictionnaires pour stocker ces données dans ce cas?
Merci, ça m'a beaucoup aidé. Après que je ne devais faire: 'E dans all_colors: for i in unique_colors: si e == i: fréquence [e] + = 1' Et que chacun (R, G, B) tuple aurait son compteur mis à jour. – EduGord
Heureux de pouvoir vous aider! – ilke444