我们已经知道,颜色传递过程中,超色域的颜色需要在等色相角平面内映射进目标色域中。那么,接下来的问题是,采用怎样的方法进行映射呢?
以一个实际的颜色传递过程为例。图5-6为将sRGB系统的颜色复制到一个CMYK数字打样机时,输出(为彩色喷墨打印机)的颜色传递情况中色相角hab=260°的色域边界比较图。图中,源色域对应sRGB,目标色域对应CMYK打样机。
图5-6 色域边界线比较(hab=260°)
如图,打样系统的输出颜色已经进行了白点匹配,所用纸白已匹配到了L*a*b*=(100,0,0),但还存在着一个明度轴上最下部位表示的打印输出的黑点(最暗的黑)明度达不到源色域黑点明度的问题。这是因为,实际的染料或颜料在纸张上都不可能复制出绝对的黑。这里,源色域的黑点明度为而目标色域白点匹配之后的黑点明度为
实际上,任何颜色复制系统,都实现不了源色域那样的绝对黑。无论是打印、印刷等输出系统,还是显示器件,所能表现的最暗黑的明度都会大于0。
还要说明的是,对于硬拷贝输出系统,由于色料的非理想性,所实现的非彩色往往稍有偏色,且一般不会与纸白的偏色程度相同。比如这里,打样系统实际输出的白点为L*a*b*=(90.55,-0.99,0.57),黑点为L*a*b*=(7.46,-0.93,1.10)。白点匹配后,新的白点自然成为L*a*b*=(100,0,0),但由于偏色程度不同,黑点则成为L*a*b*=(9.53,-0.84,1.16),带有一定的彩度。
但是,对于白点和黑点,我们的侧重是不一样的。对于白点,颜色比深浅更重要,因为眼睛将这种白作为其他颜色的参考来适应(即进行白点匹配的原因)。而对于黑点,我们并不在意它自身的颜色,更关心的是它的明度,亦即深浅。一方面,对于颜色的感觉,它不起参考白的作用;另一方面,色料的合理应用也不会产生明显的偏色(那样的话,就是一个有缺陷的系统)。黑点的明度起着决定颜色呈现的动态范围的作用。所以,一般我们只计黑点的明度。
回到色域的问题,从整体上看,在该色相角平面上,出现了上、下两个源色域超出目标色域的区域,而在中间一个区域,目标色域反而超出了源色域。
目前为止,大多数色域映射处理的还是源色域超出目标色域的区域,实质上是对源色域超出的部分压缩进目标色域,因而也称为色域压缩映射。对于目标色域超出源色域区域的处理和应用方法则另有研究。
色域压缩映射时,颜色的失真是不可避免的。所能做到的也只能是使人眼的视觉感觉失真最小。为此,需要我们遵循“尽可能准确或尽可能接近”的原则,找到视觉失真最小的色域压缩算法。但也不排除其他的原则,比如对于地图输出的情况,不同区域间用不同的颜色给予差异醒示。若不能严格按照设计的颜色输出,也许尽量保持颜色的鲜艳度使视觉效果更好,而并不在意其与原设计颜色有多大的失真。
综合大部分资料文献,色域映射算法一般包括色相映射、明度映射和彩度映射三个方面,已提出的具体算法有40多种。下面仅就主要的、有代表性的给予介绍。
色相是感知和辨别颜色的最主要属性。大部分算法都以保持色相不变为原则,且基本上都是在CIELAB均匀色空间中保持色相角不变来实现。因此,色域映射算法主要的工作放在了明度映射和彩度映射问题上。
明度和彩度的映射大致分为三类:一类是明度和彩度先后进行压缩,大多算法是在等色相角平面内先进行明度压缩,其后,再进行彩度压缩;第二类方法是明度和彩度同时压缩;第三类方法则是结合上述两种算法的综合算法。第一类较有代表性的算法有LLIN(Johnlson,1979)、LNLIN(Stone and Wallace,1991)、LSLIN(Laihanen,1987),以及LCLIP(Sara,1984)等;第二类主要有SLIN(Luo 等,1996)、CUSP(Ito and Katoh,1995)等;第三类如GCUSP、CCLIN和CARISMA等算法。
1.先压缩明度,后映射彩度
LLIN、LNLIN、LSLIN和LCLIP映射方法,都是首先进行明度的线性压缩。压缩算法为:
式中,为源色域内某点颜色的明度值,为源色域的最大、最小明度,为该颜色压缩进目标色域后的明度值,则为目标色域的最大、最小明度。
当时,即源色域的黑点映射到了目标色域的黑点。对于没有进行白点匹配的情况,则当时,即两个最亮点对应。其他颜色的明度值则按(5-11)式关系,线性地呈现在目标色域中。如此,实现了明度的压缩映射,即目标色域对所有源色域颜色的明度“再现”。
例如,图5-6所示的情况,sRGB的所有颜色经明度压缩到这个打样设备的色域内后,色域边界的变化如图5-7所示。
图5-7 明度压缩后的色域边界关系(hab=260°)
图5-8 向着等明度线方向彩度压缩
当然,也有其他采用非线性明度压缩的方法。
在明度压缩之后,上述方法的彩度压缩差异在于:LLIN算法按图5-8所示的在等色调角平面内,沿着等明度线作彩度的线性压缩。LNLIN作非线性的彩度压缩。LSLIN算法则在等色相角平面内,向着明度轴上L*=50的点作彩度的线性压缩,如图5-9所示。不过这时还伴随着进一步的明度压缩,只是这时的明度没有增大而是降低了。较大不同的是,LCLIP算法是在等色相角平面内,将色域外颜色点的彩度均映射到色域的边界上,而色域内颜色的彩度值则保持不变,这种映射方法称为“截切”。
无论采用怎样的彩度压缩算法,经彩度压缩后,所有源色域中超目标色域的颜色便都进入到了可实现的目标色域中,如图5-10所示。
图5-9 向着明度轴上L*=50的点彩度压缩
图5-10 色域压缩后色域关系
2.明度和彩度同时压缩(www.xing528.com)
明度和彩度的同时压缩是在等色相面上向着明度轴上的一个中心点的线性压缩。
如SLIN算法,向着明度轴上L*=50的中心点进行线性压缩,如图5-11所示,它与LSLIN算法的区别是省去了最初的明度压缩。CUSP算法的中心点则为等色相角平面上,目标色域彩度最大点的等明度线与明度轴的交点,如图5-12所示。
图5-11 SLIN压缩算法
图5-12 CUSP压缩算法
在Morovic J.所做的视觉评价实验中,SLIN、CUSP算法的复制总体效果比LSLIN、LNLIN、LLIN算法好得多,即同时压缩彩度和明度的方法要优于先压缩明度,再压缩彩度的方法。若将测试图像分为高彩度区域和消彩色(非彩色)区域,进一步比较这两类方法发现,SLIN、CUSP算法更多地保持了彩度,特别是高彩度区域的颜色,但在暗色和非彩色轴上过多的明度压缩,会导致这部分颜色复制效果相对较差。
由此可以看出,对于彩色图像复制效果的视觉感知来说,保持彩度可能比保持明度更为重要。
3.综合算法
就总体效果而言,在大部分的颜色复制上,明度和彩度的同时压缩技术优于先进行明度压缩的分步压缩技术,但在暗色和消色轴上的颜色复制结果却恰恰相反。因此,在此基础上,新的算法综合了上述两者的特点和优势,在暗色和消色区域采用明度线性压缩,减少这部分颜色明度的过度压缩,而在高彩度区域,采用同时压缩明度和彩度的算法,尽可能地保持大部分颜色的彩度(特别是高彩度颜色)。
此类算法中以GCUSP、CLLIN、CARISMA等为代表。
GCUSP算法首先按(5-12)式进行与彩度相关的明度压缩:
图5-13给出了参数Pc明度的压缩关系。
图5-13 GCUSP算法的参数Pc
图5-14 CLLIN算法示意图
这种与彩度相关的明度压缩,使消色区的颜色明度完全线性压缩,而高彩度区域的颜色则只作少量的明度改变;然后,再按CUSP算法同时压缩明度和彩度,从而在保持彩度的情况下,改善了消色区域的复制效果。
CLLIN算法在步骤上与LLIN算法相反,如图5-14所示。它是在等色相面上,首先进行彩度的线性压缩,得到如图中虚线所示的边界线。这时,仍然有些源色域色处于目标色域外,因此,要再沿着等彩度线,线性映射明度范围,如图中两条竖虚线所示。此时,A和C点会分别映射到目标色域边界上的B和D点。其他颜色会按照线性规律映射进目标色域中。
该算法自然地在明度轴上保持了线性压缩,保证了明度的映射效果,同时,还尽可能地保持了高彩度色的复制效果。
CARISMA算法则考虑了CIELAB色空间中等色相角平面并不完全代表等色相的特点,在明度压缩后,源色域点的色相也要向目标色域对应点的色相映射,然后再根据两个色域边界的关系作明度和彩度的压缩。其算法过程如下:
(1)首先进行白点匹配及明度映射,使得两个色域在明度轴上得到匹配。
(2)进行色相角的映射。如图5-15所示,源色域和目标色域按顶点分为红、绿、蓝、青、品红、黄六个不同的色相区域,分别作对应顶点的色相角位移。六种颜色之间相邻中间色的色相角可按比例改变。
(3)按下列方式再进行明度和彩度的压缩映射。这个压缩过程与两个色域的边界特征有关。
① 如果一个色域边界完全包含另一个色域边界,则不论两个色域对应顶点的明度值是否相同,都向着两个顶点连线与明度轴的交点a线性或非线性地压缩映射,如图5-16(a)所示。
图5-15 源色域(实线)中六种色相向目标色域对应的色相位移
图5-16 CARISMA算法的明度和彩度压缩
② 如果一个色域边界只是超出另一个色域边界的一部分,如图5-16(b)所示,则向着彩度轴上的某一点b线性或非线性地压缩映射。彩度轴上的这个映射点由两个色域边界的顶点来决定。
总之,对于超色域的颜色,总是要采用某种方法将之压缩进目标色域内,不同的方法效果也各有其特点和优势,也不断有新的更加有效的映射算法开发出来。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。