![]() |
|
Модераторы: Snowy, Alexeis, MetalFan |
![]()
|
|
| Shar_nir |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 1.2.2007 Где: планета Zемля Репутация: нет Всего: нет |
Появилась такая проблема:
Необходимо выделить из картинки описанной как TBitmap основные составляющие цвета... Создать палитру... Причем колличество цветов паллитры может регулироваться пользователем.... Основная проблема в том что если делать банально по числу наибольших повторений цвета пикселя, то получается массив забит оттенками того цвета которого на картинке больше всего... Таким образом пропадает некотарая часть спектра рисунка... На фоне синего неба маленький зелёный лист... Все цвета голубого либо синего оттенков... зелёный ушёл в нибытие... Если кто знает как туда программно внести "зелёный" напишите...Плиз... Срочно надо... |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Предлагаю сделать для каждого цвета свой вес. Вес тем больше чем больше этого цвета в картинке и тем меньше, чем больше рядом цветов близких оттенков. И добавлять в палитру только цвета с наибольшим весом.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Shar_nir |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 1.2.2007 Где: планета Zемля Репутация: нет Всего: нет |
Задать вес. Такая идея приходила, но когда стал реализовывать получилось так:
получается вель массив забит к примеру синим цветом.... вот только не делал
Вот если честно не представляю как это можно сделать... Как определить программно принадлежность оттенка к тому или инному цвету... Если есть стандартный алгоритм, то я его наверное не знаю... решение задачи в моём представлении выглядит так:
вот пункт три это и не знаю как сделать отсев!!! Просто с цветом работаю можно сказать в первый раз... |
||||
|
|||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Да просто по степени близости их RGB составляющих например есть распространенный цвет 255 117 35 и 2 мало распространенных 1й 253 117 35 и 2й 114 12 83. Очевидно что 1й близок к распространенному, так как его красная составляющая отличается всего на 2е единицы потому его вес должен быть малым. у распространенного цвета вес тоже уменьшится, но так как его много то его вес будет достаточным чтобы попасть в палитру. Из мало распространенных у 114 12 83 будет больше все, так как у него нет близкого соседа, вот он и попадет в палитру вместо 253 117 35. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Shar_nir |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 1.2.2007 Где: планета Zемля Репутация: нет Всего: нет |
ну в принципе да.....
только как только начинаю писать, ничего не получается.... может руки не от туда растут.... Всё поятно, просто, логично, но не получается.... пасибо за наводку.... буду ломать голову(ладно бы себе) |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Я бы сделал так. Сначала сделал массив всех цветов. Затем для каждого цвета прошелся по всем цветам палитры и проверил если нашел цвет отличающийся всего на 1 единицу по одной из составляющей то цвету -10 рейтинга если на 2е то -7 на 3 -5 и так например до 10ти если отличается на 10 то -1 рейтинга. За каждые 10 повторений цвета в картинке можно давать например по 1му очку рейтинга. После этого всего сортируем цвета по рейтингу в порядке убывания. Берем только первые 256 цветов с максимальным рейтингом. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Shar_nir |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 1.2.2007 Где: планета Zемля Репутация: нет Всего: нет |
какого размера делать первоначальный массив? по всей видимости по колличеству цветов картинки????
как узнать это колличество??? |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Сначала выделить например на 2000, если не поместиться, то удлинить на 100% и так дальше удлинять.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
![]()
|
| Правила форума "Delphi: Звук, графика и видео" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |