背景技术
许多图像,不管是数字捕获的还是在传统胶卷上的,都会与消费者期望看见的或者与法定的颜色方案有着颜色差异或者变化。这可能是由于例如消费者方面进行的不正确摄影设置,导致例如图像的曝光不足或者曝光过量、不合适的照明、胶卷类型导致的颜色场景变化、显影处理、打印料(stock)染色、或者使用性能差的照相机。此外,人眼看见的可能与数字记录的或者胶卷上记录的颜色范围不同。特别地,人类视觉系统与类似色相关地并且根据照明条件来识别颜色,而数字和胶卷摄影力图记录物体的实际颜色。
具有白或黑区域的图像出现在监视器屏幕上或者在打印时可能与消费者期望的不同。例如,用在诸如驾驶证、护照和其它标识文件的官方文件中的摄影识别(ID)图像被规定为具有白色背景,但它们通常看起来具有浅色背景,不管是中性颜色(例如,白、黑或灰)还是有色的(例如,蓝色调的或红色调的)。雪或者冰场景可能看起来是整体蓝色的。应当注意,自然界的雪和冰通常确实具有蓝色或绿色色调(tint),但是消费者期望看见更加白的雪和冰。诸如森林或者洞穴图像的阴暗场景也通常会朝着特定的颜色失真,例如由于树叶引起的绿色、由于照明条件引起的红色或黄色。其它颜色也可能与消费者的期望有失真。
改变图像的颜色和明亮度(brightness)两者的颜色平衡通常用于试图校正不想要的着色,但是会导致其它不可接受的着色变化。传统的自动场景平衡算法倾向于调整曝光,以使得图像的平均颜色是中性灰色,这对于许多消费者的摄影图像是可接受的,但是对于特定的场景或者满足法定的着色要求是不可接受的。例如,简单地平衡摄影ID图像以使得背景成为白色通常会使得对象的脸、头发和眼睛的着色失真,并且会使得脸变亮,从而冲去特征。可替换地,在这样的场景中朝着中性灰色平衡可能会受对象衣服的着色的影响,并且例如产生有色背景。相似地,从天空、雪或冰场景中去掉一些蓝色可能不适当地从其它对象(例如,人、汽车、建筑物和树叶)中去掉了蓝色调,导致超出可接受水平的着色改变。对于具有暗阴影的图像也是如此。使阴影变亮或者改变阴影的颜色可能会影响整个图像,因为使得阴影太亮或者因为不可接受地移动了图像的其它区域的颜色。当进行颜色平衡以校正其它颜色的倾斜(skewing)时,会发生类似的不可接受的结果。
照相机、录像机或者其它成像装置在记录图像期间或之后,或者在图像的初始处理期间,通过物理、光学或者数字处理方法,可以自动地进行颜色平衡和其它处理技术。这样的处理也可能不利地影响得到的图像,例如由于基于占据大部分图像的颜色而使颜色平衡倾斜,或者增加颜色的饱和度水平使得期望中性着色的区域被影响。
在图像中代表对象的真实颜色或者对象的期望颜色的希望颜色的实现和颜色平衡在许多不同的行业中是重要的。摄影ID图像、消费者和专业照片以及广告媒体仅仅是其中颜色极其重要的工业的一些示例。例如,晾衣绳、食物项目、公司标志或者运动团队的广告的成功依赖于实现对象的期望的逼真着色。不管图像的最终格式如何,是否显示在监视器上、打印介质上、摄影介质上还是一些其它介质,都希望控制图像的视觉特性。
已知调整图像或场景的背景的方法用在文档处理和摄影工业中。在文档处理中,通过强制背景变白可以去掉由复制或处理引起的伪像(artifact),如例如在美国专利6,323,957、6,222,642和5,157,740中所述的。在摄影工业中,特别是对于摄影识别图像,背景与对象的分离以及用希望的图像或颜色来代替背景也是已知的,例如在美国专利6,999,113、6,950,130、6,912,313和5,913,019以及WO94/26057中所述的。变换彩色图像信号同时保持阴影和高亮特性的方法记载在美国专利6,278,800中。美国6,608,926描述了一种彩色底雾(colorfog)校正,其中感兴趣的区域在校正之前被去掉。美国专利申请公开US 2004/0071343描述了使用LCC颜色空间转换来校正图像中的彩色底雾的方法。US4928167类似地描述了使用到LCC颜色空间的转换对视频信号进行色调校正。
希望具有一种当图像内的特定颜色的希望值已知时校正该特定颜色的办法。
发明内容
本发明目的在于一种将数字图像中的颜色调整到希望的颜色值的方法,其中该方法包括:
识别该图像的至少第一部分,其中该第一部分包括该颜色;
分析该第一部分以确定代表第一部分颜色的颜色值;
确定该颜色值的颜色调整参数以将该颜色值调整到该希望的颜色值;
将该颜色调整参数应用到该图像的该至少第一部分;
其中该方法还包括下列步骤中的一个或多个:
在分析该第一部分以确定颜色值之前对该图像的第一部分执行去饱和(desaturation),并且使该颜色值再饱和(resaturate);以及
识别该图像的至少第二部分,其中该第二部分具有颜色值极值(color value extreme),分析该第二部分以确定代表该颜色值极值的颜色值,以及在确定该颜色调整参数时使用该第二部分颜色值。
可替换地,将数字图像中的颜色调整到希望的颜色值的该方法可以包括:
识别该图像的至少第一部分,其中该第一部分包括该颜色;
分析该第一部分以确定在至少一个颜色通道中的代表第一部分颜色的颜色值;
确定该至少一个颜色通道的每一个中的颜色值的颜色调整参数,以将该颜色值调整到希望的颜色值;
将该相应的至少一个颜色通道的每一个中的颜色调整参数应用到该图像的该至少第一部分;
其中该方法还包括下列步骤中的一个或多个:
在分析该第一部分以确定该至少一个颜色通道的每一个中的颜色值之前,在该至少一个颜色通道的每一个中对该图像的第一部分执行去饱和,并且使该至少一个颜色通道的每一个中的颜色值再饱和;
识别该图像的至少第二部分,其中该第二部分具有颜色值极限(color value extreme),分析该第二部分以确定代表该至少一个颜色通道的每一个中的颜色值极值的颜色值,以及在确定该相应的至少一个颜色通道的每一个的颜色调整参数时使用该至少一个通道的每一个的第二部分颜色值。
本发明还包括一种用于调整彩色图像(color image)的系统,其中该系统包括:
计算机,其具有存储器,用于存储至少一个彩色图像和至少一个调整过的彩色图像;
显示器,用于显示至少一个彩色图像、至少一个调整过的彩色图像,或者显示这二者;
输入设备,用于接收要调整的至少一个彩色图像,其中该输入设备可通信地连接到该存储器;
输出设备,用于该至少一个调整过的彩色图像;
其中该计算机分析来自该输入设备的在该存储器中的至少一个彩色图像的至少第一部分,其中该第一部分包括要调整的颜色;分析该第一部分以确定代表第一部分颜色的颜色值;确定该颜色值的颜色调整参数,以将该颜色值调整到希望的颜色值;以及将该颜色调整参数应用到存储在存储器中的该图像的该至少第一部分;以及
其中该计算机还在分析该第一部分以确定颜色值之前,对该图像的第一部分进行去饱和,并且使该颜色值再饱和;或者
识别该图像的至少第二部分,其中该第二部分具有颜色值极值,分析该第二部分以确定代表该颜色值极值的颜色值,以及在确定该颜色调整参数时使用该第二部分颜色值。
本发明的有益效果
本发明能够将图像中的特定颜色调整到希望的颜色。这使得图像的校正能够满足法定规定,能够更好地反映原始对象的实际颜色、或者能够调整到消费者的期望或希望。这能够校正不合适的先前处理,例如,成像装置上的较差的颜色平衡和曝光设置。这可以在无需不可接受地改变图像内的其它颜色或明亮度水平的情况下完成。
具体实施方式
本发明使得能够将图像中的特定颜色调整到希望的颜色。可以进行图像内的一个或多个颜色的调整,以更好地将输出介质上的最终图像外观与原始对象颜色、消费者对颜色的期望相匹配,或者满足法定要求。
众所周知,在摄影领域中,用于代表对象颜色的颜色空间可以依赖于用于捕获图像、存储图像、操纵图像、或者再现(render)图像以输出到例如电子显示设备、打印介质或者摄影介质的装备,或者可以是预定义的、与设备无关的颜色空间。各种颜色空间的例子可以包括但不限于,RGB(红-绿-蓝)或如sRGB颜色空间,CMY(青色-品红-黄色)和CMYK(青色-品红-黄色-黑色)颜色空间的变体颜色空间,L*a*b颜色空间,亮度(luminance)-色度颜色空间(例如但不限于YCrCb),XYZ颜色空间,和线性或对数度量(例如线性或对数反射率(reflectance)、线性或对数辐射率(radiance)以及线性密度度量)。每种颜色空间可以具有两个或更多个颜色通道,每个颜色通道用于颜色空间的每个颜色或特性(例如,亮度或明亮度)。例如,RGB颜色空间可以被分成三个颜色通道,每一个颜色通道用于图像的每个片段或像素的红色、蓝色和绿色的量。对于CMYK颜色空间,可以使用多达四个颜色通道,每一个颜色通道分别用于青色、品红、黄色或黑色。YCrCb颜色空间可以具有三个通道,亮度和两个色度通道。根据希望的颜色调整,可以使用给定颜色空间的一个或多个通道,其可以被认为是感兴趣的一个(或多个)颜色通道。可以使用所有的色度通道。
为了调整颜色或明亮度(曝光),颜色空间值可以被首先变换到更易操纵的数学度量,例如线性或对数反射率、线性或对数辐射率、或线性密度。颜色调整参数然后可以被应用到该度量的图像像素值,并且然后调整过的图像可以被转换回工作的颜色空间,或者根据需要转换到不同的颜色空间。例如,为了在其被存储的RGB颜色空间和打印机所用的CMYK颜色空间之间转换图像,RGB图像可以被转换成线性反射率度量,根据需要进行调整以获得希望的颜色或明亮度调整,被转换回RGB空间,然后被转换到CMYK颜色空间,从而使得打印机输出更好地接近图像中的希望颜色。这样的转换是基于假定的再现曲线的,其中到特定颜色空间的转换和从该特定颜色空间的转换彼此相反。
图像通常被存储为数字信息,并且被编码成二进制数,用于由诸如计算机之类的电子设备存储和操纵。图像的像素通常被认为是代表从0.0到1.0的实数。为了由计算机表示为二进制数,每个颜色必须被分配某个数量的比特作为编码值。八比特表示(0000000到11111111)导致256种可能性,其等效于范围从0到255的值。这样,0.0到1.0的原始像素值由255进行缩放,用于在8比特系统中表示。如果需要更多的精度,则可以使用更大的比特系统,通常为12比特系统,其中每个像素值由4095进行缩放。为了用在各种线性和对数度量上,12比特系统达到良好的结果,不过具有较少代表比特的系统的使用会达到可接受的结果。
下面将参照附图来描述本发明的方法,其中相同的标记指代相同或相似的步骤。图1示出了本发明的概要,其中特定的可替换路径在图2-4中示出。
调整图像的颜色值的方法包括将图像输入到诸如计算机的具有存储器的系统中100。该图像最初可以是例如来自照相机、便携式存储器设备、从连网的或者可通信的位置或设备传输的、或者从印刷物、底片或正像胶片、或者显影照片扫描输入的数字图像。可以使用任何获得数字图像的方式。
在110,识别图像的第一部分。该第一部分可以通过任何预编程方法被自动识别,所述预编程方法例如预定位置、形状识别、面部检测、模式检测、场景检测、图像分割或者其它已知的自动检测图像主题(subject matter)的方法。如果进行自动识别,则这种识别可以在显示器上向用户指出,以在需要的时候进行确认或调整。可替换地,用户可以用鼠标、操纵杆、触敏屏幕、光学鼠标或者其它已知的指示方法通过点击或指向屏幕上的至少一个区域以识别用户指定的区域来进行确定。用户可以选择图像的特定点或者例如通过在感兴趣的一个或多个区域周围画出几何形状或不规则形状,来指示一个或多个感兴趣的区域。半自动的检测程序可以被用于修改用户指定的区域。例如,用户绘制的锯齿线可以被自动平滑。
该第一部分可以是整个图像,或者图像的区域,例如,图像区域的50%、25%或者更少,或者可以是例如图像的两个角落部分的区域的组合。如果该图像的多于一个区域被指定为第一部分,则这些区域可以是该图像内邻接的或不邻接的区域。
一旦在110中识别了图像的第一部分,则在130,分析该图像的第一部分,以确定第一部分的代表性颜色值。可以通过本领域已知的任何方法来进行此分析。例如,可以使用直方图来确定图像的第一部分的每个颜色通道中的颜色值的范围。直方图被认为是与像素值的出现频率对应的数据,而不管数据格式如何,例如曲线形式、表格形式、或者矩阵。可以使用累积直方图。如果使用直方图,可以获取感兴趣的每个颜色通道的单独的直方图,或者可以获取感兴趣的通道的组合直方图。可以通过分析自动地确定或者由用户来确定代表性颜色值。自动确定可以包括选择直方图的预定义百分点。该百分点可以随着第一部分仅包含希望的颜色值的确定性而变化。自动选择的代表性颜色值可以通过在显示器上显示颜色、或其代表性数值,而提供给用户,以进行确认或调整。可替换地,在图像的第一部分的所选范围或整个范围上的颜色或代表性数值可以被呈现给用户,以选择代表性颜色值。也可以基于来自图像的代表性样本的数据来预先编程代表性颜色值,从而消除了在确定步骤中为每个图像执行直方图或类似功能的必要性。
在第一部分的代表性颜色值被确定之后,在170,确定该代表性颜色值的颜色调整参数,其中颜色调整参数足以将代表性颜色值调整到希望的颜色值。颜色调整参数可以是例如缩放因子或偏移。可以考虑代表性颜色值、希望的颜色值和颜色空间来确定合适的颜色调整参数。
一旦颜色调整参数被确定,则在180,其可以被应用到图像的该至少第一部分,从而调整图像的该至少第一部分的颜色值。颜色调整参数可以被应用到整个图像,或者根据需要应用到图像的一个或多个所选部分。如果仅应用到图像的一部分,可以使用各种技术中的任意一种,包括图像分割、形状识别、面部检测、模式检测和场景检测。例如,可以进行逐像素的分析,以确定像素的颜色值与希望颜色之间的差。个体像素可以被改变为希望的颜色或者根据颜色调整参数被改变;例如使用颜色调整参数的某个分数(some fraction of)来将其值移动到更接近于希望的颜色;或者根据像素的值与希望颜色之间的差而保持不变。
为了更好地确定代表性颜色值,希望在确定代表性颜色值之前,首先在120中对图像的第一部分进行去饱和。在确定了代表性颜色值之后,在140,然后使该代表性颜色值再饱和,以用于确定颜色调整参数。去饱和以及再饱和允许颜色值中的极值被削弱(deemphasize),这可以使得代表性颜色值的确定更精确。去饱和可以包括识别图像的饱和度极值,以及调节(tune)去饱和因子来计及(account for)饱和度极值。“饱和度”是颜色值和颜色中性(color-neutral)之间的差。在“颜色中性”中,所有颜色通道在包括具体参考白色的标准红绿蓝(sRGB)颜色空间中都具有相同值,或者在具有不同或相同参考白色的可替换颜色空间中具有等效颜色。sRGB在例如Stoke s等人的1996年11月5日的“A Standard Default Color Space for theInternet-sRGB”(可以在http://www/w3.org/Graphics/Color/sRGB中找互)和Gary Starkweather的“Colorspace Interchange UsingsRGB”(可以在white.s tanford.edu/-brian/psy221/reader/Starkweather.sRGBWhitePape r.pdf)中有所解释。颜色中性的示例是RGB颜色空间中的参考白色、黑色或任何灰色,以及其在可替换颜色空间中的等效色。这里所用的“去饱和”等术语意思是将给定的颜色值朝着颜色中性移动或移动到颜色中性同时保持明亮度不变。“再饱和”等术语意思是将颜色值移离颜色中性。再饱和可以是去饱和操作的准确的逆操作,去饱和操作的近似逆操作,或者与去饱和操作不相关的操作。
为了执行去饱和或再饱和操作,其中提供图像的颜色空间可以首先被改变到色度-亮度颜色空间,被去饱和或再饱和,然后被转换回原始颜色空间。将色度值与亮度分开使得能够更准确地调整颜色值的色度部分,从而使得能够更好地区分第一部分的真实颜色值和第一部分中可能会不希望地影响代表性颜色值确定的任何特征的颜色值。也实现了对亮度值的任何调整的控制。例如,如果希望的颜色调整的目标是参考白色,则希望在确定代表性颜色值之前,在去饱和期间降低颜色通道的亮度。相似地,如果希望的颜色调整的目标是黑色,则希望在确定代表性颜色值之前,在去饱和期间增加颜色通道的亮度。无论在哪种情况下,将亮度值调整某个量会增加第一部分的真实颜色值和第一部分中可能会不希望地影响代表性颜色值确定的任何特征的颜色值之间的差,从而增加去饱和的有效性,并且对于再饱和则相反。
可选地或者除了第一部分的去饱和/再饱和之外,在150,可以识别具有重要特征的图像的第二部分。图像的第二部分可以包括不希望剪裁(clip)的颜色值,其中“剪裁”和类似术语意思是颜色值的损失,因为其处于输出设备能够产生的值的范围之外。在颜色值被剪裁的地方,该颜色值将被显示为该设备能够产生的最大颜色值,而不是实际颜色值。在图像的特定区域的颜色或明亮度是重要的颜色值的地方,这样的颜色值的剪裁是不希望的。可以与识别图像的第一部分相同的方式来进行对包括不被剪裁的区域的图像的第二部分的识别。
一旦图像的第二部分被确定,则在160,在图像的第二部分内的颜色值极值被识别。该颜色值极值可以在一个或多个单独的颜色通道中被确定,并且可以是在颜色调整过的图像中希望不被剪裁的、来自任何通道的最大或最小亮度。最大和最小值(如果都被使用的话)可以来自相同或不同的颜色通道。选择最大颜色值还是最小颜色值或者选择这二者可以基于期望处理的图像类型被预先编程,或者可以由用户选择。再者,尽管使用实际极值通常是希望的,但是如果需要的话,该值可以由用户选择或调整。
一旦颜色值极值被确定,则其与第一部分代表性颜色值相结合使用以在170中确定颜色调整参数,从而使得颜色调整参数不会使颜色值极值在输出设备的范围之外。然后在180,颜色调整参数被应用到图像的至少一部分,并且在一些情况下,其被应用到整个图像。
在确定颜色值极值时,可以对图像的第二部分进行去饱和以及再饱和。应当注意,可以识别图像的多于一个的附加部分,用于确定颜色值极值或者不应当被剪裁的可替换颜色值。任意数目的这种值可以与图像的第一部分的代表性颜色值一起用于确定颜色调整参数。例如,可以确定最大和最小值二者,它们都不应当被剪裁。
本领域公知的其它处理方法可以被应用到图像。例如,一旦上述颜色调整方法被执行或者在执行该颜色调整方法之前,可以应用图像的场景平衡。在颜色调整之前或之后,可以相似地进行任何其它调整。在大多数情况下,希望在颜色调整之后进行进一步的调整,以便避免剪裁图像的重要区域,或者避免图像的希望部分的颜色值改变到可接受范围之外。
作为本发明的示例,将说明摄影识别(ID)图像的产生。这样的图像典型地需要“白色”背景。使用RGB颜色空间和8比特表示,白色等效于所有颜色(红绿蓝)通道中的值255以及最大明亮度。总体上或部分地,用于摄影I D图像的任何背景实际表现为255是不太可能的。因此,希望强迫背景的着色尽可能接近于白色而不会过度改变对象的外观,因为对对象的这种改变将损害图像在识别方面的用途。
为了调整可能使用胶卷或数字摄影而拍摄的图像,检查图像的数字化版本以识别包含希望是白色的背景的至少一部分图像。该识别可以由搜索预定位置的程序、形状识别、面部检测、模式检测、场景检测、图像分割、颜色值或其它已知的自动检测图像主题的方法自动完成。可替换地,操作员可以通过例如利用图形(例如但不限于方框)高亮显示一部分或者利用鼠标或在触摸屏上指向背景部分来选择图像的该部分,
一旦该背景部分被识别,则其被分析以确定代表背景的颜色值。这可以通过在工作颜色空间的每个颜色通道中获取已识别的图像的第一部分的直方图来完成。也可以使用确定代表性颜色值的其它方式,例如但不限于,选择平均值或中值,或者用户选择的值。在摄影ID图像的示范性情况下,假设背景开始时接近于白色。这样,可以基于识别为“背景”的颜色的全部范围是图像的真正背景部分的确定性,来选择在背景的颜色值的返回的识别的范围内的值。例如,如果图像的大部分(例如,图像的一半)被用于分析背景,则其可能包括不是背景的部分,例如对象的部分。因而,在直方图内较接近于白色的颜色值(例如,85%或90%的点)应当被当作图像背景的代表性颜色。当选择更有可能仅代表背景的较小样本,例如图像的顶端部分、图像的一个或两个顶角、或者用户指定的区域时,可以取中值作为图像背景的代表性颜色,例如50%的点。所选择的百分点将反比于仅分析图像的希望部分的确定性。根据需要,可以在每个颜色通道中取不同的百分点,或者在所有颜色通道中取相同的百分点。
一旦每个颜色通道的代表背景颜色的颜色值被识别,则为每个颜色通道确定颜色调整参数。颜色调整参数适于将代表性颜色值调整到希望的颜色值。例如,如果代表性颜色值是200,并且希望的颜色值为255,则需要1.275的缩放因子来达到255的颜色值。每个颜色通道的颜色调整参数可以相同或不同。如果希望每个通道的颜色调整参数相同,则其可以从为感兴趣的每个通道确定的颜色调整参数的平均值导出。
一旦每个颜色通道的颜色调整参数被确定,则其至少被应用到图像的所识别部分,并且可以被应用到整个图像。为了确信图像的不是背景的其它区域(这些区域可能已包括在图像的所识别部分中)不会不利地影响所选择的代表性背景颜色,所选择的图像部分可以在获取直方图之前被去饱和。图像的所识别部分的每个颜色通道的去饱和将按比例缩减颜色差或明亮度差,从而减少对代表性颜色值的任何影响。一旦选择了每个颜色通道中的代表性颜色值,则该颜色值被再饱和到原始颜色尺度(color scale),并且用于确定该颜色通道的颜色调整参数。
为了确保图像的其它重要区域不会通过应用所选的颜色调整参数而被不适当地调整,则进一步考虑图像的另一重要特征的颜色或明亮度等级来选择颜色调整参数,所述重要特征例如在摄影ID图像的情况下的对象的脸。图像的第二部分可以被再次自动地或由操作员识别,并且该第二部分的直方图可以被获取。第二部分可以是图像的两个或更多个区域,这些区域在图像内可以邻接或不邻接。第二部分的直方图的目的是识别一个或多个颜色通道中的颜色值极值。在将颜色调整参数实际应用到图像的至少第一部分之前,由所确定的颜色调整参数来调整每个颜色通道的颜色值极值。如果任一具体颜色通道的调整过的颜色值极值在颜色的可打印范围之外,则所有颜色通道的颜色调整参数被适当地调整,以保持颜色值极值处于颜色的可见或可打印范围之内,从而避免剪裁任一颜色通道中的颜色值极值。在摄影ID图像的示例中,这将保护人脸上的高亮部分(highlights),或者一件衣服的明亮度,同时仍然允许将背景变白至接近于白色的颜色,甚至变为真正的白色。
尽管上面的描述将颜色调整参数直接应用到工作颜色空间中的图像的颜色值,但是这可能不是希望的,其中所述工作颜色空间可能与其中原始记录图像的颜色空间不同。本领域中公知的是,在调整颜色平衡和曝光量中的一个或多个之前,将各个颜色空间中的图像转换为线性或对数反射率,线性或对数辐射率,或线性密度。因而,上述顺序变为:确定代表图像的一部分的颜色值;将该颜色值转换为例如线性或对数反射率;基于代表性颜色值,确定线性或对数反射率度量中的颜色调整参数;将图像转换为线性或对数反射率度量;在线性或对数反射率度量中将颜色调整参数应用到图像的至少第一部分;以及将图像转换回工作颜色空间。这些步骤可以作为如图5a所示的一系列操作被直接应用到该图像,或者通过利用如图5b所示的查找表(LUT)应用到该图像以提高处理效率。可以确定给定颜色空间的颜色值和各种线性或对数度量之间的关系,如本领域所公知的。作为示例,sRGB颜色空间的线性反射率与颜色值的曲线图如图6所示。
对于图像的每个颜色通道LUT可以具有单独的数据。为了建立供使用的单个LUT,准备用于将图像转换到线性或对数反射率、线性或对数辐射率、或者线性密度度量的第一LUT,将颜色调整参数应用到第一LUT,并且将调整过的LUT值转换回工作颜色空间,从而产生可以被应用到图像数据的单个LUT。每个图像可以具有唯一的LUT。
可替换地,如果可以假定对于需要颜色调整的所有图像而言,摄影条件近似相同,则可以准备“标准”LUT,以提高颜色调整过程的效率。例如,专用于摄影ID图像的摄影工作室或工作间应当具有照相机相对于相关背景、对象和光源的一致放置;相一致的照明;和设定的背景。背景的图像可以被拍摄并且用于确定使背景看起来是白色的合适的LUT,该LUT然后将被应用到利用该设置拍摄的所有摄影ID图像。这将不会计及对象的衣服或脸的饱和度或明亮度的变化并且因此可能导致对象的一些剪裁,但是LUT可以基于使背景成为可接受的白色的颜色调整参数,而不会过度地剪裁许多面部特征或衣服颜色。这可以例如根据摄影ID图像的样本确定,其中基于在所有取样的摄影ID图像中防止剪裁所需的颜色调整参数来确定中值颜色调整参数或适当确定的其它值。再次,可以为在相似或相同条件(例如照明和与对象的距离)下产生的任何系列的图像(例如水下图像)准备这种类型的LUT。当在逐图像的基础上确定颜色调整参数时将会达到最佳结果,但是将预先编程的LUT应用到所有相似拍摄的图像,可以实现高效率和可靠的可接受的结果。
在颜色空间是非线性,或者在其被定义为使得参考白色具有不相等的颜色通道值的情况下,可以在分析第一部分的调整步骤之前或者在去饱和之前对颜色值进行归一化,并且可以在识别代表第一部分的颜色值之后或者在这样的代表性颜色值的再饱和之后,转换回原始颜色空间。
为了简便,任何开始的颜色空间可以被转换到要在其中工作的另一个颜色空间。例如,亮度-色度颜色空间可以被转换到RGB或sRGB,以便调整颜色值。为了计算方便,所转换后的颜色空间可以被进一步转换到线性反射率或对数反射率,线性辐射率或对数辐射率,或线性密度。
根据上面的描述应当显而易见的是,这个过程对于保持阴影以及高亮部分都是有用的。可以按照与将标识照片背景变为接近于白色相似的方式来将黑色或其它暗色变为接近于希望的黑色值,由此暗色区域中的图像经历变黑效果。另外,如果需要的话,可以使用这里描述的技术将图像中的其它希望的颜色强制变为特定颜色,例如,使水成为特定的蓝绿色的阴影。
许多不同类型的设备可以用于实现本发明的方法,如图7所示。例如,具有存储器210并且能够接受图像数据作为输入的任何计算机系统200可以被用在该方法中。计算机系统的示例包括桌上型或膝上型计算机、一体机(kiosk)和小型实验室(minilab)。该计算机可以是连网的或者独立的。该计算机可以是成像装置(例如照相机)的一部分、直接连接到成像装置、或者能够接受来自成像装置、便携式存储器存储设备或者诸如因特网的网络的输入。根据需要,该计算机可以包括一个或多个USB端口、串行端口、便携式存储器设备读取器或者网络连接。
显示器220可以用于同时或按序观看原始彩色图像和调整过的彩色图像。该显示器可以是计算机系统的一部分,或者与计算机系统通信以接收要显示的图像数据。显示器的例子包括监视器,例如阴极射线管(CRT)和液晶显示器(LCD)监视器、电视机、照相机显示屏幕、打印机显示屏幕、移动电话显示屏幕和任何类型的其它显示屏幕,包括LCD、有机发光二极管(OLED)、CRT及其它。
该计算机系统可以包括或可通信地连接到输入设备230,其中该输入设备能够接受至少一个彩色图像进行调整。该输入设备可以可通信地连接到计算机的存储器。合适的输入设备可以包括但不限于,盘驱动器、紧凑盘(CD)驱动器、数字视频盘(DVD)驱动器、便携式存储器读取器、通用串行总线(USB)端口、红外端口、wifi接收器、光学数据扫描仪或接收器、以及诸如互联网、广域网(WAN)或局域网(LAN)连接的网络连接。
该计算机系统还可以包括用于原始或调整过的彩色图像的输出设备240。该输出设备可以是计算机系统的一部分或可通信地链接到计算机系统。合适的输出设备的例子包括但不限于,打印机、摄影打印设备、复印机、便携式存储器设备、盘、CD、DVD、存储器位置或网络位置。合适的打印机可以包括热打印机、喷墨打印机和激光打印机,不管是消费者级别、商业级别的还是专业级别的。摄影打印设备可以包括那些通常存在于小型实验室和摄影实验室中的设备以及单机设备。
一旦通过输入设备接收到进行颜色调整的图像并且将其放在存储器中,则计算机系统分析存储器中的彩色图像的至少第一部分,以确定代表第一部分颜色的颜色值。作为确定代表性颜色值的一部分,计算机可以在分析第一部分以确定颜色值之前将图像的该第一部分去饱和,并且使该颜色值再饱和。使用该颜色值,计算机然后确定该颜色值的颜色调整参数,以将该颜色值调整到希望的颜色值。颜色调整参数可以被应用到存储在存储器中的图像的该至少第一部分。在应用颜色调整参数之前,计算机可以识别图像的至少第二部分,其中该第二部分具有颜色值极值;分析第二部分以确定代表该颜色值极值的颜色值;以及使用第二部分颜色值来检查颜色调整参数,使得一旦通过该颜色调整参数调整图像时,该颜色值极值不会被剪裁或丢失。
上述步骤中的任一步骤可以由计算机基于预先编程的指令来执行,或者可以包括用户输入。例如,要分析的图像的第一部分、第二部分和任何其它部分可以由程序来识别,所述程序例如但不限于,面部识别、形状识别、主题识别、颜色识别或图像分割。可替换地,第一部分、第二部分或者这二者可以是预定的区域,例如,占据图像内某个位置的几何形状。可替换地,用户可以通过利用鼠标来指向、触摸屏幕、或者画出或拖出围绕要被分析的指定区域的形状,来选择图像的一部分进行分析。
可以基于要选择的预设值来自动地确定图像的一部分的代表性颜色值。代表性颜色值可以由程序来确定,该程序考虑被取样的图像的该部分以及该部分代表希望的颜色值的确定性来统计地确定哪个颜色值最佳地代表该图像部分的颜色值。代表性颜色值可以被用户覆盖(override)或由用户选择。例如,颜色值或颜色值范围可以被数字地、可视地、或者既数字地又可视地呈现给用户,其中计算机推荐代表性颜色值或者不推荐代表性颜色值。该程序可以被设计为使得用户可以选择所建议的代表性颜色值,选择所示出的颜色值之一,或者输入可能与上述所有都不同的截然不同的颜色值。
计算机可以被编程为向用户示出使用基于计算机产生的参数、用户产生的参数或其某种组合的各种颜色调整参数取样调整过的图像,以允许用户为预期目的选择视觉上看起来最好的调整过的图像,所述计算机产生的参数、用户产生的参数是使用这里所讨论的产生参数的各种技术产生的。
用户也可以输入颜色值极值。如果存在饱和度、明亮度或者这二者的极值,并且存在用户不介意剪裁的图像部分而其它区域更重要,则这可能是有用的。例如,在摄影ID图像中,在面部特征中的着色和特征应当被保持尽可能接近于原始的着色和特征,而衣服的着色或明亮度不是那么重要。相反,对于时装设计目录,模特的面部不重要,而衣服的饱和度、色调或明亮度等级的保持会很重要。因而,包括要保持的着色或特性的图像部分的识别可以是有用的。可替换地,这可以由计算机使用面部识别、形状识别、主题识别、颜色识别、或图像分割,或者通过分析预设的识别部分(例如占据图像内某个部分的几何形状)来确定。
示例
1、摄影识别ID的调整
在RGB颜色空间中如下调整摄影ID图像,其中在对象的衬衫上达到最大颜色值:
初始 红 绿 蓝
背景 232 228 221
对象的衬衫 242 117 134
使用上述值将背景缩放到白色(255,255,255)而不考虑图像的其余部分,对于红色通道需要1.099的颜色调整参数。但是,使用这个颜色调整参数将导致对象的衬衫的三个通道中的最大颜色值(即红色颜色值)调整过的颜色值为265,表示该颜色值将被剪裁到255。为了确保衬衫的颜色值不被剪裁,颜色调整参数被减小到1.054,从而提供如下最终值:
调整过 红 绿 蓝
背景 245 240 233
对象的衬衫 255 123 141
这使得背景更白,同时保持对象衬衫的颜色值。
更完整的调整识别用于每个通道的颜色调整参数,其中红色通道的颜色调整参数是1.099,绿色通道的是1.118,蓝色通道的是1.154。然而,再次,使用这些颜色调整参数将导致对象的衬衫具有265的红色颜色值,表示该颜色值将被剪裁到255。为了确保衬衫的颜色值不被剪裁,红色通道的颜色调整参数被减小为1.054,提供了245的调整过的颜色值。然后通过将相应颜色调整参数乘以修改后的红色颜色调整参数与原始红色颜色调整参数的比率1.054/1.099,来确定绿色和蓝色通道的颜色调整参数。这提供了如下值:
调整过的 红 绿 蓝
背景 245 245 245
对象的衬衫 255 129 149
2、使用线性反射率值
颜色空间的颜色值被转换到线性反射率值,以便于操作。线性反射率、对数反射率、线性辐射率、对数辐射率、或线性密度的使用可以增加颜色调整的精度。作为示例,在使用RGB颜色空间的8比特系统中,红色值被转换为线性反射率,然后被调整到255。调整过的线性反射率值然后被转换回RGB空间。
红色 线性反射率
初始值 200 0.5147
希望值 255 1.0
颜色调整参数 1.275 1.943
3、去饱和
去饱和确实提高了第一部分代表性颜色值的分析精度。例如,摄影识别图像的真实背景颜色在RGB颜色空间中是(232 228 221),但是对象的衬衫是粉色(242 117 134),其通过产生太高的红色通道代表性颜色值,可能会影响代表性背景颜色的分析。
为了削弱衬衫的颜色值在第一部分分析中的重要性,鉴于衬衫在其它两个通道中的颜色值明显不同于红色通道颜色值,则在分析第一部分代表性颜色值之前,所有通道的颜色值都被移向它们的平均值,也就是说,去饱和。可以基于图像样本或实验来选择去饱和的量,以便足够地削弱任何不希望的特征。在这种情况下,饱和度因子1/3用于对颜色值进行去饱和,使得衬衫的粉色为(190 149 154),其不再具有在背景颜色的颜色值之上的任何颜色值。
4、去饱和/再饱和中的颜色空间归一化
在具有不等值的参考白色的颜色空间中,例如具有(RN GN BN)的参考白色的RGB空间中,归一化矩阵被包括在线性反射率转换矩阵相乘中,用于去饱和(例如三分之一)和再饱和,如下所示,其中Rin、Gin、Bin是初始颜色值,Rout、Gout、Bout是调整过的颜色值。
5、去饱和/再饱和中的颜色空间转换
在RGB颜色空间中,颜色值被转换到亮度-色度系统中,用于去饱和,然后被转换回RGB颜色空间,用于分析第一部分代表性颜色值。在确定代表性颜色值后,该代表性颜色值被转换到亮度-色度系统,用于再饱和,然后被转换回RGB颜色空间,用于确定颜色调整参数。这可以通过矩阵相乘来完成,如下所示。作为示例,示出去饱和三分之一,再饱和(乘以3)。
去饱和:
其中,上述矩阵相乘等价于:
再饱和:
其中上述矩阵相乘等价于:
部件列表
100输入图像的步骤
110识别图像的第一部分的步骤
120将图像的第一部分去饱和的步骤
130确定代表性色彩值的步骤
140将代表性色彩值再饱和的步骤
150识别图像的第二部分的步骤
160确定图像的第二部分的颜色值极值的步骤
170确定色彩调整参数的步骤
180应用色彩调整参数的步骤
200计算机系统
210存储器
220显示器
230输入设备
240输出设备