2017-10-10 37 views
-2

我有一种颜色的HSV值。我需要将其映射到我的颜色列表(红色,绿色,蓝色,灰色,橙色,紫色,黄色,黑色,白色,金色)中最冷的颜色。给定HSV值的颜色/色调名称

我该如何做这个映射。有人告诉我只是检查色调范围。例如:红色是0-10和320-260(例如),但颜色也取决于S和V值,并且在改变这些值时色彩会发生变化。

我的问题是:如何将我的hsv值映射到列表中的颜色。

请建议。

预先感谢

PS:我写的代码在Java

编辑:

实施例:红色HSV从(0100100)至(12100100)。但是当我改变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

我已经低估了这个问题,因为这是一个零努力的需求转储。如果您可以[编辑]您的问题以向我们展示您的尝试的[最小,完整和可验证示例](http://stackoverflow.com/help/mcve),则可以撤回此退步。 –

+0

尝试[将颜色转换为RGB](https://docs.oracle.com/javase/7/docs/api/java/awt/Color.html#HSBtoRGB(float,%20float,%20float)),然后[比较与此](https://stackoverflow.com/a/4126159/4858751) – davidchoo12

回答

0

这是一个有点不清楚你的这句话的意思是:

但颜色还取决于S和V值并在改变这些值的色差变化。

您的列表只包含10种颜色,不包含例如浅蓝色。所以根据我的理解,您最好的选择是按照某人的建议检查色调值,也可以使用S和V值来确定与黑色或白色的接近程度。 我发现以下文章对于理解HSV颜色方案非常有用:http://learn.leighcotnoir.com/artspeak/elements-color/hue-value-saturation/

如果您能解释更多,我会很乐意尝试和帮助进一步。