印刷新闻 印刷技术 印刷展会 印刷词典 院校社团 印刷企业 印刷杂志 电子书库

基于VC6.0建立RGB到Lab颜色空间的转换模型

《广东印刷》2012年第4期 文:张磊 陈玲玲 更新日期:2013-03-24

一、引言

随着印刷行业从模拟到数字化的变化, 色彩的准确再现问题已经变得十分关键。我们需要使用色彩管理,以确保更好、更快更准确地获得彩色图像。要做到图像处理等过程中的色彩统一性和与设备无关性, 就必须实行标准化、规范化的色彩管理。

所谓色彩管理,就是解决图像在各色空间之间的转换问题, 使图像的色彩在整个复制过程中失真最小。其基本思路是: 首先选择一个与设备无关的参考色空间, 然后对设备进行特征化, 最后在各个设备之间转换时有一个明确的关系可寻。虽然不可能让不同设备上的所有颜色完全相同, 但可以使用颜色管理来确保大多数颜色相同或相似,从而达到在某种意义上一致的颜色复制效果。色彩空间转换是指把一个色彩空间中的颜色数据转换或表示成另一个色彩空间中的相应数据, 即用不同的色彩空间中的数据表示同一颜色, 本文是将与设备有关的RGB 色彩空间转换到与设备无关的CIELab 色彩空间。

二、 颜色空间

1 . R G B 颜色空间

彩色空间模型是多种多样的, 应用最为普遍的是R G B ( 红、绿、蓝) 模型。它是面向硬件的, 几乎大部分的显示器都采用这种彩色模型。R G B 相对应于显示器的三个刺激值, 它们组成三维正交坐标系统, 在此系统中计算的任何颜色都落在R G B 彩色立方体内。它的优点是: ① 简单; ② 其它表色系统必须最后转化成R G B 系统才能在彩色显示器上显示。R G B 系统的缺点:① R G B 空间用红、绿、蓝三原色的混合比例定义不同的色彩, 使不同的色彩难以用准确的数值来表示, 并进行定量分析; ② 在R G B 系统中, 由于彩色合成图像通道之间相关性很高, 使合成图像的饱和度偏低, 色调变化不大,图像视觉效果差;③ 人眼不能直接感觉红、绿、蓝三色的比例, 而只能通过感知颜色的亮度、色调以及饱和度来区分物体, 而色调和饱和度与红、绿、蓝的关系是非线性的, 因此, 在R G B 空间中对图像进行增强处理结果难以控制。

2 . L a b 颜色空间

C I E L a b 颜色空间是国际照明委员会向世界各国推荐的通用的与设备无关的、均匀色空间, 是常用于设备色空间与设备色空间进行转换的中间色空间。C I E 色彩模式是以数学方式来表示颜色, 所以L a b 色彩模式不依赖于特定的设备, 这样确保输出设备经校正后所代表的颜色能保持其一致性, 不会受到任何硬件的性能和特性的影响。L a b 所定义的色彩最多, 表达的色彩空间比R G B 、C M Y 模型所表达颜色范围大, 它的颜色光谱囊括了R G B 和C M Y 的颜色光谱。并且处理速度与R G B模式同样快, 比C M Y 模式快很多。

L a b 色彩空间是由一个明度因数L 和两个色度因数a、b 组成的,在这一坐标系统中,+ a 表示红色,- a 表示绿色,+ b 表示黄色,- b 表示蓝色。颜色的明度由L 的百分数来表示。因为L a b 色空间所反映的色彩范围大于RG B颜色空间与CMY K 颜色空间, 所以彩色数据从L a b 到其它色彩空间时不会因为数据量不够而引起色彩偏差。

因为L a b 颜色空间与设备无关, 不管使用什么设备( 如显示器、打印机、计算机或扫描仪) 创建或输出图像,这种颜色模型产生的颜色都保持一致。用L a b 颜色模型可解决在颜色复制过程中因使用不同的显示器或不同的印刷设备( 打印机) 而引起的颜色变化。L a b 色域最大,它包含了R G B 和C M Y K 色域内的全部颜色, 它是一种包含所有颜色的标准化颜色模型。使用L a b 颜色空间,可以保证在创建统一的颜色文件时, 与输入或输出( 打印) 的设备无关。因而L a b 颜色空间是色彩管理中常用的中介色彩空间。

三、插值算法

基于三维查找表的三维插值技术广泛应用于将一组三维数据映射到另一组三维数据的领域, 如彩色匹配等。通过这种技术任何复杂的函数计算如G a m m a 校正,矩阵掩模和色域映射等都能得到实时实现。

三维插值法,也叫做三维查找表插值法(LUT),它包含了三个部分: 分割(packing), 查找(extracting),插值(interpolation)。分割就是将源空间的区域进行分割(往往采用等步长的分割方式),并取一些采样点来建立查找表。换句话说, 就是在源空间的每个坐标上均匀分割来建表(图一)。如果所作的是n 级分割,就能得到(n-1)3 个小立方体和n3 个栅格点(交叉点)。这样分割的好处是可知每个方块是与哪个方块紧挨着。这样,我们只需存储每一个坐标的起始色块和间距就可以了。通常源空间的栅格点是给定的,而目标空间对应的点是通过测量得到的。将源空间和目标空间对应的点列成表的形式,就得到了查找表。由前面的分割可得到若干栅格点,颜色空间中非栅格点上的点就要凭借距它最近的一些栅格点,经过插值来确定。这里的查找就是要从查找表中找到在源空间中距离指定点最近的几个栅格点( 四面体插值需要四个),这些被抽取出来的采样点围成一个包含插值点的多面体结构,再根据查找表中这些栅格点与目标空间中对应的点的关系,推导出指定点到目标空间的对应点。而对于非均匀分割,需要一系列的比较来获得最接近的采样点。在方块采样点内进一步选取是有必要的。

几何插值法实际上就是线性插值法在三维空间中的应用。现以一维线性插值法来举例说明, 然后再扩展到两维和三维。图二表示的就是一维线性插值:

13032013

曲线上有栅格点p0 和p1, 它们之间有点pp 点即为要插值的点。现用直线上的点pc 进行插值, 他所对应的值pc( x) 可由下式得到

13032014

有四种常用的三维插值算法, 即三线性插值( t r l i n e a r i n t e r p o l a t i o n), 三棱镜插值( p r i s mi n t e p o l a t i o n), 金字塔插值( p y r a m i d i n t e r p o l a t i o n)以及四面体插值( t e t r a h e d r a l i n t e r p o l a t i o n)。其中三线性插值具有较好的插值精度和可接受的计算复杂度,是当今比较通用的三维插值算法。其特点是算法规则简单、实现容易, 但需要抽取八个采样点并分组进行多次反复迭代相乘并求和的计算, 使得总计算量大。金字塔插值算法将抽取采样点的数目减少到了五个, 因此需要五个乘法与四个加法运算即可。四面体插值将需要的采样点数目进一步减少到最低要求的四个, 因此只需要四个乘法和三个加法运算即可完成插值。但四个采样点的抽取和插值权重的计算比三线性插值的复杂。

四、算法实现

1 . R G B – L a b 颜色空间转换

① 根据三维查找表算法, 用源R G B 空间进行五级均匀分割采样, R 、G 、B 采用的分割节点是: 0 , 6 4 ,1 2 8 , 1 9 2 , 2 5 5 。并且将采样点对应的映射值按照一定规则排列成查找表。如果刚好是栅格点, 则直接调用对应的映射值, 如果不是, 进行插值。

② 把采样的1 2 5 个点按照一定的规则排列组合起来, 依次在p h o t o s h o p 中输入R , G , B 对应的值, 获得对应的L , a, b 的值, 为建模提供数据。

③ 判断要插值的点所属的立方体, 找出该立方体的八个顶点。

④ 根据公式, 计算出转换模型系数。

13032015

2 . 模型误差分析

① 根据前面的建模结果, 用五级非均匀分割的点进行模型误差分析。本实验采用的分割节点为3 2 , 9 6 ,1 6 0 , 2 2 4 。

② 把采样的6 4 个四级非均匀分割点按照一定的规则排列组合起来, 依次在p h o t o s h o p 中输入R ,G , B对应的值,获得对应的L ,a,b 的值,为评价精度提供数据。

③ 利用色差公式计算单点误差, 平均误差, 最大误差, 最小误差:

平均误差即是根据测试数据计算得到的所有误差的平均值。而可见分割级数越高, 误差就越小, 模型也就越精确。

3 . 色域绘制

根据建模结果。首先对O P E N G L 中的一些参数进行设置, 并对其进行初始化操作, 然后再画出五级均匀分割的1 2 5 个点和非均匀分割的6 4 个点R G B 及对应的L A B 各自的坐标。最后通过在V C + + 编译环境下,调用O P E N G L 中提供的基本绘图函数画出各色彩空间的模型来。

RGB与LAB颜色空间

五、实验结果及分析

如下所示, 图五为主界面对话框, 图六为色差分布对话框。

三线性法误差分布图

此界面上半部分, 可以输入任意的R G B 值可以转换为L a b 值。下半部分可以对检测点进行单点的误差分析, 对比计算值与测量值, 并计算单点误差, 计算出单点误差后, 可以算一下整体误差。

误差分布图

通过色差分布图, 可以看到如下数据, 如表1 。

模型误差统计表,金字塔法误差分布图

通过数据我们发现建立的模型误差比较小, 很好地实现了R G B – L a b 空间的建模转换, 并且通过均匀分割点和非均匀分割点的采样和测试得到了四级分割的误差分布, 最后根据采样点绘制出了R G B 颜色空间的色域和L a b 颜色空间的色域。但是由于五级分割采样的点比较少, 建模还不够精确。