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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выбор основных цветов картинки. выделить и создать массив с цветами 
:(
    Опции темы
Shar_nir
Дата 15.10.2007, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Появилась такая проблема:
Необходимо выделить из картинки описанной как TBitmap основные составляющие цвета...
Создать палитру... Причем колличество цветов паллитры может регулироваться пользователем....

Основная проблема в том что если делать банально по числу наибольших повторений цвета пикселя, то получается массив забит оттенками того цвета которого на картинке больше всего...
Таким образом пропадает некотарая часть спектра рисунка...
На фоне синего неба маленький зелёный лист...
Все цвета голубого либо синего оттенков...
зелёный ушёл в нибытие...

Если кто знает как туда программно внести "зелёный" напишите...Плиз... Срочно надо...

PM MAIL   Вверх
Alexeis
Дата 16.10.2007, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


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

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



  Предлагаю сделать для каждого цвета свой вес. Вес тем больше чем больше этого цвета в картинке и тем меньше, чем больше рядом цветов близких оттенков. И добавлять в палитру только цвета с наибольшим весом.


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

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

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


Новичок



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

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



Задать вес. Такая идея приходила, но когда стал реализовывать получилось так:
Цитата

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

получается вель массив забит к примеру синим цветом....

вот только не делал
Цитата

и тем меньше, чем больше рядом цветов близких оттенков

Вот если честно не представляю как это можно сделать...
Как определить программно принадлежность оттенка к тому или инному цвету...

Если есть стандартный алгоритм, то я его наверное не знаю...

решение задачи в моём представлении выглядит так:
  • определить максимальное число цветов картинки...
  • Определить коэффицент принадлежности оттенка к цвету...
    т.е. необходимо выделить порог в пределах которого все оттенки определённого цвета:=этому цвету; а далее др цвет, зависит от величины массива цветов и от пункта (1)
  • !!! Главное!!! перебор всей картинки, отсеивание оттенков, заполнение массива!!!
  • вывод результата и т.п. и Т.Д.

вот пункт три это и не знаю как сделать отсев!!!

Просто с цветом работаю можно сказать в первый раз...
 smile 

PM MAIL   Вверх
Alexeis
Дата 16.10.2007, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


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

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



Цитата(Shar_nir @  16.10.2007,  17:22 Найти цитируемый пост)
Вот если честно не представляю как это можно сделать...
Как определить программно принадлежность оттенка к тому или инному цвету...

  Да просто по степени близости их RGB составляющих например есть распространенный цвет 255 117 35 и 2 мало распространенных 
1й 253 117 35 и 2й 114 12 83. Очевидно что 1й близок к распространенному, так как его красная составляющая отличается всего на 2е единицы потому его вес должен быть малым. у распространенного цвета вес тоже уменьшится, но так как его много то его вес будет достаточным чтобы попасть в палитру. Из мало распространенных у 114 12 83 будет больше все, так как у него нет близкого соседа, вот он и попадет в палитру вместо 253 117 35.


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

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

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


Новичок



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

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



ну в принципе да.....
только как только начинаю писать, ничего не получается....
может руки не от туда растут....
Всё поятно, просто, логично, но не получается....
пасибо за наводку....
буду ломать голову(ладно бы себе)

PM MAIL   Вверх
Alexeis
Дата 17.10.2007, 08:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


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

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



Цитата(Shar_nir @  16.10.2007,  21:53 Найти цитируемый пост)
только как только начинаю писать, ничего не получается....

  Я бы сделал так. Сначала сделал массив всех цветов. Затем для каждого цвета прошелся по всем цветам палитры и проверил если нашел цвет отличающийся всего на 1 единицу по одной из составляющей то цвету -10 рейтинга если на 2е то -7 на 3 -5 и так например до 10ти если отличается на 10 то -1 рейтинга. За каждые 10 повторений цвета в картинке можно давать например по 1му очку рейтинга. 

  После этого всего сортируем цвета по рейтингу в порядке убывания. Берем только первые 256 цветов с максимальным рейтингом.


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

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

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


Новичок



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

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



какого размера делать первоначальный массив? по всей видимости по колличеству цветов картинки????
как узнать это колличество???

PM MAIL   Вверх
Alexeis
Дата 17.10.2007, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


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

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



Сначала выделить например на 2000, если не поместиться, то удлинить на 100% и так дальше удлинять. 


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

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

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

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

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

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

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


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

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


 




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


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

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