Skip to main content

数字影像色彩空间简介

数字影像色彩空间简介

传统分析方式是将彩色影像转为灰阶影像,而灰阶影像通常是亮度信息或是彩色信号的平均信息,这样的原因很可能是早期计算机硬件计算能力不足,或是研究为求问题单纯化所致,而分析基础在于数学,数字图像处理技术发展已经很久了,可以追朔到1920年代初(1921年,第一个应用是在出版报业,巴特兰电缆传输一幅图片到大西洋对岸的时间从一个星期减少到3小时,引用来源:缪绍纲编译之数位图像处理,如图1.1-1)。

图  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关系如下:

Popular posts from this blog

Python 日期與時間的處理

Visual Basic 6.0 (VB6) 程式語言案例學習 (10. 條碼列印程式)

寫作:波蘭文學習之旅:1-1. 波蘭文字母與發音(注音版)

Python 日期與時間的處理

Image

Visual Basic 6.0 (VB6) 程式語言案例學習 (10. 條碼列印程式)

Image

寫作:波蘭文學習之旅:1-1. 波蘭文字母與發音(注音版)

Image

數位影像處理:最佳化處理策略之快速消除扭曲演算法

Image

Visual Basic 6.0 (VB6) 程式語言案例學習 (04. 人事考勤管理系統)

Image

用10種程式語言做影像二值化(Image binarization)

Visual Basic 6.0 (VB6) 程式語言案例學習 (07. 收據列印程式)

Image

Visual Basic .Net (VB.Net) 程式語言案例學習 (03. 場地預約系統)

Image

Visual Basic 6.0 (VB6) 程式語言案例學習 (11. 生產線拍照程式)

Image

Visual Basic .Net (VB.Net) 程式語言案例學習 (06. 題庫測驗系統)

Image