2017-10-10 2200 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/

如果您能解釋更多,我會很樂意嘗試和幫助進一步。