Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Узнать цвет из тройки


Автор: Evgenijj128 5.5.2009, 13:46
Дано три байта цвета R G B.
Необходимо найти основной цвет. Так же желательно найти яркость цвета.
Крайне желательно оперировать целыми числами.
В моей программе происходит захват изображения в диб массив, а потом найти надо пятна определенного цвета.
Те смотрим пиксель и надо, например ,определить что он красный или зеленый.

Кто знает формулу ? 

Автор: Akina 5.5.2009, 13:58
Цитата(Evgenijj128 @  5.5.2009,  14:46 Найти цитируемый пост)
желательно найти яркость цвета

Приводишь к grayscale - вот тебе и относительная яркость.

Цитата(Evgenijj128 @  5.5.2009,  14:46 Найти цитируемый пост)
Необходимо найти основной цвет

А вот тут определеиться бы, что это...

Автор: Evgenijj128 5.5.2009, 15:30
Основной цвет-- цвет который определяется человеком. Те множество троек RGB может человеком определятся,например, как красный цвет.

Автор: Akina 5.5.2009, 15:39
Цитата(Evgenijj128 @  5.5.2009,  16:30 Найти цитируемый пост)
Основной цвет-- цвет который определяется человеком

Значит, нужно определить константно базовые цвета, и полагать основным тот, для которого, скажем, сумма квадратов отклонений интенсивностей компонентов минимальна.

Автор: ksnk 5.5.2009, 15:41
http://en.wikipedia.org/wiki/HSL_and_HSV. В целых числах остаться не получится ;-)
Если преобразовать RGB в HSV, то первая цифра из получившейся 3-ки и будет цветом, вторая - "серостью" цвета, третья яркость....

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)