【图像处理】-018 彩色模型及其相互转换

【图像处理】-018 彩色模型及其相互转换

1 彩色模型

  彩色模型(也称为彩色空间或彩色系统)的目的是在某些标准下通常可以接受的方式方便地对彩色加以描述。

1.1 RGB

  在RGB模型中,每种颜色出现在红绿蓝的原色光谱分量中。该模型基于笛卡尔坐标系。RGB原色位于正方体的3个角上,二次色青色、深红色和黄色位于另外3个顶点,黑色委员原点,白色位于最远的角上。在该模型中,灰度(RGB值相等)沿着连接这两点的直线从黑色延伸到白色。

RGB颜色正方体

1.2 CMY和CMYK

  在上一篇中,我们知道颜料的原色是指该颜料从白光中吸收某些光谱,因此,颜料的原色实际上是光的二次色青色、深红色、黄色。当用白光照射涂了青色颜料的表面时,该表面将吸收红色光谱,不反射红光。也就是说,青色从反射的白光中减去红光,白光本身是有等量的红、绿、蓝光组成。
  大多数在纸上沉积彩色颜料的设备,要求输入CMY数据或在内部进行了RGB到CMY的转换。转换公式如下:
(1) [ C M Y ] = [ 1 1 1 ] − [ R G B ] \begin{bmatrix} C \\ M \\ Y \end{bmatrix} =\begin{bmatrix} 1 \\ 1 \\ 1 \end{bmatrix}-\begin{bmatrix} R \\ G \\ B \end{bmatrix} \tag{1} CMY=111RGB(1)
  CMY彩色模型主要用于产生硬拷贝输出,因此,从CMY到RGB的反向操作实际上没有实际意义。
  对于部分打印机,除了要CMY输入之外,还需要指定黑色分量,也就产生了CMYK彩色模型。

1.3 HSI

  当人观察一个彩色物体时,可以通过色调、饱和度和亮度来描述。色调是描述一种纯色的颜色属性,饱和度时一种纯色被白光稀释的程度的度量。亮度是一个主观的描述子,体现了无色的强度概念,并且是描述彩色感觉的关键因子之一。

  HSI彩色模型可以在彩色图像中从携带的彩色信息中消去强度分量的影响。HSI模型是开发基于彩色描述的图像处理算法的理想工具,这种彩色描述对人来说自然且直观。

2 色彩空间之间的相互转换

2.1 RGB与HSI相互转换

  既然RGB和HSI都是人类对颜色的一种直观的描述方式,对于同一种颜色描述,必然能够相互转换。

2.1.1 RGB转HSI

  给定一幅RGB彩色格式的图像,每个RGB像素的H分量可以由下式得到:
(2) H = { θ , B ≤ G 360 − θ , B > G H=\begin{cases} \theta, && B \leq G \\ 360-\theta,&&B > G \end{cases} \tag{2} H={θ,360θ,BGB>G(2)
其中
(3) θ = a r c c o s { 1 2 [ ( R − G ) + ( R − B ) ] [ ( R − G ) 2 + ( R − B ) ( G − B ) ] 1 / 2 } \theta=arccos \begin{Bmatrix} \frac{\frac{1}{2}\begin{bmatrix} (R-G)+(R-B) \end{bmatrix}}{\begin{bmatrix} (R-G)^{2}+(R-B)(G-B) \end{bmatrix}^{1/2}} \end{Bmatrix} \tag{3} θ=arccos{[(RG)2+(RB)(GB)]1/221[(RG)+(RB)]}(3)
饱和度分量由下式给出:
(4) S = 1 − 3 ( R + G + B ) [ m i n ( R , G , B ) ] S=1-\frac{3}{(R+G+B)}\begin{bmatrix} min(R,G,B) \end{bmatrix} \tag{4} S=1(R+G+B)3[min(R,G,B)](4)
强度分量由下式给出:
(5) I = 1 3 ( R + G + B ) I =\frac{1}{3}(R+G+B) \tag{5} I=31(R+G+B)(5)

  假定RGB值已经归一化到区间 [ 0 , 1 ] [0,1] [0,1]内,且角度 θ \theta θ根据HSI空间的红轴来度量。色调可以通过将式2得到的所有值除以360°归一化到 [ 0 , 1 ] [0,1] [0,1]范围内。如果给定的RGB的值在区间 [ 0 , 1 ] [0,1] [0,1]内,则其他两个HSI分量已经在区间 [ 0 , 1 ] [0,1] [0,1]内。

2.1.2 HSI转RGB

  在 [ 0 , 1 ] [0,1] [0,1]内给出HSI值,通过下面的方法可以求出其对应的RGB值。这一套公式取决于H的值。在原色分隔中有3个间隔120°的扇区。

  首先,将H的值乘以360°,将色调值灰度到 [ 0 , 360 ° ] [0,360\degree] [0,360°]内。

  RG扇区( 0 ≤ H &lt; 120 ° 0\leq H &lt; 120\degree 0H<120°):当H的值在该扇区内时,RGB分量由以下公式给出:
(6) B = I ( 1 − S ) B=I(1-S) \tag{6} B=I(1S)(6)
(7) R = I [ 1 + S c o s H c o s ( 60 ° − H ) ] R=I\begin{bmatrix} 1+\frac{S cos H}{cos(60\degree -H)} \end{bmatrix} \tag{7} R=I[1+cos(60°H)ScosH](7)
(8) G = 3 I − ( R + B ) G=3I-(R+B) \tag{8} G=3I(R+B)(8)

  GB扇区( 120 ≤ H &lt; 240 ° 120\leq H &lt; 240\degree 120H<240°):当H的值在该扇区内时,首先从H中减去120°,
(9) H = h − 120 ° H = h-120\degree \tag{9} H=h120°(9)
RGB分量由以下公式给出:
(10) R = I ( 1 − S ) R=I(1-S) \tag{10} R=I(1S)(10)
(11) G = I [ 1 + S c o s H c o s ( 60 ° − H ) ] G=I\begin{bmatrix} 1+\frac{S cos H}{cos(60\degree -H)} \end{bmatrix} \tag{11} G=I[1+cos(60°H)ScosH](11)
(12) B = 3 I − ( R + B ) B=3I-(R+B) \tag{12} B=3I(R+B)(12)

  GB扇区( 240 ≤ H &lt; 360 ° 240\leq H &lt; 360\degree 240H<360°):当H的值在该扇区内时,首先从H中减去240°,
(13) H = h − 240 ° H = h-240\degree \tag{13} H=h240°(13)
RGB分量由以下公式给出:
(14) G = I ( 1 − S ) G=I(1-S) \tag{14} G=I(1S)(14)
(15) B = I [ 1 + S c o s H c o s ( 60 ° − H ) ] B=I\begin{bmatrix} 1+\frac{S cos H}{cos(60\degree -H)} \end{bmatrix} \tag{15} B=I[1+cos(60°H)ScosH](15)
(16) R = 3 I − ( R + B ) R=3I-(R+B) \tag{16} R=3I(R+B)(16)

3 OpenCV中进行彩色模型转换

  在OpenCV中,有函数cvtColor可以进行彩色模型的转换。

转换标志意义
COLOR_BGR2GRAYRGB空间转换成灰度图
COLOR_BGR2HSVRGB空间转换到HSV空间
COLOR_BGR2HLSRGB空间转换到HLS空间
COLOR_HLS2BGRHLS空间转换到BGR空间
COLOR_HSV2BGRHSV空间转换到BGR空间
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值