将RGB / hex颜色代码映射到一般颜色类别

时间:2015-06-20 06:07:41

标签: colors computer-vision python-imaging-library rgb

是否存在将~16M RGB或十六进制颜色值中的每一个映射到一般颜色族/类别的数据集 - 例如红色,紫色,橙色,米色,棕色等 - 我可以通过编程方式访问或加载到数据库或JSON文档中以交叉反对颜色代码?用例是将样本文件的PIL颜色检测结果分类为购物网站的一小组颜色选择器。如果映射更精细,例如100-200个类别,它也会起作用,因为很容易将它们映射到我自己的目标10-15。我对kNN分类有一定的了解,如果必须的话,我会使用它,但如果已经存在,那么使用静态映射会更容易。

2 个答案:

答案 0 :(得分:3)

您可以使用X11中的表格

http://www.astrouw.edu.pl/~jskowron/colors-x11/rgb.html

为了找到颜色接近度,最好先将颜色转换为Lab颜色空间,以便欧几里德距离具有更多意义,然后最近邻居会产生更好的效果。

答案 1 :(得分:2)

您可以从RGB转换为CIE Lab颜色空间,其中两个颜色选择之间的欧几里德距离在感知上更有意义。以下是OpenCV颜色转换方法(cvtColor)中使用的所有相关颜色空间转换公式的链接:http://docs.opencv.org/modules/imgproc/doc/miscellaneous_transformations.html

由于您的用例是比较两个样本,我建议您除了颜色信息之外还使用纹理描述符(http://www.robots.ox.ac.uk/~vgg/research/texclass/with.html)以获得更好的结果。