我希望按最小距离对RGB颜色列表进行排序,希望这样可以提供比Luminosity和HSV更好的排序。我使用距离公式计算颜色的距离,但如何根据最小距离对列表进行排序?
答案 0 :(得分:3)
忘记你有一秒钟的颜色,只需考虑3D(或2D)空间中的点。
你不能简单地排序"按距离分。您可以按距离对某个指定的点X进行排序,但这可能不是您所追求的。
相反,您可能正在寻找的是点的排序,以最小化通过它们的路径的总长度。这实际上是旅行商问题,而且 lot 计算密集程度超过仅排序列表。
理想情况下,您希望使用感知正确的距离函数执行此距离计算 - 这通常意味着使用其中一个标准将您的点转换为实验室空间。
答案 1 :(得分:0)
有几种方法可以使用@yshavit建议的比较器。
我要做的是创建一个新类并指定颜色类型加上比较值double,创建一个新数组,然后根据它们的双值(最小的第一个等)对颜色进行排序,然后再次提取颜色。