Python字符串到颜色

标签 python

我有一个包含数千种不同颜色的数据库。我想将它们映射到列表中的一种颜色。

在此之前,这个颜色数据库只有几百种,我使用类似下面的代码来管理它。随着这个未分类颜色的数据库不断增长,我每周都要花很多时间来绘制 map ,这现在变得无法维护了。

我怎样才能改进这个或者什么是更好的方法?

mapped_colours = ['Red', 'Green', 'Yellow', 'Blue', 'White', 'Black', 'Pink', 'Purple'...]

colour_map_dict = {
    'olive': 'Green',
    'khaki': 'Green'
}

def classify_colour(colour):
    for mp in mapped_colours:
        if mp.lower() in colour.lower():
            return mp

    for map, colour in colour_map_dict.items():
        if map in colour.lower():
            return colour

这是传入数据的示例。

 Resin Dark Wash Indi
 Filtered Canyon
 999 Black
 Winter White/Dove Grey
 Midnight/min
 White & black
 Green/White
 Red/White
 Multicolor
 royal blue
 Black Plum Grey
 Rose/ Gold
 Red And White
 Offwht/Gg
 Black Gunmetal
 Berry/Black
 Caramel
 Blue Stone Bleached
 All Tan
 Pale Blush
 Tee
 White / Multi
 00-black
 Flat Foundation
 Baby Blue
 Beige Melange

最佳答案

我会从一个像样的颜色字典开始,将名称映射到给定颜色空间(如 RGB 或 CMYK 或 HSV)中的颜色定义。互联网上有各种套装;您必须预先进行工作以获取它们并将每个数据标准化以使用相同的色彩空间。您可以获得的资源越多,您的映射就越丰富;您的输入集中似乎有大量时尚颜色(油漆?布料?),并且(商业)时尚总是试图通过发明新的颜色名称来区分。

由于颜色空间是有限的,因此您可以通过算法将该空间划分为一组有限的组。然后每个颜色名称将自动映射到给定的组。

环顾四周,一个好的起点是 Wikipedia lists of colour names . compact list应该很容易被机器解析,即使是基本的 HTML 形式,或者你可以使用 MediaWiki API获得更容易解析的原始格式。然后也许添加 other standardised colour name dictionaries ;这里的目标是获得尽可能多的名称​​所有映射到相同的颜色空间

我会将这些名称存储在数据库表中,并准备好一个简单的数学公式来将颜色空间划分为您的基本组。这样,表中的任何颜色都可以映射到(比如)RGB,并将 RGB 映射到简单名称。

接下来,build a simple spell-checker trained on your database of names ,然后首先运行您的输入。您那里有一些非常难以处理的数据,但是训练有素的颜色名称拼写检查器可能可以将 Offwht/Gg 清理成可以匹配的数据。并使用 natural text search找到部分匹配项。

请注意,如果您的图像数据包含您收到的这些颜色名称,您会发现 most prevalent colour in that image ,然后您有另一个名称(来自您的输入数据)-> 要使用的颜色空间映射。

关于Python字符串到颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37830929/

相关文章:

python - Windows 上的 PyGObject 和 cx_freeze

Python 如何替换文本文件中特定行中的特定单词?

python - 如何在目录目录(python)中找到最近修改的文件夹?

python - 有条件地附加多行数据框

c++ - 在另一个全屏应用程序之上显示图形;硬件叠加?

python - 如何使用逗号分隔变量?

python - Django:管理界面中的 OneToOne 下拉菜单和独特的关联

python - 使用稀疏张量为 TensorFlow 中的 softmax 层提供占位符

javascript - 有没有办法用一个按钮和唯一的隐藏值提交多个表单?

python - 数据帧到字符串