确定此RGB元组的颜色

时间:2017-12-09 23:27:30

标签: python image opencv colors

我正在对大量图像进行测试,并且每次提取其最主要颜色的RGB值。我现在要做的是确定每个值的颜色。例如,我希望它为(42,71,101)返回“蓝色”或为(187,121,133)返回“紫色”。这对我来说足以得到红色,橙色,黄色,绿色,蓝色或紫色的结果(不需要粉红色或绿松石:))

我看到了关于OpenCV和Python颜色检测的post,但它并不是我需要的,因为它创建了一个掩码,我正在寻找一个更简单的输出。

困难的部分是确定上边界和下边界是什么,因为我需要它来处理任何RGB值。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

你可以用3种不同的方式做到这一点。

1)通过matplotlib

import matplotlib #pip install  matplotlib
print matplotlib.colors.cnames["blue"]   # prints u'#0000FF'

如果您想从十六进制转换为rgb,您可以使用以下功能:

def hex_to_rgb(hexcode):
   rgb = tuple(map(ord,hexcode[1:].decode('hex')))
   return rgb

2)使用此github

3)您也可以使用webcolors包link