cmunique

Устраните дублирующиеся цвета в палитре; преобразуйте изображение полутонового или истинного цвета в индексируемое изображение

Синтаксис

[Y,newmap] = cmunique(X,map)
[Y,newmap] = cmunique(RGB)
[Y,newmap] = cmunique(I)

Описание

пример

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

[Y,newmap] = cmunique(RGB) преобразовывает изображение истинного цвета 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
image(Y)
colormap(newmap)
title('Y and newmap')

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

свернуть все

Индексируемое изображение с дублирующимися цветами, заданными как 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