gpt4 book ai didi

python - 将 R、B、G 数组列表转换为颜色名称

转载 作者:行者123 更新时间:2023-12-04 07:24:16 42 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How to pass list elements as arguments

(1 个回答)


上个月关闭。




我正在尝试将图像中的 RBG 值转换为颜色名称。我使用的函数输出 RBG 值如下:get_colors(image, 3, False)[array([180.60849865, 187.12872355, 191.33901941]), array([254.80780926, 254.83214586, 254.8409425 ]), array([191.33977471, 197.17187803, 200.97835918])]我想通过以下函数将这些变量作为三个成对的单个参数进行迭代:

def recognize_color(R,G,B):
minimum = 10000
for i in range(len(csv)):
d = abs(R- int(csv.loc[i,"R"])) + abs(G- int(csv.loc[i,"G"]))+ abs(B- int(csv.loc[i,"B"]))
if(d<=minimum):
minimum = d
cname = csv.loc[i,"color_name"]
return cname
我主要是在处理这个数组列表并将它们排列到函数中。理想情况下,我想从 RGB 数组列表中创建一个颜色名称列表

最佳答案

您可以使用带有参数解包的理解:

[recognize_color(*color) for color in get_colors(image, 3, False)]
在每次迭代中, color将是一个包含三个元素的数组,它可以作为任何可迭代对象扩展为 recognize_color 的参数元组.
结果将是一个名称列表,每个返回值 get_colors 对应一个名称。 .
您也可以使用 itertools.starmap 为了这:
result = itertools.starmap(recognize_color, get_colors(image, 3, False))
这会产生一个惰性生成器,您可以迭代它以按需获取值,包括将其转换为列表:
list(result)

关于python - 将 R、B、G 数组列表转换为颜色名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68305927/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com