2026a

# 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