前言

如果看过之前的介绍的图像颜色迁移《color transfer between images》和颜色协调模型Color Harmoniztion就会发现,大部分图像处理算法虽然输入输出是RGB像素值,但是中间进行算法处理时很少直接更改RGB值,而是转换到其它空间,使得各颜色分量之间的影响越小越好,而RGB像素值互相影响比较严重,有文章研究发现当图像蓝色通道值比较大的时候,红绿通道值也比较大,不然会出现一些诡异的颜色。

为了更好地理解各类传统的图像算法理论,我们需要对色彩空间有一个大概的认识。

国际惯例,参考博客:

维基百科: Color Space

维基百科:List of color spaces and their uses

知乎《色彩空间与色彩模型的本质区别是什么?》

简书区分色彩模型和色彩空间《Color Space (2)》

简书《UI 设计知识库 [01] 色彩 · 理论》

简书《深入理解color model(颜色模型)》

论文《Color Transfer in Correlated Color Space》

书籍《Color Space and Its Divisions:Color Order from Antiquity to the Present》

知乎《数字图像处理之6大颜色空间》

CSDN《颜色空间:RGB,CMY,HSV,HSL,Lab详解》

博客《色彩空间RGB/CMYK/HSL/HSB/HSV/Lab/YUV基础理论及转换方法:RGB与YUV》

知乎《色彩空间中的 HSL、HSV、HSB 有什么区别?》

知乎《RGB、HSV和HSL颜色空间》

GitHub文章《颜色模式—RGB、HSL、HSB、HSV、CMYK》

冈萨雷斯的《数字图像处理》

重点概念

主要介绍色彩模型、色彩空间的概念和区别,然后概览一下色彩空间大概有哪些,中间会重点描述部分色彩空间。

色彩模型和色彩空间

色彩模型Color Model:一种抽象的数学模型,用一组数值来表示颜色,通常是一个三元组、四元组或者颜色分量。有五类最主要的色彩模型(CIE, RGB, YUV, HSL/HSV, CMYK)

色彩空间Color Space:当色彩模型与特定的描述相关联以后,就称为色彩空间。也就是说色彩模型数组中每一个分量都具有特定的含义了,通常是任意挑选的一些颜色或者具有严谨的数学定义,比如Adobe RGB、sRGB等。通过某些变换可以将一种颜色空间变换到另一个颜色空间,比如我们经常将RGB转成HSV或者LAB处理。

色域Color gamut:是颜色的某个完全子集。比如一个给定色彩空间或者某个输出装置的呈色范围。比如最常用的是24-位实现方法,也就是红绿蓝每个通道有8位或者256色级。基于这样的24-位RGB模型的色彩空间可以表现256×256×256 ≈ 1677万色。

(互)补色Complementary Colour:当成对的颜色组合时,能够互相抵消。也就是组合时会产生灰阶色彩,比如白色或黑色;放在相邻位置时,会造成很强烈的对比度。下图环上相对的颜色就是补色。

绝对色彩空间Absolute Color Space:有两个含义①颜色之间的不同就是色彩空间中表示颜色的点的距离;②颜色空间中的颜色比较模棱两可,它不受任何外部因素的影响。但是如果精确定义了各种分量,非绝对色彩空间也可以转换为绝对色彩空间。比如RGB色彩模型是通过红绿蓝三个通道混合成色,但是不同设备对这三个颜色的定义并不是精确和标准的,所以不同设备上同一副RGB图像看起来会很不一样。业界比较受欢迎的做法是通过定义一个包含RGB属性的ICC协议将RGB转换到绝对色彩空间,最为广泛的就是sRGB和Adobe RGB。

【注意】

  • 色彩空间具体化了色彩模型,色彩空间要有确切的定义,比如使用 RGB 色彩模型的 sRGB 色彩空间最大红色的定义就是CIE XYZ: 0.4360657, 0.2224884, 0.013916。维基百科上列出了大部分色彩模型对应的色彩空间

  • 如果色彩模型和绝对色彩空间没有映射关系,那么这个色彩模型就对应任意的颜色体系,它的颜色无法以一种容易理解的方式阐述。

  • 如果色彩模型和绝对色彩空间有映射关系,那么就会在色彩空间中出现一个有限覆盖区域(依据不同的映射函数确定),这个区域就叫做色域。如Adobe RGB和sRGB都基于RGB颜色模型,但它们是两个不同绝对色彩空间。下图展示了不同的RGB绝对色彩空间的色域(在CIExy色图度中显示):

  • 定义色彩空间通常用CIELAB和CIEXYZ色彩空间作为标准,因为这两个色彩空间在设计时便要求包含普通人眼可见的所有颜色。

  • 在很多教程包括冈萨雷斯的《数字图像处理》中,并没有区分色彩模型和色彩空间。维基百科上也给出了解释由于“色彩空间”有着固定的色彩模型和映射函数组合,非正式场合下,这一词汇也被用来指代色彩模型。尽管固定的色彩空间有固定的色彩模型相对应,这样的用法严格意义上是错误的。

部分色彩空间列表

注意即使是不同色彩模型下的色彩空间也是可以互相转换的,比如可以查阅维基百科上面的sRGB到CIEXYZ的变换,或者看图像颜色迁移《color transfer between images》中RGB到LAB的转换。

CIE

定义色彩空间时,通常使用 CIELAB或者 CIEXYZ色彩空间作为参考标准。这两个色彩空间在设计时便要求包含普通人眼可见的所有颜色

CIE 1931 XYZ色彩空间是第一次基于人眼对于色彩感知度量创建色彩空间的尝试,它是几乎所有其它色彩空间的基础CIE RGBCIE XYZ两者其实是同一个线性空间的不同表达,因此两者的转换可以通过转换矩阵实现。
[XYZ]=[2.76881.75171.13011.00004.59060.060100.05655.5942][RGB][RGB]=[0.4185−0.1587−0.0828−0.09120.25240.01570.0009−0.00250.1786][XYZ]\begin{bmatrix} X\\Y\\Z \end{bmatrix}=\begin{bmatrix} 2.7688&1.7517&1.1301\\ 1.0000&4.5906&0.0601\\ 0&0.0565&5.5942 \end{bmatrix}\begin{bmatrix} R\\G\\B \end{bmatrix}\\ \begin{bmatrix} R\\G\\B \end{bmatrix}=\begin{bmatrix} 0.4185&-0.1587&-0.0828\\ -0.0912&0.2524&0.0157\\ 0.0009&-0.0025&0.1786 \end{bmatrix}\begin{bmatrix} X\\Y\\Z \end{bmatrix} ⎣⎡​XYZ​⎦⎤​=⎣⎡​2.76881.00000​1.75174.59060.0565​1.13010.06015.5942​⎦⎤​⎣⎡​RGB​⎦⎤​⎣⎡​RGB​⎦⎤​=⎣⎡​0.4185−0.09120.0009​−0.15870.2524−0.0025​−0.08280.01570.1786​⎦⎤​⎣⎡​XYZ​⎦⎤​
CIE色彩空间的变体有:

  • CIELUV色彩空间 - 修改来更加方便的显示颜色差异,替代:
  • CIE 1964 U×V×W×统一色彩空间
  • CIELAB色彩空间:是颜色-对立空间,带有维度L表示亮度(0~100),a代表绿色到红色的分量(-128~127),b代表蓝色到黄色的分量(-128~127)。基于非线性压缩的CIE XYZ色彩空间坐标变换得到,是用来描述人眼可见的所有颜色的最完备的色彩空间。优点:不像RGB和CMYK色彩空间,Lab颜色被设计来接近人类视觉。它致力于感知均匀性,它的L分量密切匹配人类亮度感知。因此可以被用来通过修改a和b分量的输出色阶来做精确的颜色平衡,或使用L分量来调整亮度对比。这些变换在RGB或CMYK中是困难或不可能的——它们建模于物理设备的输出,而不是人类的视觉感知。
  • CIE-Yxy:该模型由CIE-XYZ衍生得来。其中, Yxy中的Y表示光的亮度。这个模型投影到x-y平面上即上面的CIE1931-XYZ色度图。其中x、y分量的取值范围是[0,1]。有时该模型也被称作CIE-xyY。

RGB

RGB 只是色彩模型,色彩模型没有色域或者色彩范围的概念,RGB 只是规定用 RGB 来表示色彩,没规定范围。

RGB采用加法混色法,因为它是描述各种“光”通过何种比例来产生颜色。光线从暗黑开始不断叠加产生颜色。RGB描述的是红绿蓝三色光的数值。RGBA是在RGB上增加阿尔法通道实现透明效果。

基于RGB色彩模型的普通色彩空间有:

  • sRGB色彩空间(standard Red Green Blue,标准红绿蓝色彩空间):是惠普与微软于1996年一起开发的用于显示器、打印机以及因特网的一种标准RGB色彩空间,主要针对显示器而设计的。
  • AdobeRGB 是 1998 年 Adobe 制定的色彩空间,它设计的一个要求就是要超过 sRGB 的色域,是为了同时针对印刷和显示器(也就是数字印刷)设计的。
  • Adobe Wide Gamut RGB:宽色域RGB色彩空间是1998年Adobe对sRGB色彩空间的扩充,可以存储比sRGB更广的颜色值,它包含LAB色彩空间中可视色彩的77.6%,而sRGB仅包括50.6%。

YUV

YUV,是一种颜色编码方法。常使用在各个影像处理组件中。 YUV在对照片或视频编码时,考虑到人类的感知能力,允许降低色度的带宽。Y’代表明亮度,而U与V存储色度部分; 亮度记作Y,而Y’的prime符号记作伽玛校正。UV分别代表不同颜色信号,所以直接使用R与B信号表示色度的UV, 也就是说UV信号告诉了电视要偏移某象素的的颜色,而不改变其亮度,或者UV信号告诉了显示器使得某个颜色亮度依某个基准偏移, UV的值越高,代表该像素会有更饱和的颜色。

基于YUV的色彩空间有:

  • YUV和Y’UV通常用来编码电视的模拟信号,通常已经在电脑系统上广泛使用。
  • YCbCr则是用来描述数字的影像信号,适合视频与图片压缩以及传输。RGB诉求于人眼对色彩的感应,YUV则着重于视觉对于亮度的敏感程度,Y代表的是亮度,UV代表的是彩度(因此黑白电影可省略UV,相近于RGB),分别用Cr和Cb来表示,我们现在大多数讲的YUV,基本是指Y’CbCr。
  • YIQ 是另一种视觉亮度拆分模型,与 YUV 很相似,是 NTSC 彩色电视的标准,国内不太常见,因为国内用的是 PAL 标准,PAL 标准使用的是 YUV。

CMY/CMYK

印刷四分色模式是彩色印刷时采用的一种套色模式,利用色料的三原色混色原理,加上黑色油墨,共计四种颜色混合叠加,形成所谓“全彩印刷”。四种标准颜色是:

  • CCyan = 青色
  • MMagenta = 洋红色,又称为“品红色”
  • YYellow = 黄色
  • K:blacK = 黑色

CMYK印刷过程中使用减法混色法(注意与RGB的加法混色法区分),因为它描述的是需要使用何种油墨,通过光的反射显示出颜色。它是在一种白色介质(画板,页面等)上使用油墨来体现图像。CMYK描述的是青、品红、黄和黑四种油墨的数值。根据不同的油墨,介质,和印刷特性,存在多种CMYK色彩空间,具体有 Japan Color 2001 Uncoated、US web Coated 等 CMYK 色彩空间。可以通过色点扩张或者转换各种油墨数值从而得到不同的外观。CMY是减色混色模型,颜色混在一起,亮度会降低。之所以加入黑色是因为打印时由品红、黄、青构成的黑色不够纯粹。

HSV/HSL

它俩都可由sRGB变换得到,但是有区别

  • HSV(色相:Hue、饱和度:Saturation、明度;Value),也称HSB(B指Brightness)是艺术家们常用的,因为与加法减法混色的术语相比,使用色相、饱和度等概念描述色彩更自然直观。HSV是RGB色彩空间的一种变形,它的内容与色彩尺度与其出处——RGB色彩空间有密切联系。
  • HSL(色相:Hue、饱和度:Saturation、亮度:Lightness/Luminance),也称HLS或HSI(I指Intensity)与HSV非常相似,仅用亮度(Lightness)替代了明度(Brightness)。二者区别在于,一种纯色的明度等于白色的明度,而纯色的亮度等于中度灰的亮度。

尽管在HSL和HSV中“色相”指称相同的性质,它们的“饱和度”的定义是明显不同的。它俩的区别直接从下图自行对比即可。


后记

这篇博文只是对图像里颜色做一个简单的描述,了解就行,不是搞信号处理的没必要记得非常清楚,只需要在论文中看到相关词汇不会不认识就行了。
本博文无代码,内容已同步到微信公众号

ColorSpace颜色空间简介相关推荐

  1. HSV(HSL)颜色空间及其应用

    from:http://nkwavelet.blog.163.com/blog/static/22775603820147851726816/ [摘要] 本文首先阐述HSV 和 HSL颜色模式的基本特 ...

  2. HSI颜色空间及其应用

    from:http://nkwavelet.blog.163.com/blog/static/22775603820147197503722/ [摘要] 本文首先阐述HSI颜色模式的基本特性,然后介绍 ...

  3. Lab颜色空间及其应用

    Lab颜色空间及其应用 from: http://nkwavelet.blog.163.com/blog/static/227756038201441624345947/ 本文首先阐述Lab颜色模式的 ...

  4. opencv学习_7 (颜色空间)

    这次我主要说说颜色空间,包括三个方面:RGB颜色空间,HSV颜色空间以及颜色空间的转换 RGB颜色空间介绍: 1:RGB颜色空间简介 三基色原理:大多数的颜色可以通过红.绿.蓝<数学中基的概念& ...

  5. RGB颜色空间转LAB

    RGB颜色空间转LAB 第一:LAB颜色空间简介 Lab是由一个亮度通道(channel)和两个颜色通道组成的.在Lab颜色空间中,每个颜色用L.a.b三个数字表示,各个分量的含义是这样的: L分量用 ...

  6. 颜色的三要素:色调,饱和度,和亮度。

    双语例句 继续查词 1 颜色的三要素:色调,饱和度,和亮度. The3 colour directories: hue,saturation,and brightness. danci.911cha. ...

  7. Halcon 彩色图片通道分割处理

    1.RGB通道:R红色,G绿色,B蓝色:R.G.B各占一个字节,取值范围在0-255:可代表的颜色数256*256*256==2^24 黑色区域是:R=G=B=0;   白色区域是:R=G=B=255 ...

  8. CGContextRef CIImageRef详解

    第一种  先用UIImage对象加载一张图片  然后转化成CGImageRef放到CGContext中去编辑 第二种  用CGImageCreate函数创建CGImageRef  然后把CGImage ...

  9. Python图像处理

    一.简介 实现计算机视觉任务的过程中,不可避免地需要对图像进行读写操作以及图像预处理操作,下面介绍两个常用的Python图像处理库:OpenCV和Pillow. OpenCV全称是由英特尔公司资助的开 ...

最新文章

  1. Compression Helper Class using SharpZipLib
  2. pycharm 类型注释_后端开发使用pycharm的技巧
  3. 中国自研数据库拿下世界第一,背后这十年都经历了什么?
  4. 三勾商城是开发友好的微信小程序商城,框架支持SAAS,支持发布 iOS + Android + 公众号 + H5 + 各种小程序
  5. eclipse3的jsp支持简单配置
  6. Mysql第一天笔记02——安装Navicat
  7. 01 自然语言处理NLP介绍
  8. Java 使用 iText5 API 根据需求导出 PDF
  9. 罗技 跨计算机控制,罗技新款 MX 鼠标,可多台电脑间跨屏快速切换使用
  10. 用css编写一个简单的旋转魔方
  11. (P9)socket编程四:流协议与粘(nian)包,粘包产生的原因,粘包处理方案,readn,writen 6.回射客户/服务器
  12. MySQL数据库:SQL语句优化
  13. Registration
  14. 从为何“万事开头难”谈大型网站应用设计——运用冥想
  15. Python吴恩达深度学习作业4 -- 构建深度神经网络
  16. 解析URL得到IP地址
  17. antvL7地图绘制
  18. 设计模式:积分兑换系统的设计与实现
  19. 2.3.3 x86 虚拟机创建的问题
  20. 详解spring事务失效和回滚失败的场景

热门文章

  1. “GetDocument”: 缺少返回类型;假定为返回“int”的成员函数
  2. 开心001超级大亨外挂制作
  3. ubuntu下wine打开自由们找不到MFC42.DLL重新安装的解决方法
  4. 字节跳动 | 游戏研发岗第一批笔试(题解)
  5. Python Turtle绘图 [难度2星]:彩虹(分五步完成)
  6. 备战大三实习篇之 Zookeeper
  7. 电影美丽人生影评:一念相伴
  8. 【吃灰板子捡起来】内核定时器实验
  9. html段落标记可以用p1,HTML 段落标记
  10. css添加过渡色,CSS过渡与转换