Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Определить приблизительный цвет пикселя 
:(
    Опции темы
DoZENT
Дата 27.4.2010, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 2.6.2006

Репутация: нет
Всего: 1



Добрый день! Есть такая задача. Я беру цвет пикселя функцией
Код

color := pCanvas.Pixels[x,y];

Теперь мне надо определить, к какому из цветов (возьмем несколько основных - черный, белый,синий,красный,зеленый,и несколько других) принадлежит этот пиксель (т.е. оттенком которого он является). Знаю, что задачу можно решить для трех цветов функциями GetRValue, GetBValue, GetGValue. Но мне нужно хотя бы для 10 основных цветов. Кто что посоветует?


--------------------
Какая боль, какая боль, Internet Explorer 5.0...
PM MAIL   Вверх
Alexeis
Дата 27.4.2010, 13:54 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 55
Всего: 459



HSV (цветовая модель)
Т.е. конвертируем в RGB в эту цветовую систему и смотрим параметр "Hue — цветовой тон". Это и есть цвет. 0..359 градусов диапазон. Если будешь работать с целыми числами, то возможно выбрать до 360 цветов.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
DoZENT
Дата 27.4.2010, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 2.6.2006

Репутация: нет
Всего: 1



Цитата(Alexeis @ 27.4.2010,  13:54)
HSV (цветовая модель)
Т.е. конвертируем в RGB в эту цветовую систему и смотрим параметр "Hue — цветовой тон". Это и есть цвет. 0..359 градусов диапазон. Если будешь работать с целыми числами, то возможно выбрать до 360 цветов.

Спасибо за мысль! А как же при этом учитывать параметры S и V? Ведь от них тоже цвет зависит. Вот например, получил я цвет в формате HSV: (32.727272727, 18.644067797, 46.274509804). Следую логике википедии. Параметр H принадлежит диапозону 0..60. Значит, это красный цвет. Но на деле-то нет! Это выглядит как серо-коричневый какой-то, явно не красный smile


--------------------
Какая боль, какая боль, Internet Explorer 5.0...
PM MAIL   Вверх
Alexeis
Дата 27.4.2010, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 55
Всего: 459



Цитата(DoZENT @  27.4.2010,  13:58 Найти цитируемый пост)
Это выглядит как серо-коричневый какой-то, явно не красный

  Ну коричневый это и есть красный со слабой насыщенностью. Можешь тогда сделать группы связанных цветов по признаку насыщенности. Параметр яркость не играет роли. Т.е. сначала выбираешь группу, а потом в группе по насыщенности. При насыщенности -> 0 любой цвет выглядит серым. Можешь добавить его в каждую группу. 
  Вообще, вот тут можно подобрать названия цветов http://yandex.ru/yandsearch?clid=14585&amp...amp;lr=11409#up

Добавлено через 3 минуты и 1 секунду
  Например хорошее название "Цвет влюбленной жабы" smile 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
DoZENT
Дата 27.4.2010, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 2.6.2006

Репутация: нет
Всего: 1



Alexeis, мне кажется, ваш способ не подойдет :( Или я что-то не понимаю. Как это так, параметр яркости не играет роли, если яркость яркость близкая к 0 = черный цвет? Т.е. я имею в виду, что если я учту оттенок и насыщенность (получится у меня, допустим, зеленый цвет), но при этом параметр яркость будет = 10, то в реальности-то это будет черный цвет. А программа будет думать, что зеленый. Может, есть другой способ? Я вот, например, пытался играться с палитрой в delphi, но у меня ничего не получилось :(


--------------------
Какая боль, какая боль, Internet Explorer 5.0...
PM MAIL   Вверх
Alexeis
Дата 27.4.2010, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 55
Всего: 459



Цитата(DoZENT @  27.4.2010,  14:59 Найти цитируемый пост)
если яркость яркость близкая к 0 = черный цвет?

  Это будет темно-темно зеленый smile .

Добавлено через 47 секунд
  Чисто аналитически он останется зеленым при любой яркости отличной от нуля.

Добавлено через 1 минуту и 53 секунды
  Можешь сначала проверить если сумма R G B не превышает 30 то говорить что это черный цвет smile .


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
x128
Дата 28.4.2010, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 29.9.2009

Репутация: 5
Всего: 7



Цитата(DoZENT @ 27.4.2010,  13:17)
...Но мне нужно хотя бы для 10 основных цветов. Кто что посоветует?

Нужно посчитать среднеквадратичное отклонение (err:=sqr(r2-r1)+sqr(g2-g1)+sqr(b2-b1)), где ошибка меньше, тот цвет и максимально похож. Однако результат не всегда будет совпадать с визуальным восприятием. Смотри формулы цветового отличия которые учитывают восприятие цвета человеком.
PM MAIL WWW   Вверх
DoZENT
Дата 28.4.2010, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 2.6.2006

Репутация: нет
Всего: 1



Цитата(Alexeis @  27.4.2010,  16:42 Найти цитируемый пост)
Это будет темно-темно зеленый  .

 smile это понятно) но визуально-то он черный))
x128, спасибо, сейчас попробую


--------------------
Какая боль, какая боль, Internet Explorer 5.0...
PM MAIL   Вверх
Mikel
Дата 29.4.2010, 08:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 882
Регистрация: 30.3.2002
Где: Саратов

Репутация: 1
Всего: 2



На хабре вроде бы статейка была с исходниками про обучение нейронной сети определению цвета. Советую поискать и посмотреть smile


--------------------
...so remember, it's better to burn out than to fade away
PM MAIL ICQ   Вверх
DoZENT
Дата 29.4.2010, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 2.6.2006

Репутация: нет
Всего: 1



Mikel, нашел эту статью http://evm.narod.ru/programming/neuro.html, но там ссылка на исходник дохлая. А без исходника статья бесполезная :(


--------------------
Какая боль, какая боль, Internet Explorer 5.0...
PM MAIL   Вверх
Dimonka2
Дата 30.4.2010, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 19.3.2009

Репутация: нет
Всего: нет



McSeem2 писал примерно о том же, что и X128:

http://www.rsdn.ru/forum/media/701951.1.aspx

Использование "3-х мерного" расстояния - более правильный метод сравнивать цвета.
PM MAIL   Вверх
DoZENT
Дата 30.4.2010, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 2.6.2006

Репутация: нет
Всего: 1



Dimonka2, я вообще не понял, о чем в этой статье. Ни строчки исходников :(


--------------------
Какая боль, какая боль, Internet Explorer 5.0...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.0824 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.