Median cut - это алгоритм сортировки данных произвольного количества измерений в серии наборов путем рекурсивного вырезания каждого набора данных в средней точке по самому длинному измерению. Медианное срезание обычно используется для квантования цвета . Например, чтобы уменьшить изображение с 64 тыс. Цветов до 256 цветов, используется средний разрез, чтобы найти 256 цветов, которые хорошо соответствуют исходным данным. [1]
Реализация цветового квантования
Предположим, у нас есть изображение с произвольным количеством пикселей и мы хотим сгенерировать палитру из 16 цветов. Поместите все пиксели изображения (то есть их значения RGB ) в корзину . Выясните, какой цветовой канал (красный, зеленый или синий) среди пикселей в сегменте имеет наибольший диапазон, затем отсортируйте пиксели в соответствии со значениями этого канала. Например, если синий канал имеет наибольший диапазон, то пиксель со значением RGB (32, 8, 16) меньше пикселя со значением RGB (1, 2, 24), потому что 16 <24. После сортировки корзины переместите верхнюю половину пикселей в новую корзину. (Именно этот шаг дает название алгоритму медианного отсечения; сегменты делятся на два по медиане списка пикселей.) Повторите процесс для обоих сегментов, получив 4 сегмента, затем повторите для всех 4 сегментов, давая у вас 8 ведер, затем повторите на всех 8, получив 16 ведер. Усредните пиксели в каждом ведре, и у вас будет палитра из 16 цветов.
Поскольку количество сегментов удваивается с каждой итерацией, этот алгоритм может генерировать только палитру с количеством цветов, равным степени двойки . Чтобы создать, скажем, 12-цветовую палитру, можно сначала создать 16-цветовую палитру и каким-то образом объединить некоторые цвета.
Смотрите также
Рекомендации
- ^ Стивен Segenchuk (5 мая 1997). «Обзор методов квантования цвета» . п. 4 . Проверено 24 апреля 2014 года .