Сначала вы должны выбрать подходящее цветовое пространство, в котором должны выполняться сравнения цветов (RGB, HSV, HSL, CMYK и т. Д.).
Предполагая, что вы хотите знать, насколько близко две точки в трехмерном пространстве RGB друг к другу, вы можете вычислить пифагорейское расстояние между ними, т.е.
d2 = (r1 - r2)**2 + (g1 - g2)**2 + (b1 - b2)**2;
Это фактически дает вам квадрат расстояния. (Получение квадратного корня не обязательно, если вы сравниваете только квадратные значения.)
Это предполагает, что вы хотите одинаково относиться к значениям R, G и B. Если вы предпочитаете взвешивать отдельные цветовые компоненты, например, что происходит при преобразовании RGB в оттенки серого, вам необходимо добавить коэффициент к каждому члену расстояния, т. Е.
d2 = 30*(r1-r2)**2 + 59*(g1-g2)**2 + 11*(b1-b2)**2;
Предполагается, что популярное преобразование из RGB в оттенки серого состоит из 30% красного + 59% зеленого + 11% синего.
Обновление
Последнее уравнение, вероятно, должно быть
d2 = (30*(r1-r2))**2 + (59*(g1-g2))**2 + (11*(b1-b2))**2;