В базисе RGB тоже можно посчитать. Сначала выбирай центр кластера. Эталонный синий с которым хочешь сравнивать. Дальше для всех цветов считай просто декартово расстояние. И если допустим оно будет меньше какой-то величины- то близко к эталону. Вот неполный пример на другом языке. Можно как-то дописать на Python.
public double getDistance(int color1,int color2) {
double rv = 0.299 * (getRPixel(color1) - getRPixel(color2));
double gv = 0.587 * (getGPixel(color1) - getGPixel(color2));
double bv = 0.114 * (getBPixel(color1) - getBPixel(color2));
return sqrt(rv * rv + gv * gv + bv * bv);
}
Можно выбрать базис HSV, тогда для похожести брать измерение H (Hue) как эталон.
Но цветовой тон - вращается. Тоесть надо учитывать его как часовую стрелку например без 5 минут 12
близко к без 15 минут и к 12:05 одинаково.