Модераторы: LSD, AntonSaburov
  

Поиск:

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


Опытный
**


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

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



Есть картинка, на ней есть область, залитая красно-бордовым градиентом.
Беру цвет нескольких красных пикселей:
0x942518 0x924D46 0x942518 0x824D46.
Числа естественно получаются разные, но все эти точки красного оттенка. Глазами я это конечно вижу. Но нужно это как-то запрограммировать. Грубо говоря, нужно написать метод
boolean isRed(int color)
или даже по другому
byte compareColor(int currentColor, int pattern1, int pattern2) 
сравнить цвет, и определит, к каком образцу он ближе. Т.е. сравниваем пурпурный с красным и зеленым, и получаем 1, т.к. пурпурынй ближе к красному, чем к зеленому.
Или сравнить цвет с образцом с каким-то коэффициентом "похожести":
boolean isColorsSimilar(int currentColor, int baseColor, int accuracy), где accuracy - необходимая точность сравнения.
Как сравнивать цвета? 
Интересует не какое-то готовое решение, а именно сам принцип сравнения.






Это сообщение отредактировал(а) Temdegon - 19.2.2011, 21:02
PM MAIL   Вверх
GZep
Дата 19.2.2011, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

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



Кажется, можно отдельно посчитать разницу каждого спектра. Если эта разница выше установленного лимита хотя бы в одном спектре - вернуть false.

Например:
красный эталон - FF 00 00
на входе для сравнения: EF 00 00
лимит "похожести": A0

Вот и делаем:
Код

If (
    FF - EF > A0//красный спектр
||
    00 - 00 > A0//голубой
||
    00 - 00 > A0//зеленый
  ) return false;

придумал только что, если неправильно - пожалуйста, сильно не пинайтеsmile


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
_Y_
Дата 19.2.2011, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

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



Мне тоже очень интересно. Но при чем здесь Java? Вопрос явно просится в Алгоритмы


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
VictorTsaregorodtsev
Дата 19.2.2011, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Temdegon, если нужен сам принцип сравнения - то почему не взять обычное расстояние между векторами из трех компонент (R,G,B-компоненты)? Позволит как напрямую сравнивать близость цветов между собой, так и ввести порог по похожести.

Если задача на самом деле стоит не так, как она описана - то опишите задачу нормально. Ибо и для задачи квантования палитры (чтобы картинку представить меньшим числом цветов), и для задачи сегментации изображения, и для других задач, основанных на объединении цветов или пикселов в наборы, хороших (точных, быстрых и т.д.) методов разработано много. Тогда, действительно, тема плачет по разделу "алгоритмы".
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




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


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

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