我想请问,我在获得canvas的某个颜色的RGBA值后,如何和指定的颜色数组里的颜色匹配。
我想要将获取到的颜色和数组内的颜色匹配,相近的颜色替换掉获取到的颜色!
请问有什么可以可以指教的方法吗?目前不清楚该如何去匹配!不知道如何找相近值!
我想请问,我在获得canvas的某个颜色的RGBA值后,如何和指定的颜色数组里的颜色匹配。
我想要将获取到的颜色和数组内的颜色匹配,相近的颜色替换掉获取到的颜色!
请问有什么可以可以指教的方法吗?目前不清楚该如何去匹配!不知道如何找相近值!
13 回答12.8k 阅读
7 回答2k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
2 回答875 阅读✓ 已解决
6 回答922 阅读✓ 已解决
4 回答986 阅读✓ 已解决
计算距离最小的颜色即可,颜色距离的算法有很多,可参考维基百科
https://zh.wikipedia.org/wiki...
最简单的方法当然就是空间距离算法,就是下值取平方根:
(r2-r1)^2 + (g2-g1)^2 + (b2-b1)^2
但实际情况是,这个“距离“和人眼感受的“距离”并不一致,更好的算法是把RGB先转为LAB再进行计算,当然还有更好的算法,请参考上面的文档。