按最小距离对RGB颜色列表进行排序

时间:2016-07-05 03:35:28

标签: java algorithm sorting colors rgb

我希望按最小距离对RGB颜色列表进行排序,希望这样可以提供比Luminosity和HSV更好的排序。我使用距离公式计算颜色的距离,但如何根据最小距离对列表进行排序?

2 个答案:

答案 0 :(得分:3)

忘记你有一秒钟的颜色,只需考虑3D(或2D)空间中的点。

你不能简单地排序"按距离分。您可以按距离对某个指定的点X进行排序,但这可能不是您所追求的。

相反,您可能正在寻找的是点的排序,以最小化通过它们的路径的总长度。这实际上是旅行商问题,而且 lot 计算密集程度超过仅排序列表。

理想情况下,您希望使用感知正确的距离函数执行此距离计算 - 这通常意味着使用其中一个标准将您的点转换为实验室空间。

答案 1 :(得分:0)

有几种方法可以使用@yshavit建议的比较器。

我要做的是创建一个新类并指定颜色类型加上比较值double,创建一个新数组,然后根据它们的双值(最小的第一个等)对颜色进行排序,然后再次提取颜色。