2expres 7 Report post Posted April 29, 2017 У меня задача. Задается количество цветов (16, 32, 64) и есть 24-битное изображение. Как правильно привести изображение к заданной палитре (16, 32 или 64 цвета), чтобы изображение сильно не искажалось. Простое отбрасывание разрядов не предлагать. Нужен именно алгоритм, а не готовое изображение. Заранее спасибо за ответы. Share this post Link to post Share on other sites
Smorodov 569 Report post Posted April 29, 2017 Подойдет любой кластеризатор, например: kmeans, гауссовы смеси, для особо изощренных, можно использовать нейронные сети. Share this post Link to post Share on other sites
2expres 7 Report post Posted April 29, 2017 24 минуты назад, Smorodov сказал: Подойдет любой кластеризатор, например: kmeans, гауссовы смеси, для особо изощренных, можно использовать нейронные сети. Кластеризация - это почти что сегментация изображения, а задача стоит обратная: упростить сегментацию используя меньшую цветность. Нет ли более примитивных средств? Share this post Link to post Share on other sites
Smorodov 569 Report post Posted April 29, 2017 А, наверное я неправильно понял. Посмотрите тогда color dithering , например здесь есть: https://github.com/dpiccone/dithering_algorithms Share this post Link to post Share on other sites
2expres 7 Report post Posted May 3, 2017 В 29.04.2017 at 19:14, Smorodov сказал: А, наверное я неправильно понял. Посмотрите тогда color dithering , например здесь есть: https://github.com/dpiccone/dithering_algorithms Спасибо. Дизеринг - это интересная вещь для формирования недостающего цвета шахматкой из доступной палитры цветов. Но для сегментации дает отрицательный результат, увеличивая количество сегментов. Может кто знает в формате *.GIF применяется политра цветов. Есть политры фиксированные и оптимизированные. Где можно почитать про алгоритм получения оптимизированной палитры? http://citforum.ru/internet/webd/article_8.shtml Share this post Link to post Share on other sites
Smorodov 569 Report post Posted May 3, 2017 Как я понял, в статье по ссылке упоминается как раз подход с k-means сегментацией. Цвета палитры это центры кластеров. Share this post Link to post Share on other sites
2expres 7 Report post Posted May 3, 2017 Смотрел алгоритм k-means, имею даже программу сегментации на базе этого алгоритма. Фотографию 24 МП обрабатывает 28 минут!!! Нет ли другого быстрого пусть и менее качественного алгоритма? Share this post Link to post Share on other sites
Smorodov 569 Report post Posted May 3, 2017 Ну так можно же фотографию 24 MP уменьшить до 0.3 MP и собрать ту же статистику намного быстрее. Ну или собирать данные с заданным шагом, а не каждый пиксель, а в одной из программ я просто 100000 точек со случайными координатами собирал и по ним кластеры считал. Share this post Link to post Share on other sites