exponenta event banner

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-на-n.

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

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

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

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

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

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

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

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

свернуть все

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

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

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

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

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