rgb2ind

Преобразование изображения RGB в индексируемое изображение

Описание

пример

[X,cmap] = rgb2ind(RGB,Q) преобразует изображение RGB в индексируемое изображение X со связанной палитрой cmap использование минимального квантования отклонения с Q квантованные цвета и размывание.

[X,cmap] = rgb2ind(RGB,tol) преобразует изображение RGB в индексируемое изображение с помощью универсального квантования с допуском tol и размывание.

X = rgb2ind(RGB,inmap) преобразует изображение RGB в индексируемое изображение с помощью обратного алгоритма палитры с заданной палитрой inmap и размывание.

___ = rgb2ind(___,dithering) включает или отключает размывание.

Примеры

свернуть все

Считайте и отобразите истинный цвет uint8 Изображение JPEG туманности.

RGB = imread('ngc6543a.jpg');
figure
imagesc(RGB)
axis image
zoom(4)

Figure contains an axes. The axes contains an object of type image.

Преобразуйте RGB в индексируемое изображение с 32 цветами.

[IND,map] = rgb2ind(RGB,32);
figure
imagesc(IND)
colormap(map)
axis image
zoom(4)

Figure contains an axes. The axes contains an object of type image.

Входные параметры

свернуть все

Изображение RGB в виде m-by-n-by-3 массив.

Типы данных: single | double | uint8 | uint16

Количество квантованных цветов использовало для минимального квантования отклонения в виде положительного целого числа, которое меньше чем или равно 65 536. Возвращенная палитра cmap имеет Q или меньше цветов.

Допуск, используемый для универсального квантования в виде номера в области значений [0, 1]. Возвращенная палитра cmap имеет (floor(1/tol)+1)^3 или меньше цветов.

Введите палитру в виде c-by-3 матрица со значениями в области значений [0, 1]. Каждая строка inmap трехэлементный триплет RGB, который задает красные, зеленые, и синие компоненты одного цвета палитры. Палитра имеет максимум 65 536 цветов.

Типы данных: double

Выполните размывание в виде 'dither' или 'nodither'. Размывание увеличений цветное разрешение за счет пространственного разрешения. Для получения дополнительной информации смотрите dither.

Если вы выбираете 'nodither', затем rgb2ind не выполняет размывание. Вместо этого функция сопоставляет, каждый раскрашивает оригинальное изображение к самому близкому цвету в новой палитре.

Выходные аргументы

свернуть все

Индексируемое изображение, возвращенное как m-by-n матрица неотрицательных целых чисел. Если длина map меньше чем или равно 256, затем выходное изображение имеет класс uint8. В противном случае выходное изображение имеет класс uint16. Значение 0 в выходном массиве X соответствует первому, раскрашивают палитру.

Примечание

Значения в изображении X индексы в палитру map и не должен использоваться в математической обработке, такой как фильтрация операций.

Типы данных: uint8 | uint16

Палитра, возвращенная как c-by-3 матрица со значениями в области значений [0, 1]. Каждая строка cmap трехэлементный триплет RGB, который задает красные, зеленые, и синие компоненты одного цвета палитры. Палитра имеет максимум 65 536 цветов.

Типы данных: double

Алгоритмы

  • Универсальное Квантование — Если вы задаете tol, затем rgb2ind универсальное квантование использования, чтобы преобразовать изображение. Универсальное квантование сокращает куб цвета RGB в меньшие кубы длины tol. Например, если вы задаете tol из 0,1, затем ребра кубов являются одной десятой длина куба RGB. Общее количество маленьких кубов:

    t = (floor(1/tol)+1)^3
    

    Каждый куб представляет один цвет в выходном изображении. Поэтому t максимальная длина палитры. rgb2ind удаляет любые цвета, которые не появляются во входном изображении, таким образом, фактическая палитра может быть меньшей, чем t.

  • Минимальное Квантование Отклонения — Если вы задаете Q, затем rgb2ind квантование отклонения минимума использования. Минимальное квантование отклонения сокращает куб цвета RGB в меньшие поля (не обязательно кубы) различных размеров, в зависимости от того, как цвета распределяются в изображении. Если входное изображение на самом деле использует меньше цветов, чем заданный номер, то выходная палитра также меньше.

  • Обратная Палитра — Если вы задаете входную палитру inmap, затем rgb2ind отображение палитры использования. Обратный алгоритм палитры квантует заданную палитру на 32 отличных уровня на компонент цвета. Затем для каждого пикселя во входном изображении найден самый близкий цвет в квантованной палитре.

Ссылки

[1] Спенсер В. Томас, "Эффективный Обратный Расчет Карты цветов", Графические Драгоценные камни II, (редактор Джеймс Арво), Academic Press: Бостон. 1991. (включает исходный код),

Представлено до R2006a