# label2rgb
将标签矩阵转换为 RGB 图像
函数库: TyImageProcessing
# 语法
RGB = label2rgb(L)
RGB = label2rgb(L,cmap)
RGB = label2rgb(L,cmap,zerocolor)
RGB = label2rgb(L,cmap,zerocolor,order)
RGB = label2rgb(___;OutputFormat=outputFormat)
# 说明
RGB = label2rgb(L) 将一个标签图像 L 转换为 RGB 彩色图像,用于可视化标记的区域。label2rgb 函数根据标签矩阵中对象的数量确定要分配给每个对象的颜色。label2rgb 函数从整个色彩映射中选择颜色。示例
RGB = label2rgb = label2rgb(L,cmap) 指定在 RGB 图像中使用的色彩映射颜色图 cmap。
RGB = label2rgb = label2rgb(L,cmap,zerocolor) 指定背景元素(标记为0的像素)的 RGB 颜色。
RGB = label2rgb = label2rgb(L,cmap,zerocolor,order) 控制 label2rgb 如何将颜色分配给标签矩阵中的区域。
RGB = label2rgb = label2rgb(___;OutputFormat=outputFormat) 允许您指定该函数返回一个唯一颜色的列表,而不是一个 RGB 图像。
# 示例
使用颜色突出显示标签矩阵中的元素
读取一张图像并显示它。
using TyImageProcessing
using TyPlot
I = imread("rice.png");
imshow(I)
从图像创建一个标签矩阵。
BW = imbinarize(I);
CC = bwconncomp(BW);
L = labelmatrix(CC);
使用默认设置将标签矩阵转换为 RGB 图像。
RGB = label2rgb(L);
figure()
imshow(RGB)
使用可选参数将标签矩阵转换为 RGB 图像。本例使用 'spring' 色彩映射,将背景像素设置为青色,并随机分配颜色给标签。
RGB2 = label2rgb(L, TyPlot.spring(151), "c", "shuffle")
figure()
imshow(RGB2)

# 输入参数
L - 标签矩阵非负整数矩阵
标签图像是指连续区域的图像,可以是以下之一:
非负整数矩阵。标记为 0 的像素表示背景。标记为 1 的像素组成一个对象;标记为 2 的像素组成第二个对象;依此类推。您可以通过分水岭或标签矩阵等标记函数获取数值标签图像。
数据类型: Int8 | Int16 | Int32 | Int64 | UInt8 | UInt16 | UInt32 | UInt64 | Bool
cmap - 颜色图"jet"(默认) | c*3 矩阵 | 颜色图函数
要在生成的彩色图像 RGB 中使用的色彩映射,指定为以下之一。
| 值 | 描述 |
|---|---|
| c*3 的 Floa64 类型矩阵 | 色彩映射矩阵指定 c 种颜色,每种颜色为一个 RGB 三元组。其中 c 必须大于或等于标签矩阵 L 中的标签数目 numlabels,可以通过计算 maximum(L[:]) 得到 numlabels。 如果 c 大于 numlabels,则 label2rgb 使用矩阵中的前 numlabels 行创建 RGB 图像。 |
| 颜色图函数 | Syslab 颜色图函数,例如 "jet()" 或 “gray()”。 |
zerocolor - 填充颜色[1 1 1] (白色) (默认) | 3 元素向量 | "b" | "c" | "g"
填充颜色,指定为一个表示 RGB 三元组的 3 元素向量,或者以下数值标签图像的颜色缩写之一。对于数值标签图像,label2rgb 会将填充颜色应用于标签 0。
| 值 | 颜色 |
|---|---|
"b" | Blue |
"c" | Cyan |
"g" | Green |
"k" | Black |
"m" | Magenta |
"r" | Red |
"w" | White |
"y" | Yellow |
order - 颜色顺序"noshuffle" (默认) | "shuffle"
颜色顺序,指定为 "noshuffle" 或 "shuffle"。"noshuffle" 顺序按照数值顺序排列颜色映射颜色到标签矩阵区域。"shuffle" 顺序将颜色映射颜色以伪随机方式分配。
OutputFormat - 输出格式"image" (默认) | "triplets"
RGB 数据的输出格式,指定为以下之一。
"image" — 返回一个 RGB 图像。如果输入标签矩阵 L 的大小为 M×N,则输出的 RGB 图像大小为 M×N×3;
"triplets" — 返回一个 RGB 颜色列表。输出的大小为一个 c×3 矩阵,其中包含输入标签矩阵中每个标签 c 的 RGB 三元组。
# 输出参数
RGB - RGB 数据数值矩阵
RGB 数据,返回一个数值矩阵。
数据类型: UInt8