【问题标题】:Determine what color is this RGB tuple确定这个 RGB 元组是什么颜色
【发布时间】:2017-12-09 23:27:29
【问题描述】:

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

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

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

有什么建议吗?

【问题讨论】:

  • 旁注:通常最好使用 HSV 颜色空间进行图像分割,因为 B、G 和 R 通道都与光照量相关。也不要忘记 OpenCV 使用 BGR 格式,而不是 RGB。

标签: python image opencv colors


【解决方案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

【讨论】:

    猜你喜欢
    • 2016-05-08
    • 1970-01-01
    • 2020-07-18
    • 2019-03-23
    • 2019-07-01
    • 2011-11-03
    • 2011-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多