我在目标图像中的每种RGB颜色的key: 'Color'
和list
字典中都有一堆独特的RGB颜色。Python - 独特元素的计算频率
我想:
- 遍历目标RGB颜色列表
- 检查,如果该元素匹配任何在
key: 'Color'
- 的颜色如果匹配我想改变
key: frequency
增加它由一个(+ = 1)
最后,我希望实现这样的过程dict: Frequency
WIL的末端更新frequency['Frequency']
l包含一串(Color,Frequency)
。然后,我想从低频到高频进行排序,并打印每对RGB颜色+外观数量。
这里是我到目前为止的代码:
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: 对于i在unique_colors: 如果E == I: 频率[E] + = 1' 并且比每个(R,G,B)元组将会更新其计数器。 – EduGord
很高兴能够帮助! – ilke444