RGB图像是一种比较常见的色彩空间类型,除此之外还有一些其他的色彩空间,比较常见的包括GRAY色彩空间(灰度图)、XYZ色彩空间、YCrCb色彩空间、HSV色彩空间、HLS色彩空间、CIEL*a*b色彩空间等。每种色彩空间都有自己擅长处理的问题。具体处理某个问题,就要用到色彩空间类型转换。本小节主要介绍各种色彩空间。

GRAY色彩空间

GRAY色彩空间指8位灰度图,具有256个等级,这在前面的章节里我们已经很熟悉了。

RGB转为Gray时,标准的处理方式如下:
$$
\begin{eqnarray}
Gray & = & 0.299Red + 0.587Green+0.114Blue
\end{eqnarray}
$$
有时候,也可以采用简化的版本:
$$
\begin{eqnarray}
Gray & = & \frac{R+G+B}{3}
\end{eqnarray}
$$
当图像由Gray色彩空间转化为RGB色彩空间时,所有通道的颜色都是相同的:
$$
\begin{eqnarray}
\left\{\begin{matrix}
R = Gray\\G = Gray
\\B = Gray
\end{matrix}\right.
\end{eqnarray}
$$

XYZ色彩空间

XYZ色彩空间是一种更便于计算的色彩空间,他可以与RGB色彩空间相互转换。

RGB色彩空间转换为XYZ色彩空间
$$
\begin{bmatrix}
X\\Y
\\Z
\end{bmatrix}
= \begin{bmatrix}
0.412453 & 0.357580 &0.180423 \\
0.212671&0.715160 &0.072169 \\
0.019334&0.119193 &0.950227
\end{bmatrix}
\times
\begin{bmatrix}
R\\G
\\B
\end{bmatrix}
$$
XYZ色彩空间转换为RGB色彩空间
$$
\begin{bmatrix}
R\\G
\\B
\end{bmatrix}
= \begin{bmatrix}
3.240479 & -1.53715 &-0.498535 \\
-0.969256&1.875991 &0.041556 \\
0.055648&-0.204043 &1.057311
\end{bmatrix}
\times
\begin{bmatrix}
X\\Y
\\Z
\end{bmatrix}
$$

YCrCb色彩空间

人的视觉实际上是对亮度比色彩要敏感的,转换成YCrCb色彩空间后,可以对于Y分量(亮度)和CrCb(色彩)分开处理,比如视频压缩算法会降低CrCb部分的分辨率来节约空间。

RGB色彩空间转换为YCrCb色彩空间的转换公式为:
$$
\begin{eqnarray}
\begin{matrix}
Y=0.299R+0.587G+0.114B \\Cr = (R-Y)\times 0.713+delta
\\Cb = (B-Y)\times 0.564+delta
\end{matrix}
\end{eqnarray}
$$
其中,delta值为
$$
delta = \left\{\begin{matrix}
128,8位图像\\32768,16位图像 \\0.5,单精度图像
\end{matrix}\right.
$$
YCrCb色彩空间转换为RGB色彩空间的转换公式为:
$$
\begin{matrix}
R = Y+1.403(Cr-delta) \\G =Y-0.714(Cr-delta)-0.344(Cb-delta)
\\B=Y+1.773(Cb-delta)
\end{matrix}
$$

HSV色彩空间

HSV指从人的色彩知觉出发,三个要素为:色调(Hue)、饱和度(Saturation)、亮度(Value)。色调指光的颜色、饱和度指色彩的深浅程度、亮度指人眼感受到的明暗程度。

  • 色调H的取值在[0,360]之间,不同的角度代表不同的颜色。

色调环

  • 饱和度为一个比例值,范围为[0,1],饱和度的值为0时,只有灰度。
  • 亮度表示色彩的明亮程度,取值范围也是[0,1]

在从RGB色彩空间转换到HSV色彩空间之前,需要先将RGB色彩空间的转换到[0,1]之间,再进行转换。
$$
V = max(R,G,B)
$$

$$
S = \left\{\begin{matrix}
\frac{V-min(R,G,B)}{V} ,V不等于0 \\0, 其他情况
\end{matrix}\right.
$$

$$
H=\left\{\begin{matrix}
\frac{60(G-B)}{V-min(R,G,B)},V=R \\120+\frac{60(B-R)}{V-min(R,G,B)}
\\240+\frac{60(B-R)}{V-min(R,G,B)}
\end{matrix}\right.
$$

计算结果中H<0的时候,需要H=H+360

在上述公式中计算可知:
$$
\begin{matrix}
S\in [0,1] \\V\in [0,1]
\\H\in [0,260]
\end{matrix}
$$

HLS色彩空间

HLS颜色空间,三个分量分别是色相(H)、亮度(L)、饱和度(S),这三个分量进行数字化处理,取值范围为:

Hue 色度, Lightness 亮度, Saturation 饱和度

CIEL*a*b色彩空间

CIEL*a*b色彩空间是一种均匀色彩空间模型,它是面向视觉感知的颜色模型。

从RGB转化成XYZ色彩空间,再转换为CIEL*a*b

CIEL*u*v色彩空间

CEIL*u*v色彩空间和CEIL*a*b色彩空间一样,都是均匀的色彩模型。CEIL*u*v与设备无关,适用于显示器和根据加色原理进行组合的场合。

从RGB转换成CEIL*u*v色彩空间的转换公式:

RGB转换成CEIL*u*v

Bayer色彩空间

Bayer色彩空间


博主个人公众号
版权声明 ▶ 本网站名称:陶小桃Blog
▶ 本文链接:https://www.52txr.cn/2021/opencv11.html
▶ 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行核实删除。
▶ 转载本站文章需要遵守:商业转载请联系站长,非商业转载请注明出处!!

最后修改:2022 年 09 月 16 日
如果觉得我的文章对你有用,请随意赞赏