您必须计算每种颜色的距离,然后选择最小的颜色。
sqrt((r-r1)^2+(g-g1)^2+(b-b1)^2)
更好的方法可能是合并加权值以计算距离,例如转换RGB-> YUV时使用的值:
Y = 0.299 * R + 0.587 * G + 0.114 * B
在这种情况下,您将使用
sqrt(((r - r1) * .299)^2 + ((g - g1) * .587)^2 + ((b - b1) * .114)^2)
当然,由于您不需要确切的距离,只需进行比较即可,您可能并且应该跳过平方根,进行最后的计算:
((r - r1) * .299)^2 + ((g - g1) * .587)^2 + ((b - b1) * .114)^2