我想知道是否有现有的数学算法,这可以帮助我找到我需要的解决方案。
我有一个输入颜色:
(229,67,99)。
我有10种预定义颜色,我想找到与输入颜色非常匹配的颜色。
到目前为止,我有3个NSArrays(红色,蓝色,绿色)。在每个数组中,我有10个值。我目前正在使用二进制搜索将输入颜色的值四舍五入到每个数组中最接近的值。
现在我已经得到:r = 230,g = 126,b = 34但这一起并没有制作出预定义的颜色,而是产生了一种未预定义的新颜色。
所以我做的是找到了3种预定义颜色,这些颜色具有其中一种值(颜色最接近红色值,颜色最接近绿色值,颜色最接近蓝色值。
一个。 ( 230 ,126,34)
B中。 (142, 68 ,173)
℃。 (39,174, 96 )
问题在于,根据我预定义的颜色,这3个中没有一个碰巧是最接近的。事实上,它总体上接近另一种预定义的颜色:
d。 ( 231 , 76 , 60 )
所有这些颜色的绝对差异是
总差异:( A = 125,B = 162,C = 299, D = 14 )
所以我的问题是......是否有现成的算法来达到最小的总差异?接近它的最佳方式是什么?
我知道如何到达14,但我的问题是如何比较所有预定颜色之间的总差异?