LAB 与 HSV 颜色系统比较

保存时间:2026/4/2 19:03:45


LAB 与 HSV 颜色系统比较
内容由豆包 AI 生成
机器视觉里有一种 L A B 的颜色系统,和 H S V 不同。你能不能介绍一下 L A B 究竟是什么呢意思,它的优缺点和 HSV 相比有哪些不同?

LAB 颜色系统介绍

LAB 颜色系统由国际照明委员会(CIE)于 1976 年制定。其中,L 代表明度(Lightness),取值范围从 0(黑色)到 100(白色);a 表示从绿色到红色的颜色分量,正值表示红色,负值表示绿色;b 表示从蓝色到黄色的颜色分量,正值表示黄色,负值表示蓝色。LAB 颜色空间能较好地反映人眼对颜色的感知,与设备无关,在不同的显示设备或打印设备上能保持相对一致的颜色表现。

LAB 颜色系统的优缺点

  • 优点:颜色表达能力强,能包含人眼能感知的所有颜色;对颜色差异的感知均匀,在该空间中,相同的数值变化对应人眼相似的颜色差异感知;受光照条件影响小,L 分量单独表示明度,分离了颜色信息和亮度信息,在处理图像时可减少光照变化对颜色分析的干扰。
  • 缺点:直观性较差,与人们习惯的颜色表示方式不同,不便于理解和直接使用;计算相对复杂,在某些应用中可能增加计算成本和处理时间。

LAB 与 HSV 的不同

  • 颜色表示方式:LAB 基于颜色的明度、红绿分量和蓝黄分量来表示颜色;HSV 基于色调(Hue,即颜色的种类)、饱和度(Saturation,颜色的鲜艳度)和明度(Value,颜色的明亮程度)来表示,更符合人们对颜色的直观感受,如红色、蓝色等是由色调决定。
  • 颜色空间特性:LAB 颜色空间是均匀的,颜色差异在空间中能更准确地反映人眼的感知;HSV 颜色空间不均匀,在不同区域相同的数值变化对应的颜色感知变化不同。
  • 应用场景:LAB 常用于需要精确颜色表示和处理的领域,如色彩管理、图像分析等,能更好地处理颜色的细微差异和进行颜色校正;HSV 更适用于与人眼视觉感知相关的应用,如计算机图形学、图像处理中的颜色选择和调整,以及一些基于颜色特征的目标识别应用,因为其更符合人对颜色的主观感受,便于用户直观地调整颜色。
相关视频
那么它们和 RGB 这种颜色的表达方式有什么关联?有什么异同呢?
RGB、LAB 和 HSV 都是常见的颜色表达方式,它们之间既有联系又有区别,具体如下:

关联

  • RGB 是 LAB 和 HSV 颜色空间的基础。在图像处理和计算机图形学中,通常先通过设备获取 RGB 值,再通过特定的转换公式将 RGB 值转换为 LAB 或 HSV 值,以方便进行不同需求的处理和分析。

异同

  • 颜色表示原理:RGB 通过红(Red)、绿(Green)、蓝(Blue)三种颜色通道的不同强度组合来表示颜色;LAB 基于颜色的明度、红绿分量和蓝黄分量表示颜色;HSV 基于色调、饱和度和明度来表示颜色。
  • 颜色空间特性:RGB 颜色空间与设备相关,不同设备对相同 RGB 值的显示或输出可能不同;LAB 颜色空间均匀且与设备无关;HSV 颜色空间不均匀但更符合人眼对颜色的主观感受。
  • 应用场景:RGB 广泛应用于显示设备、图像采集设备等,是最直接的颜色表示方式;LAB 常用于颜色管理、图像分析和处理中需要精确颜色匹配和校正的场景;HSV 适用于计算机图形学、图像处理中的颜色调整和基于颜色特征的目标识别等场景。
  • 直观性:RGB 对于非专业人士来说,较难直观理解不同数值组合对应的颜色;LAB 的数值与颜色的直观联系不明显;HSV 中色调对应颜色的种类,饱和度和明度也较符合日常对颜色鲜艳度和明亮度的认知,相对更直观。
那么,假如这样一个场景,就是说在光照不变的场景下,一个图形有了些微的差别,我的意思是说环境一个,比如说一个棋盘上的棋子,它的位置有了些微的差别。然后这个时候我们用设备去捕捉图像,究竟用哪一种颜色表达方式,它的波动比较小呢意思就是说,仅仅是图像的一些特征改变,光照也没有改变,颜色也没有改变。为什么会在 LAB 的表达上有很大的区别呢还是说 RGB 或者是 HSV 表达会更小一些呢?哪一种表达更小一些呢?
在这种光照不变,仅棋子位置有细微变化的场景下,通常 LAB 颜色表达方式的波动会比较小。原因如下:
  • LAB:其将颜色信息与亮度信息分离,L 代表明度,a 和 b 代表颜色分量。在光照不变时,明度L 不会改变,而颜色分量 a 和 b 主要取决于物体本身的颜色特性,棋子位置的细微变化一般不会对其颜色特性产生显著影响,所以 LAB 值相对稳定。
  • RGB:它是基于设备的颜色空间,设备在捕捉图像时可能会受到噪声、传感器不均匀性等因素影响。即使光照不变,棋子位置变化可能导致其在图像中的像素分布略有不同,从而使 RGB 值产生波动。而且 RGB 值对颜色的表示较为直接,微小的颜色差异或像素值变化都会在 RGB 分量上体现出来。
  • HSV:虽然 HSV 在一定程度上考虑了人眼对颜色的感知,但它的颜色空间不均匀。棋子位置变化可能导致图像中棋子区域的像素统计特征发生微小变化,在 HSV 空间中,这种变化可能会使色调、饱和度或明度值产生相对较大的波动,尤其是在饱和度和明度的边界区域,数值变化可能更为敏感。
综上所述,在该场景下,LAB 颜色表达方式更能稳定地描述图像颜色,波动相对较小。
但是我目前的情况是,对于同样一副棋盘,经过一个线性变换,然后对图像各点进行 LAB 的采样,仅仅是因为棋子的位置发生了一些改变,在光照条件不变的情况下,居然它的明度 L 值有较大的波动,这个是怎么解释呢?
出现这种情况可能有以下原因:

图像线性变换的影响

线性变换可能改变了图像的灰度分布。虽然光照条件不变,但线性变换可能对图像的整体亮度或对比度进行了调整,导致原本棋子和棋盘的灰度值发生了较大变化。由于 LAB 颜色空间中的 L 值与图像的灰度值相关,这种线性变换引起的灰度变化会直接反映在 L 值上,从而造成 L 值出现较大波动。

采样点的选择

如果采样点的位置或数量在棋子位置改变后发生了变化,可能会影响 L 值的计算。比如,之前采样点主要集中在棋子较亮的部分,而棋子位置改变后,采样点更多地落在了较暗的部分,那么就会导致采样得到的 L 值出现较大差异。

设备或算法的误差

图像采集设备本身可能存在一定的误差,或者在进行 LAB 转换和采样的算法中存在一些不稳定性。即使是微小的误差,在经过多次采样和计算后,也可能导致 L 值出现较大的波动,尤其是当棋子位置改变后,这种误差可能会被进一步放大。
那么经过线性变换,这种图像的 L 值有一定的衰减,那么有没有什么补偿算法?就是说因为我发现所有的像素它都有一定的有规律性的偏移。比如说通通向黑暗,就是亮度降低的这种偏移,是每个点都有这种趋势那我要怎样做一种类似于补偿的机制来抵消这种偏移呢?
以下是一些可以用于补偿 LAB 颜色空间中 L 值因线性变换而衰减的方法:

均值调整法

  • 计算变换后图像 L 通道的均值,再计算原始图像 L 通道的均值
  • 根据均值的差值,对变换后图像的每个像素的 L 值进行调整,即,使调整后的图像 L 值均值接近原始图像。

直方图匹配法

  • 分别计算原始图像和变换后图像 L 通道的直方图。
  • 通过直方图匹配算法,将变换后图像的 L 通道直方图调整为与原始图像相似的形状,使变换后图像的 L 值分布与原始图像一致,从而补偿 L 值的衰减。

线性回归法

  • 选取原始图像和变换后图像中具有代表性的区域,获取这些区域的 L 值作为样本点。
  • 对这些样本点进行线性回归分析,得到一个线性关系,其中为回归系数。
  • 利用该线性关系对变换后图像的所有 L 值进行调整,即,以补偿 L 值的变化。
在实际应用中,可以根据图像的特点和具体需求选择合适的补偿算法,也可以尝试将多种方法结合使用,以达到更好的补偿效果。
如何选择合适的补偿算法?
均值调整法的优缺点是什么?