0%

Camera-YUV域HueAndSaturation

色调 Hue

hue的定义

hue 可以理解为占主导地位的纯色颜色,或两种纯色颜色的组合。简单来说,hue 就是颜色的“名字”,人们最常用黄色、橙色等概念来描述一个颜色。 Hue is the color portion of the model, expressed as a number from 0 to 360 degrees.

  • Red: 0 and 60 degrees
  • Yellow: 61 and 120 degrees
  • Green: 121 and 180 degrees
  • Cyan: 181 and 240 degrees
  • Blue: 241 and 300 degrees
  • Magenta: 301 and 360 degrees

色调恒常 Hue constancy

描述一个颜色的三个参数是hue, lightness, chroma (saturation)。

色调恒常是指,当颜色的 lightness/saturation 改变时,色调的感知(sensation)保持不变。否则就是发生了色调漂移(hue shift)。

Tint = 在白色(或高亮白光)中加入纯色。

Tone = 在灰色(或中等白光)中加入纯色。

Shade = 在黑色(或无光)中加入纯色。

HSV空间

Saturation

色饱和度是指彩色的纯度,即颜色掺入白光的程度,或指颜色的深浅程度。某彩色掺入的白光越多,其色饱和度就越低;掺入的白光越少,其色饱和度就越高。不掺入白光,即白光为零,则其色饱和度为100 % ; 全为白光,则其色饱和度为零。

YCbCr不是一种绝对色彩空间,是YUV压缩和偏移的版本。YCbCr的Y与YUV中的Y含义一致,Cb和Cr与UV同样都指色彩,Cb指蓝色色度,Cr指红色色度。在应用上很广泛,JPEG、MPEG、DVD、摄影机、数位电视等皆采此一格式。因此一般俗称的YUV大多是指YCbCr。

在YCbCr空间来看,Cb和Cr等于128时饱和度为0,图像等效于灰度图。|Cr-128|和|Cr-128|越大则饱和度也越大,计算公式如下,

\[ f(cb, s) = (cb - 128) * s + 128 \]

\[ f(cr, s) = (cr - 128) * s + 128 \]

其中 s 即为饱和度系数,一般可以取0~2,即允许一定程度的过饱和以增加颜色的鲜艳度。

论上饱和度调整也可以合并在CCM或CSC矩阵中,即饱和度调整与颜色校正(CC)和色彩空间变换(CSC)同步完成,所以在一些ISP设计中并不单独提供调整饱和度的步骤,这样做的好处是能够节省一个处理步骤,减少一个噪声来源。

合并CCM、CSC和饱和度的最终变换矩阵的过程如下,

\[ \begin{pmatrix} Y \\ Cb' \\ Cr' \end{pmatrix} = \begin{pmatrix} 1 & 0 & 0 \\ 0 & s & 0\\ 0 & 0 & s \end{pmatrix} \begin{pmatrix} Y \\ Cb \\ Cr \end{pmatrix} \]

\[ \begin{pmatrix} Y \\ Cb' \\ Cr' \end{pmatrix} = \begin{pmatrix} 1 & 0 & 0 \\ 0 & s & 0\\ 0 & 0 & s \end{pmatrix} \cdot C \cdot M \cdot \begin{pmatrix} R \\ G \\ B \end{pmatrix} \]

\[ \begin{pmatrix} Y \\ Cb' \\ Cr' \end{pmatrix} = D \cdot \begin{pmatrix} R \\ G \\ B \end{pmatrix} \]

其中Cb,Cr均已调整为中心值位于0,C是从RGB空间变换到YCbCr空间的变换矩阵,M为CCM矩阵,而D就是合并了饱和度和CCM的色彩还原矩阵。当系统需要调整饱和度或CCM时,控制软件会根据当前的饱和度和CCM参数重新计算色彩还原矩阵。

参考文献

https://zhuanlan.zhihu.com/p/98832366
https://zhuanlan.zhihu.com/p/98833038
https://zhuanlan.zhihu.com/p/145178514