标签: python image opencv colors
我正在对大量图像进行测试,并且每次提取其最主要颜色的RGB值。我现在要做的是确定每个值的颜色。例如,我希望它为(42,71,101)返回“蓝色”或为(187,121,133)返回“紫色”。这对我来说足以得到红色,橙色,黄色,绿色,蓝色或紫色的结果(不需要粉红色或绿松石:))
我看到了关于OpenCV和Python颜色检测的post,但它并不是我需要的,因为它创建了一个掩码,我正在寻找一个更简单的输出。
困难的部分是确定上边界和下边界是什么,因为我需要它来处理任何RGB值。
有什么建议吗?
答案 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