趋近智
我们知道数字图像本质上是像素网格,每个像素都有一个值。但是,一个数字,或者几个数字,如何表示我们所看到的广阔色彩范围呢?解决之道在于颜色空间。颜色空间是一种用于以数字方式组织和定义颜色的特定系统。可以将其视为计算机用来描述色彩的语言。
不同的任务和设备适合采用不同的颜色表示方式,因此存在多种颜色空间。计算机视觉中常用的三种主要类型包括:灰度、RGB和HSV。
最简单的颜色空间是灰度。灰度图像中的每个像素不存储颜色信息,而只表示强度或亮度。对于8位图像,它持有一个单一值,通常范围从0(表示黑色)到255(表示白色)。介于两者之间的所有值对应于不同深度的灰色。
这可能是最常见的颜色空间,因为它广泛应用于数码相机、扫描仪和计算机显示器(如您现在使用的)。RGB模型是一种相加式颜色系统。这意味着颜色是通过混合不同强度的红、绿、蓝光而生成的。
RGB颜色模型结合了红 (R)、绿 (G) 和蓝 (B) 光。混合R和G得到黄 (Y),G和B得到青 (C),B和R得到洋红 (M)。将三者结合则产生白 (W)。
虽然是标准模型,但RGB值对光照变化可能很敏感。同一物体在不同光照下,其R、G、B值可能会有很大不同,这对于某些计算机视觉任务来说可能是一个挑战。
HSV颜色空间以一种通常被认为对人类更直观的方式表示颜色,因为它将颜色信息(是什么颜色)与其强度或亮度分离开来。它通常被可视化为一个圆柱体。
色相 (H): 这表示颜色本身。可以将其看作色轮上的位置。它通常表示为0到360度之间的角度,尽管像OpenCV这样的库通常将此范围映射到0-179(以适应8位值)或0-255。红色可能在0度左右,绿色在120度左右,蓝色在240度左右。
饱和度 (S): 这表示颜色的“纯度”或“强度”。饱和度为0表示颜色是灰度(灰色、黑色或白色的阴影),而最大饱和度则表示色相定义的颜色最纯粹的形式。它通常表示为百分比(0-100%)或一个范围(例如,0-255)。褪色的颜色饱和度低;鲜艳的颜色饱和度高。
明度 (V): 这表示颜色的亮度或明暗程度。明度为0始终是黑色,无论色相或饱和度如何。随着明度增加,颜色变得更亮,直至达到其最大强度。它也通常表示为百分比(0-100%)或一个范围(例如,0-255)。
表示方式: 三通道(色相、饱和度、明度)。
范围(典型OpenCV 8位):
使用场景: 当您需要在不同光照条件下根据颜色识别物体时,HSV在计算机视觉中特别有用。由于色相通道相对独立于亮度(明度)和褪色(饱和度)来分离颜色类型,因此您通常可以定义一个色相值范围,以比使用固定RGB范围更可靠地检测特定颜色。例如,在图像中找到特定颜色的球,使用HSV中的色相范围可能比试图考虑因阴影或高光引起的所有可能RGB变化更容易。
不同的颜色空间适用于不同的目的:
理解这些基本的颜色空间非常重要,因为选择正确的颜色空间或了解如何在它们之间转换,是许多计算机视觉流程中常见的首要步骤。像OpenCV这样的库提供了函数,可以轻松地在这些不同表示之间转换图像,让您能够针对您的特定应用发挥每个空间的优点。在接下来的章节中,我们将了解文件格式和分辨率等其他图像属性。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造