![]() |
Модераторы: Snowy, Alexeis, MetalFan |
![]() ![]() ![]() |
|
DoZENT |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 2.6.2006 Репутация: нет Всего: 1 |
Добрый день! Есть такая задача. Я беру цвет пикселя функцией
Теперь мне надо определить, к какому из цветов (возьмем несколько основных - черный, белый,синий,красный,зеленый,и несколько других) принадлежит этот пиксель (т.е. оттенком которого он является). Знаю, что задачу можно решить для трех цветов функциями GetRValue, GetBValue, GetGValue. Но мне нужно хотя бы для 10 основных цветов. Кто что посоветует? -------------------- Какая боль, какая боль, Internet Explorer 5.0... |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
HSV (цветовая модель)
Т.е. конвертируем в RGB в эту цветовую систему и смотрим параметр "Hue — цветовой тон". Это и есть цвет. 0..359 градусов диапазон. Если будешь работать с целыми числами, то возможно выбрать до 360 цветов. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
DoZENT |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 2.6.2006 Репутация: нет Всего: 1 |
Спасибо за мысль! А как же при этом учитывать параметры S и V? Ведь от них тоже цвет зависит. Вот например, получил я цвет в формате HSV: (32.727272727, 18.644067797, 46.274509804). Следую логике википедии. Параметр H принадлежит диапозону 0..60. Значит, это красный цвет. Но на деле-то нет! Это выглядит как серо-коричневый какой-то, явно не красный ![]() -------------------- Какая боль, какая боль, Internet Explorer 5.0... |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Ну коричневый это и есть красный со слабой насыщенностью. Можешь тогда сделать группы связанных цветов по признаку насыщенности. Параметр яркость не играет роли. Т.е. сначала выбираешь группу, а потом в группе по насыщенности. При насыщенности -> 0 любой цвет выглядит серым. Можешь добавить его в каждую группу. Вообще, вот тут можно подобрать названия цветов http://yandex.ru/yandsearch?clid=14585&...amp;lr=11409#up Добавлено через 3 минуты и 1 секунду Например хорошее название "Цвет влюбленной жабы" ![]() -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
DoZENT |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 2.6.2006 Репутация: нет Всего: 1 |
Alexeis, мне кажется, ваш способ не подойдет :( Или я что-то не понимаю. Как это так, параметр яркости не играет роли, если яркость яркость близкая к 0 = черный цвет? Т.е. я имею в виду, что если я учту оттенок и насыщенность (получится у меня, допустим, зеленый цвет), но при этом параметр яркость будет = 10, то в реальности-то это будет черный цвет. А программа будет думать, что зеленый. Может, есть другой способ? Я вот, например, пытался играться с палитрой в delphi, но у меня ничего не получилось :(
-------------------- Какая боль, какая боль, Internet Explorer 5.0... |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Это будет темно-темно зеленый ![]() Добавлено через 47 секунд Чисто аналитически он останется зеленым при любой яркости отличной от нуля. Добавлено через 1 минуту и 53 секунды Можешь сначала проверить если сумма R G B не превышает 30 то говорить что это черный цвет ![]() -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
x128 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 29.9.2009 Репутация: 5 Всего: 7 |
Нужно посчитать среднеквадратичное отклонение (err:=sqr(r2-r1)+sqr(g2-g1)+sqr(b2-b1)), где ошибка меньше, тот цвет и максимально похож. Однако результат не всегда будет совпадать с визуальным восприятием. Смотри формулы цветового отличия которые учитывают восприятие цвета человеком. |
|||
|
||||
DoZENT |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 2.6.2006 Репутация: нет Всего: 1 |
![]() x128, спасибо, сейчас попробую -------------------- Какая боль, какая боль, Internet Explorer 5.0... |
|||
|
||||
Mikel |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 882 Регистрация: 30.3.2002 Где: Саратов Репутация: 1 Всего: 2 |
На хабре вроде бы статейка была с исходниками про обучение нейронной сети определению цвета. Советую поискать и посмотреть
![]() -------------------- ...so remember, it's better to burn out than to fade away |
|||
|
||||
DoZENT |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 2.6.2006 Репутация: нет Всего: 1 |
Mikel, нашел эту статью http://evm.narod.ru/programming/neuro.html, но там ссылка на исходник дохлая. А без исходника статья бесполезная :(
-------------------- Какая боль, какая боль, Internet Explorer 5.0... |
|||
|
||||
Dimonka2 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 19.3.2009 Репутация: нет Всего: нет |
McSeem2 писал примерно о том же, что и X128:
http://www.rsdn.ru/forum/media/701951.1.aspx Использование "3-х мерного" расстояния - более правильный метод сравнивать цвета. |
|||
|
||||
DoZENT |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 2.6.2006 Репутация: нет Всего: 1 |
Dimonka2, я вообще не понял, о чем в этой статье. Ни строчки исходников :(
-------------------- Какая боль, какая боль, Internet Explorer 5.0... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Звук, графика и видео" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |