Algorithm 找到知道距离的第二种颜色

Algorithm 找到知道距离的第二种颜色,algorithm,colors,rgb,similarity,Algorithm,Colors,Rgb,Similarity,我正在做一个项目,在那里我找到了一个颜色组合的图案,并试图找到第二个颜色组合中未知的第二个颜色 例如,如果我有两种颜色(第一双): RGB(60、90、80) RGB(70、50、120) 通过使用最简单的算法,我发现: 距离=sqrt((r2-r1)^2+(g2-g1)^2+(b2-b1)^2) 其中距离57 然后我有第二个颜色组合: RGB(80,45150) RGB(x,y,z) 在这里只知道第一种颜色+距离就找到第二种颜色有点不切实际,有没有关于如何找到类似的颜色的建议,或者关于解决

我正在做一个项目,在那里我找到了一个颜色组合的图案,并试图找到第二个颜色组合中未知的第二个颜色

例如,如果我有两种颜色(第一双):

RGB(60、90、80)
RGB(70、50、120)

通过使用最简单的算法,我发现:

距离=sqrt((r2-r1)^2+(g2-g1)^2+(b2-b1)^2)

其中距离57

然后我有第二个颜色组合:

RGB(80,45150)
RGB(x,y,z)


在这里只知道第一种颜色+距离就找到第二种颜色有点不切实际,有没有关于如何找到类似的颜色的建议,或者关于解决方法的任何好的见解。

欢迎来到StackOverflow

如果只有1种可能的第二种颜色,则可以通过每个R、G和B元素的差来计算距离。因此,RGB(60,90,80)和RGB(70,50,120)之间的距离为(-10,+40,-40)

如果第一种颜色是RGB(80,45150),那么具有相同距离的第二种颜色是RGB(90,5190)


另一种方法是使用距离作为径向距离,但是这将导致无限多个可能的第二颜色

RGB
空间中,第一个颜色点周围有一个球面(如果距离太长,则切割球体)。对于精确距离,你有一个整数方程

dr^2 + dg^2 + db^2 = distance^2
可能有:没有解,对称情况:4个解,8个解,16/24个解,也许更多。所以,我们的任务是找到给出所需和的三元组(2D情况下的c.f.毕达哥拉斯三元组-距离2有4个邻居,距离5有8+4个邻居,距离1.5没有邻居,依此类推)

如果允许一些公差,那么您可以找到更多可能的解决方案

似乎您需要某种约束来限制结果

也可以考虑另一种颜色模型,如<代码> HSV < /代码>(如果颜色感知很重要)