Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

cmunique

消除颜色图中的重复颜色;将灰度或真彩色图像转换为索引图像

说明

示例

[Y,newmap] = cmunique(X,map) 从颜色图 map 中删除重复的行以生成新颜色图 newmap。该函数还会调整强度图像 X 中的索引以保持索引与颜色图之间的对应,并在 Y 中返回结果。图像 Y 和关联的颜色图 newmap 生成与 Xmap 相同但包含尽可能小的颜色图的图像。

[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 中的值,以便 Ynewmap 生成与 Xmap 相同的图像。

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 相关联的具有重复颜色的颜色图,指定为由范围 [0, 1] 内的值组成的 c1×3 矩阵。map 的每行都是一个三元素 RGB,指定颜色图的单种颜色的红、绿和蓝分量。

数据类型: double

RGB 图像,指定为由非负数组成的 m×n×3 数组。

数据类型: double | uint8 | uint16

灰度图像,指定为 m×n 数值矩阵。

数据类型: double | uint8 | uint16

输出参数

全部折叠

具有唯一颜色的索引图像,以 m×n 整数矩阵形式返回。如果 newmap 的长度小于或等于 256,则输出图像可以属于 uint8 类。否则,输出图像属于 double 类。

数据类型: double | uint8

与输出索引图像 Y 相关联的具有唯一颜色的颜色图,返回为由范围 [0, 1] 内的值组成的 c2×3 矩阵。newmap 的每行都是一个三元素 RGB,指定颜色图的单种颜色的红、绿和蓝分量。

数据类型: double

另请参阅

在 R2006a 之前推出