Квантование уменьшения цвета PythonPython

Программы на Python
Anonymous
Квантование уменьшения цвета Python

Сообщение Anonymous »


Я ищу умный способ уменьшить количество цветов, сохранив при этом редкие оттенки.

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


Изображение



Изображение



Изображение


И в уменьшении слишком много очень похожих цветов и оттенков оранжевого и серого. (даже в 32 цвете, который мне не нужен).

Поэтому мне интересно, существует ли своего рода уменьшение цвета, сохраняющее оттенок, с взвешиванием разницы в оттенках. Я перепробовал много библиотек, но ни одна из них не справилась с этой задачей. Это Imagemagick.

Или мне придется реализовать это самому?

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

Вернуться в «Python»