数字影像色彩空间简介
数字影像色彩空间简介
图 1.1‑1
至今每年有数以千计的论文发表,解决许多问题。计算机视觉基本上就是仿真人类的智慧,人眼具有成像的能力,将光信号转换成脑神经可以处理的信息,再藉由人脑去分析判断。照相机或摄影机就可以代替人类的眼睛,并将光学信号转换成电气信号,交由计算机演算处理。所以我们必须了解计算机『看』到甚么,才能设计算法来取出我们所需要的数据。传感器(Sensor)可将光源分为红(Red)、绿(Green)、蓝(Blue),而每一个通道可拥有0~255范围数据表示,换句话说就是有256个等级可描述强度。这三个颜色就称为三原色,而RGB就顺理成章变成一种影像数据的格式,这种数据的格式也可称为24bit影像。所以计算机看到一个人脸的时候,显示的数据如下,如图1.1-2:
图 1.1‑2
RGB
英国科学家牛顿(1643~1727年)透过太阳光射入三菱镜的实验,发现三项事实。首先,白色的太阳光可以分解为七色光,分别是红、橙、黄、绿、青、蓝、紫。其次,七色光在射入三菱镜可得白光。最后,单色光是无法再分割出其他颜色的光。光是电磁波的一种,人眼可见的光,称做可见光。不可见光有真空紫外线、紫外线、红外线、近红外线、远红外线。人眼之所以可以见到色彩,其原因是反射率。物体之所以有色彩,是因为该物体只会反射该颜色的光。
国际照明委员会(CIE)于1931年采用R(red)、G(green)、B(blue)制定标准配色函数,在配色方程式中,假设[R]、[G]、[B]是单位向量,就可成为三维空间的向量运算。但由于三维表示并不方便,因为某个颜色[F]用[R]、[G]、[B]的混合量R、G、B为分量做成的RGB色彩空间的向量来表示,并不方便。因此经常用向量[F]和单位平面R+G+B=1的交点(r, g, b)来表示。
由此可知r+g+b=1,因此使用(r, g, b)的其中两项就可以表示某色[F]。
藉由以上得知rg色度图就可以表示某色[F],但有些颜色值在数学上是可行,实际上却是不存在,例如当r=1.0, g=1.0,这就叫做虚色。而实际存在的颜色叫做实色。在RGB转XYZ实需要虚色的观念。当人工计算色度时,在RGB的配色函数会带有负值,负值会有困扰。因此,CIE在1931年制定RGB色度系统。同年,为了使配色函数皆是正值,又制定了XYZ色度系统,或称CIE 1931标准色度系统。与RGB可互相转换,公式如下。
RGB转XYZ
XYZ转RGB
CMYK
RGB可称为混色系统,因为这三种光线的混合几乎可以表达所有的颜色。颜料的特性相反,颜料吸收光线,而不增强光线。所以使用颜料作画或印刷时,RGB将不再适用,只要将三原色进行补色就可以很好的解决问题。红色、绿色、蓝色的补色刚好是青、洋红、黄色。因为黄色颜料会吸收蓝色光,青色颜料会吸收红色光,因此最后只剩下绿色光的反射。这就是黄色颜料加青色颜料会变成绿色的道理。CMY(Cyan, Magenta, Yellow) 颜色空间常应用于印刷,印刷透过三原色油墨不同网点面机率来产生各种颜色。通常等量的CMY颜色可以组合成黑色,但是不够纯,因此增加黑色颜料。变成CMYK色。
从CMYK转换到RGB
tCMYK = {C,M,Y,K}
转换成三分色
tCMY = {C',M',Y'} = {C(1 - K) + K,M(1 - K) + K,Y(1 - K) + K}
然后再转换成RGB
tRGB = {R,G,B} = {1 - C',1 - M',1 - Y'}
同理结果如下:
tRGB = {1 - (C(1 - K) + K),1 - (M(1 - K) + K),1 - (Y(1 - K) + K)} = {1 - C(1 - K) - K,1 - M(1 - K) - K,1 - Y(1 - K) - K}
RGB转换到CMYK
tRGB = {R,G,B}
先转换成三分色
tCMY = {C',M',Y'} = {1 - R,1 - G,1 - B}
if min{C',M',Y'} = 1
tCMYK = {0,0,0,1}
再转换成四分色
K = min{C',M',Y'}
HSV
RGB和CMYK都是机器可见的颜色,HSV(Hue, Saturation, Value)色相、饱和度、纯度更为准确的反应人类视觉系统对色彩的理解方式。HSV也称为HSB(Hue, Saturation, Brightness)。对于圆柱坐标系统的一个圆锥形子集,V表示色彩明亮的程度,H表示色彩的信息,饱和度S为一比例值。
HSL
引用https://zh.wikipedia.org/wiki/HSL%E5%92%8CHSV%E8%89%B2%E5%BD%A9%E7%A9%BA%E9%97%B4 维基百科的图片
HSL(Hue, Saturation, Lightness)色彩空间,也同样是从人类的视觉系统开发出来的,它与HSV很相似。HSI色调(Hue)、饱和度(Saturation)和强度(Intensity)来描述色彩。色调是描述纯色的属性。饱和度的作用在于给出一种纯色被白光稀释的程度描述。强度是颜色的亮度(Luminance)或者光亮度(Lightness)。取值范围从0(黑)到100%最亮。HSV与HSL唯一不同的地方是B和L两个分量存在的区别,HSL饱和度最高的光亮度L定义为0.5,HSV颜色饱和度最高的明度值为B是1.0。亮度L,增加L可以使颜色变亮,L=0时,为黑色,L=1时,为白色。灰阶沿着L轴分布,纯色色彩均位于L=0.5、S=1的平面上。
Lab
引用https://zh.wikipedia.org/wiki/Lab%E8%89%B2%E5%BD%A9%E7%A9%BA%E9%97%B4 维基百科
Lab色彩空间是由CIE制定的另外一种颜色模型,它是应用最广泛的颜色模型之一,CIE于1976年开发这套颜色模型,Lab颜色模型用3组数值表示色彩,亮度数值L,其值0到100。红色和绿色两种原色之间的变化域a,a取正数时代表红色,取负数时则代表绿色。其数值范围为-120到+120。B表示黄色到蓝色两种原色之间的变化区域,b取正数时表示黄色,取负数时表示蓝色。其数值从-120到+120。
YUV
引用https://zh.wikipedia.org/wiki/YUV维基百科
YUV色彩系统是为了要让CRT彩色电视信号能够继续使用黑白电视传播系统来传送信号,而研发出来节省带宽的方法。Y代表着亮度向量,U和V代表着色差向量,RGB转换为YUV的公式如下:
Y=0.299R+0.587G+0.114B
U=0.493(B-Y)=0.439(-0.29R-0.587G+0.886B)
V=0.877(0.701R-0.587G-0.114B)
YUV与RGB关系如下:
RGB与YUV关系如下:
虽说是有理论公式,但实际上处理的都是浮点数,效率上非常的糟糕,因此为了将其正规化,可以将RGB和YUV都在0到255之间转换。所以可以采用下列的程序:
R = Y + (1.4075 * (V - 128))
G = Y - (0.3455 * (U - 128) - (0.7169 * (V - 128))
B = Y + (1.7790 * (U - 128)
Y = R * .299 + G * .587 + B * .114
U = R * -.169 + G * -.332 + B * .500 + 128
V = R * .500 + G * -.419 + B * -.0813 + 128
YIQ
Y代表亮度,I、Q代表色差向量。而如同YUV一样都是彩色电视的色彩系统,YIQ与RGB之间的关系如下:RGB与YIQ之间的关系如下:
YCbCr
YCbCr色彩系统被JPEG所使用,因此要研究JPEG数字图像处理就必须了解甚么是YCbCr色彩系统。这是由YUV色彩系统所开发出来的另外一种色彩系统,其中Y指的是亮度,而Cb和Cr是将U与Y做些调整而成。YCbCr与RGB的关系如下:RGB与YCbCr关系如下: