rgb2hsv
将 RGB 颜色转换为 HSV
说明
示例
将颜色图转换为 HSV
获取下采样 prism
颜色图。
rgb = prism(6)
rgb = 6×3
1.0000 0 0
1.0000 0.5000 0
1.0000 1.0000 0
0 1.0000 0
0 0 1.0000
0.6667 0 1.0000
将颜色图中的 RGB 值转换为 HSV。
hsv = rgb2hsv(rgb)
hsv = 6×3
0 1.0000 1.0000
0.0833 1.0000 1.0000
0.1667 1.0000 1.0000
0.3333 1.0000 1.0000
0.6667 1.0000 1.0000
0.7778 1.0000 1.0000
将真彩色图像转换为 HSV
创建一个 2×2 真彩色图像。
rgb(:,:,1) = [1 1; 0 .5]; rgb(:,:,2) = [0 1; 0 .5]; rgb(:,:,3) = [0 0; 1 .5]; image(rgb);
将该图像转换为 HSV 数组。
hsv = rgb2hsv(rgb)
hsv = hsv(:,:,1) = 0 0.1667 0.6667 0 hsv(:,:,2) = 1 1 1 0 hsv(:,:,3) = 1.0000 1.0000 1.0000 0.5000
输入参数
RGB
— RGB 图像
m×n×3 数值数组
要转换的 RGB 图像,指定为 m×n×3 数值数组。RGB
的第三个维度为每个像素分别定义红色、绿色和蓝色强度。
rgb2hsv
函数要求数据类型为 double
和 single
的真彩色图像的值在范围 [0, 1] 内。
数据类型: single
| double
| uint8
| uint16
rgbmap
— RGB 颜色图
c×3 数值矩阵
RGB 颜色图,指定为由范围 [0, 1] 内的值组成的 c×3 数值矩阵。rgbmap
的每行都是一个三元素 RGB,指定颜色图的单种颜色的红、绿和蓝分量。
数据类型: double
输出参量
HSV
— HSV 图像
m×n×3 数值数组
HSV 图像,返回为由范围 [0, 1] 内的值组成的 m×n×3 数值数组。HSV
的第三个维度为每个像素分别定义色调、饱和度和明度,如下表所述。
属性 | 描述 |
---|---|
色调 | 值从 0 到 1 ,对应于颜色在颜色圈上的位置。随着色调从 0 增加到 1 ,颜色从红色过渡到橙色、黄色、绿色、青色、蓝色、品红色,最后又回到红色。 |
饱和度 | 色调的量或距离中性色的量。0 表示中性色,1 表示最大饱和度。 |
值 | 特定颜色的红色、绿色和蓝色分量的最大明度。 |
HSV
的数据类型取决于 RGB
的数据类型:
如果
RGB
的数据类型为single
,则HSV
的数据类型为single
。在其他情况下,
HSV
的数据类型为double
。
数据类型: double
| single
hsvmap
— HSV 颜色图
c×3 数值矩阵
HSV 颜色图,返回为由范围 [0, 1] 内的值组成的 c×3 数值矩阵。hsvmap
的每行都是一个三元素 HSV 三元组,指定颜色图的单种颜色的色调、饱和度和明度分量。
hsvmap
的数据类型取决于 rgbmap
的数据类型:
如果
rgbmap
的数据类型为single
,则hsvmap
的数据类型为single
。在其他情况下,
hsvmap
的数据类型为double
。
数据类型: single
| double
参考
[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® 代码。
基于线程的环境
使用 MATLAB® backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool
加快代码运行速度。
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
GPU 数组
通过使用 Parallel Computing Toolbox™ 在图形处理单元 (GPU) 上运行来加快代码执行。
此函数完全支持 GPU 数组。有关详细信息,请参阅在 GPU 上运行 MATLAB 函数 (Parallel Computing Toolbox)。
分布式数组
使用 Parallel Computing Toolbox™ 在集群的组合内存中对大型数组进行分区。
此函数完全支持分布式数组。有关详细信息,请参阅使用分布式数组运行 MATLAB 函数 (Parallel Computing Toolbox)。
版本历史记录
在 R2006a 之前推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)