Преобразование изображения RGB в индексируемое изображение
[X, карта] = rgb2ind (RGB, n)
X = rgb2ind (RGB, карта)
[X, карта] = rgb2ind (RGB, tol)
[___] = rgb2ind (___, dither_option)
[X,map] = rgb2ind(RGB,n)
преобразовывает изображение RGB в индексируемое изображение X
с помощью минимального квантования отклонения и размывания. map
содержит в большинстве цветов n
. n
должен быть меньше чем или равен 65 536.
X = rgb2ind(RGB, map)
преобразовывает изображение RGB в индексируемое изображение X
с палитрой map
с помощью обратного алгоритма палитры и размывания. size(map,1)
должен быть меньше чем или равен 65 536.
[X,map] = rgb2ind(RGB, tol)
преобразовывает изображение RGB в индексируемое изображение X
с помощью универсального квантования и размывания. map
содержит в большинстве цветов (floor(1/tol)+1)^3
. tol
должен быть между 0,0 и 1.0.
[___] = rgb2ind(___,dither_option)
включает или отключает размывание. dither_option
может быть одним из этих значений.
'dither' (значение по умолчанию) | Dither, при необходимости, чтобы достигнуть лучшего цветного разрешения за счет пространственного разрешения |
'nodither' | Карты каждый раскрашивает оригинальное изображение к самому близкому цвету в новой карте. Никакое размывание не выполняется. |
Значения в результирующем изображении X
является индексами в палитру map
и не должен использоваться в математической обработке, такой как фильтрация операций.
Входное изображение может иметь класс uint8
, uint16
, single
или double
. Если длина map
меньше чем или равна 256, выходное изображение имеет класс uint8
. В противном случае выходное изображение имеет класс uint16
.
Значение 0
в выходном массиве, X
соответствует первому, раскрашивает палитру.
Если вы задаете tol
, rgb2ind
использует универсальное квантование, чтобы преобразовать изображение. Этот метод включает сокращение куба цвета RGB в меньшие кубы длины tol
.
Если вы задаете n
, rgb2ind
использует минимальное квантование отклонения. Этот метод включает сокращение куба цвета RGB в меньшие поля (не обязательно кубы) различных размеров, в зависимости от того, как цвета распределяются в изображении. Если входное изображение на самом деле использует меньше цветов, чем номер, вы задаете, выходная палитра также меньше.
Если вы задаете map
, rgb2ind
использует отображение палитры, которое вовлекает нахождение цветов в map
, которые лучше всего совпадают с цветами в изображении RGB.
Универсальное Квантование — Универсальное квантование сокращает куб цвета RGB в меньшие кубы длины tol
. Например, если вы задаете tol
0,1, края кубов являются одной десятой длина куба RGB. Общее количество маленьких кубов:
n = (floor(1/tol)+1)^3
Каждый куб представляет единственный цвет в выходном изображении. Поэтому максимальной длиной палитры является n
. rgb2ind
удаляет любые цвета, которые не появляются во входном изображении, таким образом, фактическая палитра может быть значительно уменьшенной, чем n
.
Минимальное Квантование Отклонения — Минимальное квантование отклонения сокращает куб цвета RGB в меньшие поля (не обязательно кубы) различных размеров, в зависимости от того, как цвета распределяются в изображении. Если входное изображение на самом деле использует меньше цветов, чем заданный номер, выходная палитра также меньше.
Обратная Палитра — обратный алгоритм палитры квантует заданную палитру на 32 отличных уровня на компонент цвета. Затем для каждого пикселя во входном изображении найден самый близкий цвет в квантованной палитре.
[1] Спенсер В. Томас, "Эффективное Обратное Вычисление Карты цветов", Графические Драгоценные камни II, (редактор Джеймс Арво), Academic Press: Бостон. 1991. (включает исходный код),