Глядя на преобразование цвета из RGB в HSV , я думаю, что вы можете сделать следующее:
Черный: V
ниже 25
и S
ниже 100
Белый: V
выше 230
, а S
ниже 30
Красный: H
ниже 15
или выше 165
Желтый: H
между 15-45
Зеленый: H
между 45-75
Голубой: H
между 75-105
Синий: H
между 105-135
Пурпурный: H
между 135-165
Можно добавить больше цветов, сузив канал H
или указав оттенки для цветов, например, если 45 < H < 75
, темно-зеленый для V < 128
и светло-зеленый для 128 < V
. Вы должны относиться к черному и белому по-разному в любом случае. Эти значения S
и V
являются только примерами, вы даже можете иметь функции для них. Другие цвета проверяются по оттенкам серого.