2026a

# hsv2rgb


将 HSV 颜色转换为 RGB

函数库: TyPlot

# 语法

RGB = hsv2rgb(HSV)
rgbmap = hsv2rgb(hsvmap)

# 说明

RGB=hsv2rgb(HSV)将HSV图像的色调、饱和度和明度值转换为RGB图像的红色、绿色和蓝色值。示例


rgbmap=hsv2rgb(hsvmap)将HSV颜色图转换为RGB颜色图。示例

# 示例

将 HSV 矩阵转换为颜色图

创建一个三列 HSV 矩阵,用它指定五个蓝色梯度。在本例中,色调和明度不变,饱和度在 1.0 和 0.0 之间变化。

using TyPlot
hsv1 = [.6 1 1; .6 .7 1; .6 .5 1; .6 .3 1; .6 0 1];

通过调用 hsv2rgb 将 HSV 矩阵转换为颜色图。然后在曲面图中使用该颜色图。

rgb = hsv2rgb(hsv1);
X,Y,Z = peaks()
s = surf(X,Y,Z);
colormap(s, rgb);
colorbar(s)
将三维 HSV 数组转换为真彩色图像

创建一个 2×2×3 的 HSV 数组,用它指定四个蓝色梯度。

using TyImages
using TyPlot
hsv1 = zeros(2,2,3)
hsv1[:,:,1] = ones(2,2)*.6;
hsv1[:,:,2] = [1 .7; .3 0];
hsv1[:,:,3] = ones(2,2);

使用 hsv2rgb 将 HSV 数组转换为真彩色图像。然后显示图像。

rgb = hsv2rgb(hsv1);
image(rgb);  # 需要导入图像函数库

# 输入参数

HSV - HSV 图像
m×n×3 数值数组

HSV 图像,指定为由范围 [0, 1] 内的值组成的 m×n×3 数值数组。HSV 的第三个维度为每个像素分别定义色调、饱和度和明度,如下表所述。

属性 说明
色调 值从 0 到 1,对应于颜色在颜色圈上的位置。随着色调从 0 增加到 1,颜色从红色过渡到橙色、黄色、绿色、青色、蓝色、品红色,最后又回到红色。
饱和度 色调的量或距离中性色的量。0 表示中性色,1 表示最大饱和度。
特定颜色的红色、绿色和蓝色分量的最大明度。

数据类型: Float16 | Float32 | Float64

hsvmap - HSV 颜色图
c×3 数值矩阵

HSV 颜色图,指定为由范围 [0, 1] 内的值组成的 c×3 数值矩阵。hsvmap 的每行都是一个三元素 HSV 三元组,指定颜色图的单种颜色的色调、饱和度和明度分量。

数据类型: Float16 | Float32 | Float64

# 输出参数

RGB - RGB 图像
m×n×3 数值数组

RGB 图像,返回为由范围 [0, 1] 内的值组成的 m×n×3 数值数组。RGB 的第三个维度为每个像素分别定义红色、绿色和蓝色强度。该图像具有与 HSV 图像 HSV 相同的数据类型。

数据类型: Float64

rgbmap - RGB 颜色图
c×3 数值矩阵

RGB 颜色图,返回为由范围 [0, 1] 内的值组成的 c×3 数值矩阵。rgbmap 的每行都是一个三元素 RGB 三元组,指定颜色图的单种颜色的红、绿和蓝分量。颜色图具有与 HSV 颜色图 hsvmap 相同的数据类型。

数据类型: Float64

# 另请参阅

# 函数

rgb2hsv | hsv