颜色空间按照基本结构可以分两大类:基色颜色空间 和 色、亮分离颜色空间。前者的典型是 RGB,还包括 CMY、CMYK、CIE XYZ 等;后者包括 YCC/YUV、Lab、以及一批“色相类颜色空间”。CIE XYZ 是定义一切颜色空间的基准,很奇妙的是,它即属于基色颜色空间,也属于色、亮分离颜色空间,是贯穿两者的枢纽。色、亮分离颜色空间中的子类型“色相类颜色空间”,是把颜色分成一个表亮属性,和两个表色属性,其中有一个表色属性是色相,而色相以外的两个属性可以选用不同的变量来定义,而色相的概念不变,因此就构成一族共同使用色相属性,另加表亮属性和表色属性各一个组成的颜色空间,它们是颜色空间中的一个家族,暂且统称为 HSB 颜色空间。
RGB和CMY颜色模型都是面向硬件的,而HSV(HueSaturation Value)颜色模型是面向用户的。
补充:
色光三原色 RGB:吸收俩种,反射自身颜色;在屏幕上显示的图像,就是RGB模式表现的
色料三原色CMY:反射两种,吸收一种颜色;在印刷品上看到的图像,就是CMYK模式表现的
RGB
颜色范围
R(Red:红)、G(Green:绿)、B(Blue:蓝) A(Alpha 透明度)
RGB的每个元素在计算机内存中占用1个字节,1个字节等于8个bit位,所以RGB每个元素的取值范围为:0~256(2的8次方)
存储类型
(1)RGB555:16位的RGB格式,各分量都用5位表示,剩下的一位不用。
高字节 -> 低字节(根据内存大小端) XRRRRRGGGGGBBBBB(X代表不用)
(2)RGB565:16位的RGB格式,但是R占用5位,G占用6位,B占用5位。
(3)RGB24:24位的RGB格式,各分量占用8位,取值范围为0-255。
(4)RGB32:32位的RGB格式,各分量占用8位,剩下的8位作Alpha通道或者不用。
(5)RGB222:8位的RGB格式,各分量占用2bit位,剩下的2bit位不用!
......
单通道与多通道
单通道:俗称灰度图,每个像素点只能有一个值表示颜色,它的像素值在0到255之间,0是黑色,255是白色,中间值是一些不同等级的灰色,可以说灰度是黑与白之间的过渡色!
多通道:RGB三原色,每个像素点有三个字节来表示(RGB),分别最大取值范围是0-255,可以组合成千万种颜色。
SHV
色调(H),饱和度(S),明度(V)
HSV(Hue, Saturation, Value)是根据颜色的直观特性由A.R. Smith在1978年创建的一种颜色空间, 也称六角锥体模型(Hexcone Model),HSV模型的三维表示从RGB立方体演化而来。设想从RGB沿立方体对角线的白色顶点向黑色顶点观察,就可以看到立方体的六边形外形。六边形边界表示色彩,水平轴表示纯度,明度沿垂直轴测量。与RGB系统相比,更加接近于人们的经验和描述彩色感觉是所用的方式。也称HSB (B指brightness) 是艺术家们常用的。
HSV模型对应于画家配色的方法。画家用改变色浓和 色深的方法从某种纯色获得不同色调的颜色,在一种纯色中加入白色以改变色浓,加入黑色以改变色深,同时加入不同比例的白色,黑色即可获得各种不同的色调。
色调H(Hue):用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。
饱和度S(Saturation):取值范围为0.0~1.0,值越大,颜色越饱和。用距V轴的距离来度量
明度V(Value):取值范围为0(黑色)~1(白色)。轴V=0端为黑色,轴V=1端为白色。
Matlab的函数:rgb2hsv和hsv2rgb
CMYK/CMYK彩色空间
CMY模式是指采用青色(Cyan)、品红色(Magenta)、黄色(Yellow)3种基本颜色按一定比例合成颜色的方法,是一种依靠反光显色的色彩模式。在CMY模型中,显示的色彩不是直接来自于光线的色彩,而是光线被物体吸收掉一部分之后反射回来的剩余光线所产生的。因此,光线都被吸收时显示为黑色(减色法),当光线完全被反射时显示为白色(加色法)。
从理论上来说,只需要CMY三种油墨等比例混合在一起就会得到黑色,但是因为目前制造工艺水平的限制,制造出来的油墨纯度都不够高,CMY相加的结果实际只是一种暗红色。所以往往还会加入黑色(black)油墨,这就是CMYK色彩混合模式的由来。CMYK又称为印刷色彩模式。
RGB模式是一种发光的色彩模式。比如在一间黑暗的房间里,你可以看到投射在墙壁上的光斑;CMY(K)是一种依靠反光的色彩模式。在黑暗房间里你是无法阅读报纸的,我们之所以能够看到报纸上的内容是因为有光照射到报纸上,再反射到我们的眼中。
C=255-R C - Cyan 青 〈互补色〉 R - Red 红
M=255-G M - Magenta 品红 〈互补色〉 G - Green 绿
Y=255-B Y - Yellow 黄 〈互补色〉 B - Blue 蓝
该方程证明了从一个涂满纯净青色颜料的表面反射回的光不包含红色。
Matlab的函数:imcomplement
YCbCr/YUV彩色空间
YUV(亦称YCrCb)彩色空间广泛用于数字视频。在这种格式中,亮度信息用单独的分量Y来表示,彩色信息是用两个色差分量Cb和Cr来存储的。分量Cb是蓝色分量与参考值的差,分量Cr是红色分量与参考值的差。
亮度信号Y和两个色差信号R-Y(即U)、B-Y(即V)
YUV主要用于优化彩色视频信号的传输,使其向后相容老式黑白电视。与RGB视频信号传输相比,它最大的优点在于只需占用极少的频宽(RGB要求三个独立的视频信号同时传输)。
其中“Y”表示明亮度(Luminance或Luma),也就是灰阶值;而“U”和“V”表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。“亮度”是透过RGB输入信号来建立的,方法是将RGB信号的特定部分叠加到一起。“色度”则定义了颜色的两个方面─色调与饱和度,分别用Cr和CB来表示。其中,Cr反映了GB输入信号红色部分与RGB信号亮度值之间的差异。而CB反映的是RGB输入信号蓝色部分与RGB信号亮度值之同的差异。
采用YUV色彩空间的重要性是它的亮度信号Y和色度信号U、V是分离的。如果只有Y信号分量而没有U、V分量,那么这样表示的图像就是黑白灰度图像。彩色电视采用YUV空间正是为了用亮度信号Y解决彩色电视机与黑白电视机的兼容问题,使黑白电视机也能接收彩色电视信号。
Matlab的函数:rgb2ycbcr和ntsc2rgb
现在的YUV是通常用于计算机领域用来表示使用YCbCr编码的文件。所以可以粗浅地视YUV为YCbCr。
Lab
Lab模式既不依赖光线,也不依赖于颜料,它是CIE组织确定的一个理论上包括了人眼可以看见的所有色彩的色彩模式。自然界中任何一点色都可以在Lab空间 中表达出来,它的色彩空间比RGB空间还要大。它是一种设备无关的颜色系统,也是一种基于生理特征的颜色系统。这也就意味着,它是用数字化的方法来描述人的视觉感应。,所以它弥补了RGB和CMYK模式必须依赖于设备色彩特性的不足。(RGB在蓝色与绿色之间的过渡色太多,绿色与红色之间的过渡色又太少,CMYK模式在编辑处理图片的过程中损失的色彩则更多,而Lab模式在这些方面都有所补偿。) 由于Lab的色彩空间要 比RGB模式和CMYK模式的色彩空间大。这就意味着RGB以及CMYK所能描述的色彩信息在Lab空间中都能 得以影射
当你将RGB模式转换成CMYK模式时,Photoshop将自动将RGB模式转换为Lab模式,再转换为CMYK模式。
在表达色彩范围上,处于第一位的是Lab模式,第二位的是RGB模式,第三位是CMYK模式。
取值
Lab颜色空间取坐标Lab,其中L亮度;a的正数代表红色,负端代表绿色;b的正数代表黄色, 负端代表兰色(a,b)有L=116f(y)-16, a=500[f(x/0.982)-f(y)], b=200[f(y)-f(z/1.183 )];其中: f(x)=7.787x+0.138, x<0.008856; f(x)=(x)1/3,x>0.008856
HSI
HSI 色彩模型是从人的视觉系统出发,饱和度与颜色的白光光量刚好成反比,它可以说是一个颜色鲜明与否的指标。因此如果我们在显示器上使用 HIS 模型来处理图像,将能得到较为逼真的效果。
色相 (Hue):指物体传导或反射的波长,取 0 到 360 度的数值来衡量。
饱和度 (Saturation):又称色度,是指色彩的强度或纯度。饱和度代表灰色与色调的比例,并以 0% (灰色) 到 100% (完全饱和) 来衡量,纯光谱色是完全饱和的,加入白光会稀释饱和度。饱和度越大,颜色看起来就会越鲜艳,反之亦然。
亮度 (Intensity):是指颜色的相对明暗度,通常以 0% (黑色) 到 100% (白色) 的百分比来衡量。
在图像处理和计算机视觉中大量算法都可在HSI色彩空间中 方便地使用,它们可以分开处理而且是相互独立的。因此,在HSI色彩空间可以大大简化图像分析 和处理的工作量。HSI色彩空间和RGB色彩空间只是同一物理量的不同表示法,因而它们之间存在着 转换关系。
HIS与HSV区别
HSL (色相hue, 饱和度saturation,亮度lightness/luminance), 也称HLS 或 HSI (I指intensity) 与 HSV非常相似,仅用亮度(lightness)替代了明度(brightness)。二者区别在于,一种纯色的明度等于白色的明度,而纯色的亮度等于中度灰的亮度。[HSV在圆锥顶面的圆周上的颜色,V=1,S=1,这种颜色是纯色]
YPbPr
分量接口有两种名称YPbPr和YCbCr,这是两个完全不同的概念,YCbCr概念早于YPbPr。
YUV(YCbCr)是525i/625i(480i/576i)隔行分量输入接口
YPbPr是从480i到720p的分量输入接口标准(不区分隔行和逐行),隔行分量端子和逐行分量端子共用,端子标识为YPbPr,无论隔行还是逐行分量信号都从这个端口输入。
YCbCr表示的是数字电视(视频)的色彩空间及数字接口,这是国际通用的标准。YPbPr表示的仅仅是模拟视频分量接口,而且仅仅是美国的标准(包括采用美国标准的其他国家)。数字电视的YUV(YCbCr)色彩空间是由ITU(国际电信联盟)规定的,但是分量接口尤其是模拟分量接口并没有国际统一的标准,
yuv<-->rgb
Y'= 0.299*R' + 0.587*G' + 0.114*B'
U'= -0.147*R' - 0.289*G' + 0.436*B' = 0.492*(B'- Y')
V'= 0.615*R' - 0.515*G' - 0.100*B' = 0.877*(R'- Y')
R' = Y' + 1.140*V'
G' = Y' - 0.394*U' - 0.581*V'
B' = Y' + 2.032*U'
yCbCr<-->rgb
Y’ = 0.257*R' + 0.504*G' + 0.098*B' + 16
Cb' = -0.148*R' - 0.291*G' + 0.439*B' + 128
Cr' = 0.439*R' - 0.368*G' - 0.071*B' + 128
R' = 1.164*(Y’-16) + 1.596*(Cr'-128)
G' = 1.164*(Y’-16) - 0.813*(Cr'-128) - 0.392*(Cb'-128)
B' = 1.164*(Y’-16) + 2.017*(Cb'-128)
Note: 上面各个符号都带了一撇,表示该符号在原值基础上进行了gamma correction
RGB颜色参考:http://tool.oschina.net/commons?type=4
参考文章:https://blog.csdn.net/bjbz_cxy/article/details/79701006#commentBox
https://blog.csdn.net/wgx571859177/article/details/79442716
https://blog.csdn.net/jiang_ming_/article/details/82534722
https://blog.csdn.net/baidu_35561918/article/details/52304556
https://blog.csdn.net/aiwoshan0908/article/details/79162080
https://blog.csdn.net/asahinokawa/article/details/80596655
https://blog.csdn.net/wangjinwj2008/article/details/8272081
https://blog.csdn.net/charleslei/article/details/74939528
https://blog.csdn.net/kickxxx/article/details/7086888