Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2014, 15:23   #11
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Спасибо Streletz. Даже беглый взгляд показывает, что описано более подробно, чем в русскоязычном секторе. Переведу, буду дальше разбираться.
Цитата:
Сообщение от WorldMaster Посмотреть сообщение
Самый активный раздел это свободное общение и помощь студентам со смешными задачками.
Я, этот-же вопрос задал на математическом форуме. Там, такая-же чихорда. Эта тема, висит там уже 3-и сутки и ни одного ответа, а активные темы юмор и события в Украине .
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 25.05.2014 в 15:28.
Smitt&Wesson вне форума Ответить с цитированием
Старый 25.05.2014, 15:28   #12
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

--------------
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 25.05.2014, 15:36   #13
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
Хорошо

to WorldMaster
Цитата:
как доходит дело до относительно серьезной задачи то все по кустам
Не хочу никого обидеть, но с этим утверждением я согласен. Можно сказать, даже вынужден согласиться. Сам, в своё время, оказался здесь в подобной ситуации. Вопрос, правда, был в решении не научной, а прикладной задачи, но, в то же время не тривиальной и сложной.
Только, в отличие от Smitt&Wesson, мне повезло значительно меньше. Вообще никто не ответил.
to Smitt&Wesson
Пожалуйста.
Цитата:
Переведу, буду дальше разбираться.
Успехов!
Streletz вне форума Ответить с цитированием
Старый 25.05.2014, 15:58   #14
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Только, в отличие от Smitt&Wesson, мне повезло значительно меньше. Вообще никто не ответил.
Я знаю местную публику, поэтому проявил настойчивость .
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 26.05.2014, 00:08   #15
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

тема чем-то напомнила мне квантование цвета.
когда полноцветную картику нужно привести к индексированной палитре.
самый простой метод тут - median cut (что правда результат по этому методу не самый оптимальный). в комбинации с dither - лучше.
f.hump вне форума Ответить с цитированием
Старый 26.05.2014, 07:02   #16
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от f.hump Посмотреть сообщение
тема чем-то напомнила мне квантование цвета.
когда полноцветную картику нужно привести к индексированной палитре.
самый простой метод тут - median cut (что правда результат по этому методу не самый оптимальный). в комбинации с dither - лучше.
f.hump, посмотрел оба метода, но, это не совсем то, что мне нужно. median cut, уменьшает количество цветов в гамме, до стандартной таблицы цветов. dither, сужает динамический диапазон. Мне же нужно, выделить доминирующие цвета рисунка и исключить промежуточные. При этом, палитра цветов, может быть произвольной.
После того, как я получу "вычищенный" рисунок, его можно будет отредактировать, например в Paint-е.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 26.05.2014, 11:39   #17
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

не знаю про какой median cut вы читали, результатом работы этого метода будет адаптированная палитра содержащая желаемое кол-во цветов.

идея там довольно простая:

есть некоторый цветовой объем (прямоугольный параллелепипед), на каждом шаге выбранный объем делится на два объема. секущая плоскость проходит через цветовой центр масс объема (средний цвет) перпендикулярно одной из цветовых осей. процесс продолжатся до тех пор когда кол-во объемов равно желаемому кол-ву цветов в палитре. цвета палитры определяются цветовыми центрами масс объемов полученных в ходе разбиения исходного цветового объема.


в случае простого median cut объем который делится на следующем шаге выбираться из условия максимального размера: объем у которого красная ширина | синяя ширина | зеленая длина наибольшая. ось которой перепендикулярна плоскость сечения - ось наибольшей ширины выбранного объема.

в случае оптимизированного median cut объем который делится на следующем шаге выбираться из условия максимальной дисперсии.

например:
1. оптимизированный median cut, 4 цвета
2. оптимизированный median cut, 4 цвета, dither
3. оптимизированный median cut, 16 цветов
4. оптимизированный median cut, 16 цветов, dither
Изображения
Тип файла: bmp 904A8197DCE247BE_4.bmp (68.2 Кб, 122 просмотров)
Тип файла: bmp 904A8197DCE247BE_4d.bmp (68.2 Кб, 147 просмотров)
Тип файла: bmp 904A8197DCE247BE_16.bmp (68.2 Кб, 142 просмотров)
Тип файла: bmp 904A8197DCE247BE_16d.bmp (68.2 Кб, 147 просмотров)

Последний раз редактировалось f.hump; 26.05.2014 в 11:41.
f.hump вне форума Ответить с цитированием
Старый 26.05.2014, 11:51   #18
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Это я понял. Но, данный метод хорошо подходит для второго этапа обработки, когда доминирующие цвета уже определены (базовая палитра). Второй этап, это приведение цветов базовой палитры, к цветам, присутствующим в наборе нитей. У акриловых нитей, более 2000 оттенков, так-что проблемы не будет.
Пока, пытаюсь реализовать раделение цветов по кластерам.
Мне, вот в этой формуле не совсем понятно (обведено крамным). Если это степень, то при количестве клатеров больше 100, число получается просто невообразимым. Как это понять?
Формула взята из этого, переведённого файла:
Изображения
Тип файла: jpg Формула1.jpg (22.7 Кб, 87 просмотров)
Вложения
Тип файла: rar Нечеткиеc-means.rar (52.9 Кб, 7 просмотров)
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 26.05.2014 в 12:08.
Smitt&Wesson вне форума Ответить с цитированием
Старый 26.05.2014, 12:10   #19
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

по прежнему не совсем пониманимаю ситуацию. задача, на сколько я понял, описать картинку из тысяч и тысяч цветов более скромным кол-вом цветов.
ну, так median cut это и делает. на входе median cut никакие цвета не определены, цвета палитры определены на выходе из него, на вход идет картинка и цифра обозначающая желаемый размер палитры.
f.hump вне форума Ответить с цитированием
Старый 26.05.2014, 12:27   #20
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от f.hump Посмотреть сообщение
по прежнему не совсем пониманимаю ситуацию. задача, на сколько я понял, описать картинку из тысяч и тысяч цветов более скромным кол-вом цветов.
ну, так median cut это и делает. на входе median cut никакие цвета не определены, цвета палитры определены на выходе из него, на вход идет картинка и цифра обозначающая желаемый размер палитры.
Желаемую палитру, нужно как-то задавать. Этим недостатком страдает и k-means. У меня немного другой подход.
1. Беру картинку и подсчитываю в STL map статистику по каждому входящему в картинку уникальному цвету. На данной картинке их 12766.
2. Берём все уникальные цвета и разбиваем их на кластеры.
3. Выбираем из каждого кластера цвет у которого коэффициет вхождений наибольший. Это и составит нашу базовую палитру.
4. Приводим все промежуточные цвета к базовой палитре.
На втором этапе, если базовых цветов слишком много, проводим приведение цветов к более ограниченной палитре, по Вашему методу, но с цветами, выбранными вручную из базовой.
Вот, как-то так.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 26.05.2014 в 12:31.
Smitt&Wesson вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кластеризация картинки.. goto ∞ Помощь студентам 7 15.04.2013 21:03
Кластеризация Nelli22 Visual C++ 0 23.11.2011 13:11