Я ищу умный способ уменьшить количество цветов, сохранив при этом редкие оттенки.
Например, если вы возьмете изображение космонавта и добавите небольшой квадрат яркого и разного оттенка (в данном случае зеленого). Цвет теряется, если уменьшить количество цветов до определенного количества. Он присутствует в 256 цветах, но теряется в 32 цветах (см. древовидную схему).



И в уменьшении слишком много очень похожих цветов и оттенков оранжевого и серого. (даже в 32 цвете, который мне не нужен).
Поэтому мне интересно, существует ли своего рода уменьшение цвета, сохраняющее оттенок, с взвешиванием разницы в оттенках. Я перепробовал много библиотек, но ни одна из них не справилась с этой задачей. Это Imagemagick.
Или мне придется реализовать это самому?
Может быть так:
[*]Уменьшите количество цветов до 256 (это подходит почти для всех изображений, меньший объем данных) [*]Просматривайте цвета, сравнивайте и сортируйте довольно похожие цвета с помощью CIEDE2000 DeltaE. [*]получить оставшиеся уникальные цвета из PIL [*]преобразовать в цветовую модель HSV [*]создать гистограмму с определенными интервалами (оттенок 0–10 для красного, 11–30 для оранжевого…) [*]снова прокрутите цвета и увеличьте принятое цветовое расстояние DeltaE на некоторую величину. [*]но сохранять цвет, если сравниваемые цвета выходят за границы интервала гистограммы.
Я не знаю, как проверить границы гистограммы.