Russian Qt Forum

Qt => Общие вопросы => Тема начата: andrew.k от Июль 11, 2012, 16:19



Название: [Решено] Яркость цвета
Отправлено: andrew.k от Июль 11, 2012, 16:19
Кто разбирается в цветовых моделях, подскажите, как отличить визуально светлый цвет от визуально темного.
Т.е. разделить цвета на два лагеря: темные, черные, синие.. и яркие, красные, желтые...
Нужно для того, чтобы отрисовать белую либо черную рамку вокруг цветного квадратика.

Сейчас использую значение компоненты V(яркость) в модели HSV с порогом в 200.
Но вижу, что не совсем хорошо. Некоторые цвета визуально достаточно темные, но V у них равно 255.

Думаю эта задача тривиальная и должна быть известна.


Название: Re: Яркость цвета
Отправлено: andrew.k от Июль 11, 2012, 16:20
думаю еще попробовать складывать три компонента RGB и сравнивать с некоторым порогом.


Название: Re: Яркость цвета
Отправлено: Igors от Июль 11, 2012, 16:44
стандартная формула перевода в grayscale

gray = red * 0.3 + green * 0.59 + blue * 0.11;


Название: Re: Яркость цвета
Отправлено: andrew.k от Июль 11, 2012, 16:49
стандартная формула перевода в grayscale

gray = red * 0.3 + green * 0.59 + blue * 0.11;
Спасибо. Оно) Сейчас попробую.

Хотя, конечно, настолько точно мне не надо, использовал такую:
return color.red() + color.green() + color.blue() / 2 > 150;


Название: Re: Яркость цвета
Отправлено: andrew.k от Июль 11, 2012, 16:53
стандартная формула перевода в grayscale

gray = red * 0.3 + green * 0.59 + blue * 0.11;
Пожалуй оставлю эту формулу. Все-таки стандартная)
Еще раз спасибо