cmunique

Исключить повторяющиеся цвета в палитре; преобразовать черно-белое или цветное изображение в индексированное изображение

Описание

пример

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

[Y,newmap] = cmunique(RGB) преобразует изображение truecolor RGB к индексированному изображению Y и связанная с ним палитра, newmap. Возвращенная палитра-карта является наименьшей возможной палитрой для изображения, содержащей одну запись для каждого уникального цвета в RGB.

Примечание

newmap может быть очень большим, потому что количество записей может быть столько же, сколько пикселей в RGB.

[Y,newmap] = cmunique(I) преобразует полутоновое изображение I к индексированному изображению Y и связанная с ним палитра, newmap. Возвращенная палитра-карта является наименьшей возможной палитрой для изображения, содержащей одну запись для каждого уникального уровня интенсивности в I.

Примеры

свернуть все

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

X = magic(4);

Используйте gray функция для создания палитры с восемью записями. Затем объедините две палитры с восемью записями, чтобы создать палитру с 16 записями, map. В mapзаписи с 9 по 16 являются дубликатами записей с 1 по 8.

map = [gray(8); gray(8)];
size(map)
ans = 1×2

    16     3

Использование cmunique для удаления повторяющихся записей в палитре.

[Y, newmap] = cmunique(X, map);
size(newmap)
ans = 1×2

     8     3

cmunique настраивает значения в оригинальное изображение X так что Y и newmap создать то же изображение что и X и map.

figure
image(X)
colormap(map)
title('X and map')

Figure contains an axes. The axes with title X and map contains an object of type image.

figure
image(Y)
colormap(newmap)
title('Y and newmap')

Figure contains an axes. The axes with title Y and newmap contains an object of type image.

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

свернуть все

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

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

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

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

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

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

Полутоновое изображение, заданное как m -by n числовая матрица.

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

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

свернуть все

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

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

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

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

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