我有一个颜色的HSV值。我需要将它映射到我的颜色列表中的最粗颜色{红色,绿色,蓝色,灰色,橙色,紫色,黄色,黑色,白色,金色}。
如何进行此映射。有人告诉我只检查色调范围。例如:红色是0-10和320-260(例如),但颜色也取决于S和V值,并且色调在更改这些值时会发生变化。
我的问题是:如何将hsv值映射到列表中的颜色。
请建议。
提前致谢
PS:我在java中编写代码
编辑:
示例:红色hsv的范围从(0,100,100)到(12,100,100)。但是当我改变S和V值时,红色范围从(0,50,50)到(3,50,50)。更改HSV值会改变我的范围。因此,颜色名称取决于S和V.此外,202,19,58 hsv是灰色的,因此是154,4,56。但灰色的hsv是0,50,50。那我如何从HSV确定灰色呢?我的HSV功能返回202,19,59。使用不同的S和V值时,颜色变为绿色,蓝色,灰色。请告诉我如何识别我的颜色。
目前,我正在寻找最接近的距离来比较我的HSV和DB颜色HSV以返回颜色名称。
答案 0 :(得分:0)
这句话有点不清楚你的意思:
但颜色也取决于S和V值,并且在更改这些值时色调会发生变化。
您的列表仅包含10种颜色,而不包含浅蓝色。因此,根据我的理解,您最好的选择是按照某人的建议检查色调值,并使用S和V值来确定黑人或白人的亲密度。 我发现以下文章对于理解HSV配色方案非常有用:http://learn.leighcotnoir.com/artspeak/elements-color/hue-value-saturation/
如果您能解释更多,我将很乐意尝试进一步提供帮助。