我正在尝试找出如何动态地简化传入的RGB值。
我正在尝试编写一个使用实时相机视图和示例颜色的android应用。我已经研究出如何检测和保存单个颜色值,但是我的目标是使用清晰的范围来简化这些输入值。
示例:当我们检测到Firebrick Red 178,34,34时,它将识别出在定义为Red的预定义范围内的值,并在保存颜色后将其转换为简单的255,0,0。
该应用程序正在统一在一起。如果有人阅读了指导手册,该指导手册将介绍理想的流程,那么我可以了解正在进行的工作以及如何实现。我很困惑。
在此先感谢您的帮助。
答案 0 :(得分:0)
因此,问题在于很难定义“红色”是什么。不仅不同的人有不同的定义,不同的文化也有不同的作用(有些文化并不认为红色和黄色是不同的颜色。事实上,至少今天仍然存在的一种部落文化没有颜色的意思。请参阅{{ 3}}),我们认为颜色是什么。因此,这样做始终是尽力而为型的交易。
您可以做的一件简单的事情就是做一个最小差异算法。有一组颜色参考,然后看哪个与您要查找的颜色之间的色差最小。然后将其作为参考颜色。那会工作的。如果您的设置中有足够的颜色,不会太远。
这只是种工作-尽管rgb在人眼上实际上并不完全相同,并且某些差异比其他差异更重要-非线性。绿色的差异比红色的差异重要10。 [0,20]范围内的差异10可能比[100,120]范围内的差异10或多或少。如果您确实需要这种方法才能很好地工作,则可能需要与研究过颜色以及人眼如何工作的人交谈,以提出自定义算法。曾经在打印机上工作过,所以我们的专家团队弄清楚了要墨水的数字颜色的定义。这里差不多。