3
A
回答
1
您可以尝试查找预定义颜色与用户定义颜色之间的平方和差异,并选择具有最小“距离”的预定义颜色。
E.g.假设用户定义的颜色是[120 300 200]
和预定义的颜色是[100 250 150]
,然后平方差之和的分数为:
(120-100)*(120-100) + (300-250)*(300-250) + (200-150)*(200-150) = 5400
- 并选择prefefined颜色用最少的差异。
1
这引发了一个问题,或者说颜色是多么接近。
你将需要尝试这一点,颜色不是所有的数学。如果想要找出三维空间中两点之间的距离(有三种颜色),给定color1和color2的数学公式为:((r2-r1)^ 2 +(b2-b2)^ 2 +(g2-g1)^2)^ 0.5(为了比较目的,最终平方根不是必需的)。
可能更好的方法是在HSB空间进行计算,可能只是看Hue。
0
首先,你应该定义一个距离函数。平凡的一个是矢量长度函数:所有维度的平方差之和。
然后,只需穿过您的阵列,然后选择衣橱(最小距离)。
2
您需要确定您正在测试的颜色空间。
HSL可以说比RGB更好的色彩空间,因为您可以给予“色调差异”更多的权重,减少“亮度”。在RGB空间中,您需要歪曲您的差异,因为眼睛比其他颜色更适合辨别绿色的色调。
相关问题
- 1. 查找最近的RGB颜色
- 2. 在颜色范围内寻找最接近的颜色匹配
- 3. 将RGB颜色转换为C中最接近的ACI颜色#
- 4. RGB最接近预定义的颜色
- 5. 如何将256色转换为最接近的匹配RGB颜色?
- 6. 如何使用C#中两种颜色之间的rgb差异来找到最接近的匹配?
- 7. 找到最接近的颜色
- 8. 找最接近的匹配使用JavaScript
- 9. 寻找最接近的匹配
- 10. 将rgb颜色转换为最接近的有效CSS3颜色名称
- 11. 从std :: map选择最接近的RGB颜色
- 12. 查找最近的字符串匹配
- 13. 查找给定CIEL的最接近sRGB可表示的颜色* a * b *颜色
- 14. 使用.net查找最接近的网页安全颜色?
- 15. 最接近的匹配
- 16. PIL返回的RGB值与RGB颜色不匹配
- 17. 如何匹配RGB颜色与RGBA颜色
- 18. 从数据库中查找最匹配的颜色
- 19. jquery查找最接近的匹配元素
- 20. SQL查找近似匹配
- 21. 如何获得接近另一种颜色的颜色的rgb值?
- 22. 用十六进制颜色寻找最近的PMS颜色?
- 23. MySQL的找到最近的匹配行
- 24. PHP的麻烦最匹配的颜色
- 25. 查找给定颜色的相近颜色
- 26. 匹配颜色的最佳算法。
- 27. 分析图像并与最接近的调色板匹配
- 28. MySQL:选择最接近的匹配?
- 29. Awk到最接近的匹配
- 30. 返回最接近的匹配对象
谢谢雅各布。我可以存储每种预定义颜色的UIColor值,并根据其浮点值执行最接近的比较? – yesimarobot 2009-11-20 02:42:00
是的,你可以做到这一点。如果你想让速度非常快,你可以用预定义的颜色来构建KD树 - 这将使得查询非常快。否则,你可以做一个暴力 - 比较每种颜色。 – Jacob 2009-11-20 03:47:39
很酷。我看最多不超过1000个comarisons。我在php中实现了你的建议,效果很好。我期待为iPhone实现这一点。 KD树是否值得mytime? – yesimarobot 2009-11-20 04:09:07