exponenta event banner

imapprox

Приблизительное индексированное изображение путем уменьшения количества цветов

Описание

пример

[Y,newmap] = imapprox(X,map,Q) аппроксимирует цвета в индексированном изображении X и соответствующая карта цветов map с использованием квантования минимальной дисперсии с Q квантованные цвета. imapprox возвращает индексированное изображение Y с картой цветов newmap.

[Y,newmap] = imapprox(X,map,tol) аппроксимирует цвета в индексированном изображении X и соответствующая карта цветов map с использованием равномерного квантования с допуском tol.

Y = imapprox(X,map,inmap) аппроксимирует цвета в индексированном изображении X и соответствующая карта цветов map с использованием обратного отображения карты цветов с картой цветов inmap. Алгоритм обратной цветовой карты находит цвета в inmap которые лучше всего соответствуют цветам в map.

___ = imapprox(___,dithering) включает или отключает дизеринг.

Примеры

свернуть все

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

figure
load mandrill
image(X)
colormap(map)
axis off         
axis image

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

Уменьшите количество цветов в индексированном изображении с 220 до 16, создав новое изображение. Yи связанную с ним карту цвета, newmap.

figure
[Y,newmap] = imapprox(X,map,16);
image(Y)
colormap(newmap)
axis off       
axis image

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

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

свернуть все

Индексированное изображение с множеством цветов, заданное как матрица m-by-n неотрицательных целых чисел.

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

Карта цветов с множеством цветов, связанных с индексированным изображением X, заданная как матрица d-by-3 со значениями в диапазоне [0, 1]. Каждая строка map трехэлементный RGB-триплет, определяющий красный, зеленый и синий компоненты одного цвета карты цветов.

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

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

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

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

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

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

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

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

свернуть все

Индексированное изображение с меньшим количеством цветов, возвращаемое в виде m-на-n матрицы положительных целых чисел. Если длина newmap (или immap, если указано) меньше или равно 256, то выходное изображение имеет класс uint8. В противном случае выходное изображение имеет класс double.

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

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

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

Алгоритмы

imapprox использование rgb2ind для создания новой карты цветов, в которой используется меньше цветов. Дополнительные сведения о квантовании и обратном отображении карты цветов см. в разделе Алгоритмы rgb2ind.

См. также

| |

Темы

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