发明内容
本发明的目的在于针对各种图像处理的需求以及现有技术的缺陷,提供一种对彩色图像进行模拟曝光及冲印的方法,从而高质量高效率的实现特定的图像效果。
本发明的技术方案如下:一种对彩色图像进行模拟曝光及冲印的方法,包括如下步骤:
(1)针对彩色图像的每个色彩通道设定归一化的调整参数,包括曝光度ExpoF-Stops、伽马值Gamma、枢纽值Pivot、提升值Lift;其中,曝光度ExpoF-Stops表示对图像各通道进行曝光操作的参数,伽马值Gamma表示对图像色彩分布的调整参数,枢纽值Pivot表示使图像在调色前后的整体灰度保持一致的参数,提升值Lift表示提升或降低图像的整体灰度值的参数;
(2)计算图像的各色彩通道的像素取值范围内每个值对应的算法的输出值,获得各通道的灰度索引表LUT;
所述的对应的算法如下:
设通道内任意输入像素灰度为Xin,灰度等级总数为S,
以此曝光结果,对图像进行伽马调整并进行枢纽值均衡的结果为Ypivot=S·(Yexpo/S)1/Gamma·Pivot1-1/Gamma,
对均衡值进行提升叠加,获得输出结果YOutput=Ypivot+lift·S;
(3)针对通道内的所有像素,根据其所在通道选择对应的LUT表,然后根据像素的灰度值查表,获得处理后的灰度值,并生成处理后的图像。
进一步,如上所述的对彩色图像进行模拟曝光及冲印的方法,步骤(1)中,不同色彩通道的相同调整参数设定为同一数值;或者,不同色彩通道的相同调整参数分别根据需要设定为不同的数值。
进一步,如上所述的对彩色图像进行模拟曝光及冲印的方法,步骤(1)中,可以通过进光量ExpoLights和单位光圈进光量ExpoL/F得到曝光度ExpoF-Stops,公式如下:
ExpoF-Stops=ExpoLights/ExpoL/F。
进一步,如上所述的对彩色图像进行模拟曝光及冲印的方法,步骤(1)中,可以通过图像增益Expo
Gain得到曝光度Expo
F-Stops,公式如下:
进一步,如上所述的对彩色图像进行模拟曝光及冲印的方法,步骤(1)中,可以通过对比度Contrast得到伽马值Gamma,公式如下:Gamma=2-Contrast。
进一步,如上所述的对彩色图像进行模拟曝光及冲印的方法,步骤(2)中,对于8bit图像,其各个通道的像素的取值范围在[0,255]之间;对于16bit图像,其各个通道的像素的取值范围在[0,65535]之间。
进一步,如上所述的对彩色图像进行模拟曝光及冲印的方法,步骤(2)中,所述的各通道的灰度索引表LUT是将计算所得的输出值按照其对应的输入值从小到大的顺序,组成的一个一维矩阵。
本发明的有益效果如下:本发明提供了一种模拟照片曝光及冲印的方法,能够实现对图像按照指定参数进行曝光调节,并通过调整色彩分布参数以实现特定的冲印效果。该方法操作简单,处理效率高,图像变化真实自然,适用于各种高质量高效率的视频以及图像的特效处理及合成软件。
具体实施方式
下面结合附图和具体实施例对本发明进行详细的描述。
本发明所提供的对彩色图像进行模拟曝光及冲印的方法,包括如下步骤:
步骤(1),针对彩色图像的每个色彩通道设定归一化的调整参数(归一化是指参数值不受图像灰度等级总数的影响),包括曝光度ExpoF-Stops、伽马值Gamma、枢纽值Pivot、提升值Lift。
以RGB色彩模式的图像为例,由于算法是模拟自然环境的曝光冲印效果,因此以上这四个参数在三个通道内默认是保持同一数值的,当然用户也可取消参数在通道内的关联性,以进行各自调整。在以下处理中,除特别声明,上述四个参数都作为RGB通道的统一调节参数应用在算法中。其中,ExpoF-Stops表示对图像各通道进行曝光操作的参数,该参数越大,图像曝光越强,反之越小。Gamma表示对图像色彩分布的调整参数,通过该参数可以使得图像的色彩值,即图像各通道的灰度值,按照用户的需求来分布。在上述色彩分布调整中,图像各通道灰度分布变化完全可能带来整个图像平均灰度的整体偏差,而通过设定枢纽值Pivot可以使得图像在调色前后的整体灰度保持一致。而提升值Lift则是在图像输出之前,简单的提升或降低图像的整体灰度值,以更有效的对整体灰度进行控制。上述四个参数可以由用户根据实际需要来自行确定其具体的取值。
另外,参数的输入也考虑到用户的习惯,采用多模式的方法获得上述四个参数的值。其中对于光圈曝光度参数ExpoF-Stops,是由用户从光圈角度输入曝光参数,同时也支持用户根据自己的习惯喜好,从进光量和图像增益角度进行曝光信息输入。该曝光度多模态输入公式具体涉及到光圈曝光度ExpoF-Stops,进光量ExpoLights,单位光圈进光量ExpoL/F以及图像增益ExpoGain等概念。尽管输入方式多样化,但是都可以它们归一化到光圈曝光度参数ExpoF-Stops,并以此参数为基础进行后续运算,公式如下:
Expo
F-Stops=Expo
Lights/Expo
L/F,
此处的ExpoL/F一般默认为6,也可由用户根据习惯调节。
对于伽马值参数Gamma,也允许用户通过对比度Contrast来输入信息,并最终归一化到Gamma值。公式如下:
Gamma=2-Contrast
这样,在进行后续处理之前,我们可以获得由用户输入的上述四个参数,并进行后续处理。
步骤(2),计算图像的各色彩通道的像素取值范围内每个值对应的算法的输出值,获得各通道的灰度索引表LUT。
对于8bit图像,其各个通道的像素的取值范围在[0,255]之间,对于16bit其像素取值范围在[0,65535]之间。设某通道的任意输入像素灰度为Xin,灰度等级总数为S(8bit图像的S值为256,16bit图像的S值为65536)。该算法的处理顺序第一步是对输入像素进行曝光处理,那么输出的曝光结果为:
然后以此曝光结果,计算均衡值。该均衡值为对图像进行伽马调整并进行枢纽值均衡的结果为:
Ypivot=S·(Yexpo/S)1/Gamma·Pivot1-1/Gamma,
最后对均衡值进行提升叠加,获得输出结果YOutput,公式如下:
YOutput=Ypivot+lift·S。
这样,当用户输入了上述四个参数的具体值之后,对于取值范围内的所有灰度阶Xin|Xin∈{1,...,S},都可以计算出其对应的输出值YOutputXin|Xin=1,...,S。这样,图像中具有同一灰度阶Xin的所有像素点在经过算法处理后,都有一个相同的输出值YOutputXin。将获得的其这些输出值按照输入值从小到大的顺序,可以组成一个一维矩阵LUT。设当前图像的灰度等级总数为S,即256(8bit图像)或65536(16bit图像),那么LUT就是一个1×S大小的矩阵。由上述公式可知,设对于任一输入值Xin,我们可以获得输出值YOutputXin。具体在灰度等级总数为S的图像中,输入灰度集合为X=[0,1,...,S],经过上述公式处理后的结果为Y|Y=YOutput1,YOutput2,...YOutputS,那么Y=LUT(X),即LUT是由YOutput1,YOutput1,...YOutputS顺序排列而成。而由于参数在不同通道的数值可以不同,因此,对于同一灰阶,在不同通道内的LUT也可以不同。因此,RGB三通道都有各自的LUT表对应,分别标记RGB三个通道的LUT表为LUT1、LUT2和LUT3,并称之为图像在各通道的灰度索引表。
步骤(3),针对通道内的所有像素,根据其所在通道选择对应的LUT表,然后根据像素的灰度值查表,获得处理后的灰度值,并生成处理后的图像。
以RGB色彩模式的图像为例,设当前图像I在(i,j)处的像素在通道k(k∈{1,2,3})中的值为Ik(i,j),那么其查表结果为Ok(i,j)为:Ok(i,j)=LUTk(I(i,j))。由Ok(i,j)可以形成处理后的输出图像O。
图2为本发明具体实施例的一幅原始输入图像,根据本发明所提供的算法,对光圈曝光度ExpoF-Stops、伽马值Gamma、枢纽值Pivot、提升值Lift这四个参数设置成不同的取值,即得到如图3-图8所表现的不同的图像效果。
其中,图3的具体参数设置如下,为模拟对图2过度曝光后的结果:
ExpoF-Stops=3,Gamma=1,Pivot=0.18,Lift=0。
图4的具体参数设置如下,是对过度曝光的图3,通过伽马校正将图像调回到基本正常的亮度区域:
ExpoF-Stops=3,Gamma=3,Pivot=0.18,Lift=0。
图5的具体参数设置如下,为模拟对图2曝光不足的结果:
ExpoF-Stops=-1,Gamma=1,Pivot=0.18,Lift=0。
图6的具体参数设置如下,是把曝光不足的图5,进行伽马校正的结果,但是可以看到图像的整体灰阶仍然有偏差:
ExpoF-Stops=-1,Gamma=0.4,Pivot=0.18,Lift=0。
图7的具体参数设置如下,进一步调节枢纽值以使得图像在保持一定平均灰阶的前提下,对比度更强:
ExpoF-Stops=-1,Gamma=0.4,Pivot=0.10,Lift=0。
图8的具体参数设置如下,进一步调整提升值,使得图像整体灰阶降低:
ExpoF-Stops=-1,Gamma=0.4,Pivot=0.10,Lift=-0.15。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其同等技术的范围之内,则本发明也意图包含这些改动和变型在内。