Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

hsv2rgb

将 HSV 颜色转换为 RGB

说明

示例

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

示例

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

示例

全部折叠

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

hsv = [.6 1 1; .6 .7 1; .6 .5 1; .6 .3 1; .6 0 1]; 

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

rgb = hsv2rgb(hsv);
surf(peaks);
colormap(rgb);
colorbar

Figure contains an axes object. The axes object contains an object of type surface.

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

hsv(:,:,1) = ones(2,2)*.6;
hsv(:,:,2) = [1 .7; .3 0];
hsv(:,:,3) = ones(2,2);

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

rgb = hsv2rgb(hsv);
image(rgb);

Figure contains an axes object. The axes object contains an object of type image.

输入参数

全部折叠

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

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

特定颜色的红色、绿色和蓝色分量的最大明度。

数据类型: double | single | logical

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

数据类型: double

输出参数

全部折叠

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

数据类型: double | single

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

数据类型: double | single

参考

[1] Smith, A. R. “Color Gamut Transform Pairs”. SIGGRAPH 78 Conference Proceedings. 1978, pp. 12–19.

扩展功能

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

GPU 代码生成
使用 GPU Coder™ 为 NVIDIA® GPU 生成 CUDA® 代码。

版本历史记录

在 R2006a 之前推出

另请参阅

|