繁体   English   中英

Objective C找到最接近的颜色(rgb)匹配

[英]Objective C Find closest color (rgb) match

我有一个预定义的rgb值数组。 我希望能够将用户定义的颜色与我的数组进行比较,并返回Objective C中最接近的匹配项。

任何帮助是极大的赞赏。

您需要确定要测试的色彩空间。

HSL可以说是比RGB更好的色彩空间,因为你可以赋予“色调差异”更多的权重而不是“亮度”。 在RGB空间中,你需要扭曲你的差异,因为眼睛比其他颜色更能辨别绿色。

您可以尝试在预定义颜色和用户定义颜色之间找到平方差 - 并选择具有最小“距离”的预定义颜色。

例如,假设用户定义的颜色是[120 300 200]并且预定义的颜色是[100 250 150] ,那么差异的平方和得分的总和是:

(120-100)*(120-100) + (300-250)*(300-250) + (200-150)*(200-150) = 5400 - 并选择差异最小的预定颜色。

这引出了问题或颜色的接近程度。

你需要尝试这个,颜色不是全部数学。 如果想要找到3D空间中两点之间的距离(有三种颜色),给定color1和color2的数学将是:((r2-r1)^ 2 +(b2-b1)^ 2 +(g2-g1) ^ 2)^ 0.5(为了比较目的,最终的平方根不是必需的)。

可能更好的方法是在HSB空间中进行计算,可能只是看Hue。

首先,您应该定义距离函数。 平凡的是矢量长度函数:所有维度的差异平方和。

然后只需运行您的阵列并选择壁橱(最小距离)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM