首页 > 代码库 > 颜色空间那些事儿

颜色空间那些事儿

本文为原创作品,转载请注明出处

欢迎关注我的博客:http://blog.csdn.net/hit2015springhttp://www.cnblogs.com/xujianqing/

只有经过几年的准备之后,年轻的艺术家才应接触颜色,不是用颜色描述,而是作为人的情感表达手段——毕加索

彩色和光是造物主的伟大发明,这里面包含的学科和课题在一篇博文中无法全部阐明,本博文主要是介绍一下几种颜色空间,作为一个科普类的入门知识。

人类对颜色的感知是一种复杂的生理和心理现象,这一现象还远远未被完全了解,但是颜色的物理性质可以由一些实验和理论结果支持表示出来。从初中物理学就学过,一个不透明物体所表现出来的颜色,有该物体所反射的光的性质决定。如,绿叶反射波长为500~570nm的绿光。

人眼的锥状细胞是负责彩色视觉的传感器。人眼中有600~700万个锥状细胞,它们可分为3类,分别感觉红光(65%),绿光(33%),蓝光(2%),虽然比例少,但是蓝锥状细胞却对蓝光更加敏感。所以被看到的颜色就是所谓的原色红,绿,蓝的组合。

RGB颜色空间

RGB彩色模型主要是面向硬件的模型,如彩色监视器和一大类的彩色视频摄像机。这个彩色模型利用的是三原色叠加从而产生不同的颜色。但是三原色叠加并不能产生所有的颜色。这个模型为每一个颜色通道分配0~255,256个级别的灰度值,这样总共就可以产生种颜色。所有这些颜色包含在下图所示的一个正方体中,该正方体内部的每一个点都能由三个通道的坐标确定。对角线是三个分量相等的颜色,就成为一个没有颜色的灰度图。

技术分享

CMY和CMYK模型

CMY模型和RGB模型具有相似的特点,它也是一种面向硬件设备(彩色打印机,复印机)的颜色模型,CMY代表青色,深红色和黄色(颜料原色)的组合。这三种颜色是RGB的二次色,用的是另一种方式定义。如青色表示用白光照射时,反射光是白光减去红光,而白光是红绿蓝光的组合。因此呢就有了RGB和CMY的转换:假设所有的颜色值归一化到(0,1)之间。

技术分享

表示了青色表面不反射红光,深红色不反射绿色,纯黄色不反射蓝色。等量的颜料原色组合可以产生黑色,但是为了打印组合产生的黑色往往不会很纯,因此为了产生真正的黑色,加入了第四种颜色黑色,于是就有了CMYK模型。

HSI彩色模型

RGB彩色模型和CMY模型对硬件设备的实现是很理想的,而且RGB模型可以和人眼感受三原色的事实相匹配。但是很遗憾,这些颜色模型很难适应人对颜色的解释。HIS彩色空间正是为了适应人眼对颜色的感知和描述发展的颜色模型。它是开发基于彩色描述的图像处理方法的理想工具,这个模型利用色调(H),饱和度(S)强度(I)来描述色彩。其中HSI彩色模型和RGB彩色模型转换公式如下所示:

给定一个RGB图像,转换到HIS

技术分享

此处:

技术分享

饱和度如下:

技术分享

强度分量:

技术分享

说明:角度是以红色为起始的基准轴来度量的。

HIS到RGB空间的转换:此处HSI为归一化的值在[0,1]之间。先把H乘,把色调值还原到[0,],把H分为三个扇区进行讨论,

RG扇区:技术分享

技术分享

GB扇区:技术分享

技术分享

然后计算:

技术分享

BR扇区: 技术分享

技术分享

然后计算:

技术分享

到此为止HIS空间的知识完毕!一般图片都是RGB模型,上面的转换公式为我们提供了在HIS空间处理图像的工具。

LAB空间

LAB空间也是一种以数字化的方式来描述人对色彩的的视觉感觉,与设备无关,自然界中的任何一种颜色都可以在LAB空间中表示出来,当然RGB空间中的任何一种颜色都能在LAB空间中找到对应值。LAB空间中,L表示亮度;a表示红色绿色轴,正数表示红色,负端代表绿色;b的正数代表黄色,负数代表蓝色。

从RGB到LAB空间的转换需要通过中间变量XYZ

设一张图片的RGB三个通道的值分别为(r,g,b)

  1. 首先经过一次gamma校正,该函数是用来对图像进行非线性色调的编辑,用来提高对图像的对比度。

    技术分享

其中gamma函数定义为:

技术分享

  1. 计算XYZ

    技术分享

其中M为一个矩阵:

技术分享

?

  1. 计算LAB

    技术分享

其中047,

技术分享

Ohta颜色空间

Ohta颜色空间是1980年Ohta 等人提出的颜色空间,该空间中三个颜色分量,I1,I2,I3,为一组正交的颜色特征集,它们也可由RGB颜色空间转换得到,三个分量各自互相独立。

技术分享

利用该模型也可以对彩色图像进行分割,可以得到很好的效果(黄色的图像背景)

颜色空间那些事儿