一种高质量的快速色调映射方法和系统与流程

文档序号:13590362阅读:267来源:国知局

本发明属于数字图像处理技术领域,特别涉及一种高质量的快速色调映射方法和系统。



背景技术:

高动态范围(highdynamicrange,hdr)图像记录了现实场景丰富的光影和色彩信息,能生动地呈现场景的所有细节信息。近些年,hdr图像已广泛应用于摄影、影视特效、智能监控、医疗、军事以及卫星遥感等领域。然而现有的显示设备由于动态范围受限,无法直接显示hdr图像。如何将hdr图像通过图像处理的方法完美地呈现在低动态范围(lowdynamicrange,ldr)显示设备上,并尽可能多的展现自然场景丰富的光影和色彩信息已成为计算机视觉领域研究的热点。

将hdr图像映射到ldr显示设备输出的过程称为色调映射。色调映射方法大致可以分为全局映射和局部映射两大类。全局映射利用同一函数作用于整副图像,能够较好地呈现图像的整体效果,计算效率高,但局部对比度低,图像的局部细节损失严重。局部映射根据不同区域的动态范围变化情况采用不同的映射曲线,可以提高映射结果的局部对比度,展现更多的局部细节,但无法保证图像的全局效果,且容易产生光晕,计算复杂度高。

近些年提出的很多色调映射方法,普遍存在不能很好兼顾图像的整体效果和局部细节,算法的效率也不高的问题。



技术实现要素:

为了解决上述色调映射方法存在的问题,本发明提供了一种高质量的快速色调映射方法,包括如下的步骤:

步骤1,输入高动态范围图像;

步骤2,将高动态范围图像由rgb色彩空间转换到hsv色彩空间,得到的三个独立分量:色调h(i,j)、饱和度s(i,j)和亮度信息v(i,j),其中(i,j)表示像素点坐标;

步骤3,将亮度分量v(i,j)在对数域中进行调整,得到亮度的对数值vlog(i,j);

步骤4,对vlog(i,j)进行动态范围压缩,得到全局动态范围压缩图vg(i,j);

步骤5,利用改进的单尺度retinex算法对vg(i,j)进行局部细节调整,得到调整后的亮度图vldr(i,j);

步骤6,根据映射前后的亮度比值对饱和度分量s(i,j)进行调整,得到调整后的饱和度分量sldr(i,j),

步骤7,将计算得到的色调h(i,j)、调整后的饱和度分量sldr(i,j)和亮度图vldr(i,j)由hsv颜色空间转换到rgb颜色空间得到色调映射结果。

进一步的,所述步骤3中将亮度分量v(i,j)在对数域中进行调整,调整的对数方程为,

其中vlog(i,j)表示像素点(i,j)处的亮度对数值,v(i,j)为hsv颜色空间中归一化后的亮度分量,v(i,j)取值为0~1。

进一步的,所述步骤4中采用具有sigmoidal函数变化关系的反正切函数压缩全局动态范围,该反正切函数为,

其中vg(i,j)为全局映射输出结果,表示图像对数域亮度调整后的平均值,max表示取最大值。

进一步的,所述步骤5中利用改进的单尺度retinex算法对vg(i,j)进行局部细节调整的实现方式如下,

vldr(i,j)=log[vg(i,j)]-λ(i,j)log[g(i,j)](4)

其中vldr(i,j)为局部细节调整输出,g(i,j)为vg(i,j)经引导滤波平滑输出,λ(i,j)为背景亮度调节因子,g(i,j)和λ(i,j)的计算公式分别为,

λ(i,j)=1-0.5×(vg(i,j))0.45(6)

其中ak和bk为窗口ωk的系数,|ω表示窗口ωk中像素的数量。

进一步的,所述步骤6中根据映射前后的亮度比值对饱和度分量s(i,j)进行调整,实现方式如下,

sldr(i,j)=0.7s(i,j)+log(1+η(i,j))(7)

其中sldr(i,j)为调整后的饱和度分量,η(i,j)为映射前后亮度的比值,该比值被定义为,

其中v表示输入的高动态范围图像在hsv颜色空间的亮度信息,vldr表示色调映射后图像在hsv颜色空间的亮度信息,max表示取最大值,min表示取最小值。

此外,本发明还提供一种高质量的快速色调映射系统,包括以下模块:

输入模块,用于输入高动态范围图像;

颜色空间转换模块,用于将高动态范围图像由rgb色彩空间转换到hsv色彩空间,得到的三个独立分量:色调h(i,j)、饱和度s(i,j)和亮度信息v(i,j),其中(i,j)表示像素点坐标;

对数调整模块,用于将亮度分量v(i,j)在对数域中进行调整,得到亮度的对数值vlog(i,j);

全局动态压缩模块,用于对vlog(i,j)进行动态范围压缩,得到全局动态范围压缩图vg(i,j);

局部细节调整模块,用于利用改进的单尺度retinex算法对vg(i,j)进行局部细节调整,得到调整后的亮度图vldr(i,j);

饱和度调整模块,用于根据映射前后的亮度比值对饱和度分量s(i,j)进行调整,得到调整后的饱和度分量sldr(i,j),

输出模块,用于将计算得到的色调h(i,j)、调整后的饱和度分量sldr(i,j)和亮度图vldr(i,j)由hsv颜色空间转换到rgb颜色空间得到色调映射结果。

进一步的,所述对数调整模块中将亮度分量v(i,j)在对数域中进行调整,调整的对数方程为,

其中vlog(i,j)表示像素点(i,j)处的亮度对数值,v(i,j)为hsv颜色空间中归一化后的亮度分量,v(i,j)取值为0~1。

进一步的,所述步骤4中采用具有sigmoidal函数变化关系的反正切函数压缩全局动态范围,该反正切函数为,

其中vg(i,j)为全局映射输出结果,表示图像对数域亮度调整后的平均值,max表示取最大值。

进一步的,所述全局动态压缩模块中利用改进的单尺度retinex算法对vg(i,j)进行局部细节调整的实现方式如下,

vldr(i,j)=log[vg(i,j)]-λ(i,j)log[g(i,j)](4)

其中vldr(i,j)为局部细节调整输出,g(i,j)为vg(i,j)经引导滤波平滑输出,λ(i,j)为背景亮度调节因子,g(i,j)和λ(i,j)的计算公式分别为,

λ(i,j)=1-0.5×(vg(i,j))0.45(6)

其中ak和bk为窗口ωk的系数,|ω表示窗口ωk中像素的数量。

进一步的,所述饱和度调整模块中根据映射前后的亮度比值对饱和度分量s(i,j)进行调整,实现方式如下,

sldr(i,j)=0.7s(i,j)+log(1+η(i,j))(7)

其中sldr(i,j)为调整后的饱和度分量,η(i,j)为映射前后亮度的比值,该比值被定义为,

其中v表示输入的高动态范围图像在hsv颜色空间的亮度信息,vldr表示色调映射后图像在hsv颜色空间的亮度信息,max表示取最大值,min表示取最小值。

本发明的有益效果是:本发明提供的一种高质量的快速色调映射方法,可以将hdr图像在ldr显示设备上高质量的显示输出,该方法综合了全局映射和局部映射的优点,既保持了良好的整体效果,又充分保留了图像的局部细节,使图像看起来更加生动自然;同时该方法计算速度快,具有很高的效率,可以用于实时系统。

附图说明

图1本发明实施例流程图;

图2本发明实施例处理后显示的室内场景图;

图3本发明实施例处理后显示的室外场景图。

具体实施方式

本发明并不受限于所公开的实施例,可以通过不同形式加以实现。下面将结合附图,对本发明的内容进行详细说明。图1为本发明一种高质量的快速色调映射方法的流程图,具体步骤如下:

步骤1:输入图像是扩展名为.hdr的hdr图像。

步骤2:色彩空间转换:

直接在rgb色彩空间进行色调映射,容易改变图像原来的色调,造成输出的ldr图像色彩失真。hsv色彩空间更加符合人类的视觉系统对色彩的感知,因此本发明将hdr图像由rgb色彩空间转换到hsv色彩空间进行处理,得到三个独立分量:色调h(i,j)、饱和度s(i,j)和亮度信息v(i,j)。

步骤3:将亮度分量v(i,j)在对数域中进行调整:

由于人类视觉系统对场景亮度感知比较接近对数变化关系,因此,在动态范围压缩之前,先将亮度分量在对数域中进行相应调整,调整的对数方程为:

其中vlog(i,j)表示像素点(i,j)处的亮度对数值,v(i,j)为hsv颜色空间中的亮度分量,并将v(i,j)归一化到0~1。

步骤4:全局动态范围压缩:

由于人类的视觉适应具有sigmoidal函数的非线性特征,本发明采用具有sigmoidal函数变化关系的反正切函数压缩全局动态范围,该反正切函数为:

其中vg(i,j)为全局映射输出结果,cf控制着动态范围压缩程度,为了适应不同的场景动态范围压缩,将参数cf定义为:

其中表示图像对数域亮度调整后的平均值,max表示取最大值。

步骤5:改进了单尺度retinex算法,并利用改进的算法对vg(i,j)进行局部细节调整:

完成图像的全局映射之后,图像的整体效果较好,但局部细节往往欠佳。本发明改进了单尺度retinex算法,并利用改进的算法对vg(i,j)进行局部细节调整。本发明利用具有边缘保留特性的快速引导滤波替代原来的高斯滤波可以有效地避免光晕现象和梯度反转,提高计算效率。针对完全消除光照分量之后,图像整体看起来不够真实的问题,本发明构造了一个调节因子λ(i,j),用于自动调整每个像素的背景亮度,以改善整体的视觉效果。改进的单尺度retinex算法为:

vldr(i,j)=log[vg(i,j)]-λ(i,j)log[g(i,j)](4)

其中vldr(i,j)为局部细节调整输出,g(i,j)为vg(i,j)经引导滤波平滑输出,λ(i,j)为背景亮度调节因子。g(i,j)和λ(i,j)的计算公式分别为:

λ(i,j)=1-0.5×(vg(i,j))0.45(6)

其中ak和bk为窗口ωk的系数,|ω表示窗口ωk中像素的数量。

步骤6:对饱和度分量s(i,j)进行调整:

在完成hdr图像亮度分量动态范围压缩之后,图像的亮度发生了变化,这将导致hsv彩色空间的亮度v与饱和度s之间的相对关系出现变化,使输出图像的色彩与原图像不一致,因此需要对饱和度s进行调整,使得输出的ldr图像看起来更加生动。调整方程为:

sldr(i,j)=0.7s(i,j)+log(1+η(i,j))(7)

其中sldr(i,j)为调整后的饱和度分量,η(i,j)为映射前后亮度的比值,该比值被定义为:

其中v表示输入的hdr图像在hsv颜色空间的亮度信息,vldr表示色调映射后图像在hsv颜色空间的亮度信息,max表示取最大值,min表示取最小值。

步骤7:将计算得到的色调h(i,j)、饱和度分量sldr(i,j)和亮度图vldr(i,j)由hsv颜色空间转换到rgb颜色空间得到色调映射结果。本发明实施例处理后的图像如图2、3所示,处理后的图像画面清晰自然,图像的整体对比度高,并且亮区和暗区的细节信息都得到了充分的体现(例如图2中暗区建筑物的顶部以及图3中暗区的树干和远处的雪山均清晰可见)。

采用本发明一种高质量的快速色调映射方法,取引导滤波的滤波半径r=7,平滑系数ε=0.05。本发明方法计算速度快,具有很高的效率,实现尺寸为720×480的hdr图像的色调映射的时间是0.53秒,可以用于实时系统。

本发明还提供一种高质量的快速色调映射系统,包括以下模块:

输入模块,用于输入高动态范围图像;

颜色空间转换模块,用于将高动态范围图像由rgb色彩空间转换到hsv色彩空间,得到的三个独立分量:色调h(i,j)、饱和度s(i,j)和亮度信息v(i,j),其中(i,j)表示像素点坐标;

对数调整模块,用于将亮度分量v(i,j)在对数域中进行调整,得到亮度的对数值vlog(i,j);

全局动态压缩模块,用于对vlog(i,j)进行动态范围压缩,得到全局动态范围压缩图vg(i,j);

局部细节调整模块,用于利用改进的单尺度retinex算法对vg(i,j)进行局部细节调整,得到调整后的亮度图vldr(i,j);

饱和度调整模块,用于根据映射前后的亮度比值对饱和度分量s(i,j)进行调整,得到调整后的饱和度分量sldr(i,j),

输出模块,用于将计算得到的色调h(i,j)、调整后的饱和度分量sldr(i,j)和亮度图vldr(i,j)由hsv颜色空间转换到rgb颜色空间得到色调映射结果。

而且,所述对数调整模块中将亮度分量v(i,j)在对数域中进行调整,调整的对数方程为,

其中vlog(i,j)表示像素点(i,j)处的亮度对数值,v(i,j)为hsv颜色空间中归一化后的亮度分量,v(i,j)取值为0~1。

而且,所述步骤4中采用具有sigmoidal函数变化关系的反正切函数压缩全局动态范围,该反正切函数为,

其中vg(i,j)为全局映射输出结果,表示图像对数域亮度调整后的平均值,max表示取最大值。

而且,所述全局动态压缩模块中利用改进的单尺度retinex算法对vg(i,j)进行局部细节调整的实现方式如下,

vldr(i,j)=log[vg(i,j)]-λ(i,j)log[g(i,j)](4)

其中vldr(i,j)为局部细节调整输出,g(i,j)为vg(i,j)经引导滤波平滑输出,λ(i,j)为背景亮度调节因子,g(i,j)和λ(i,j)的计算公式分别为,

λ(i,j)=1-0.5×(vg(i,j))0.45(6)

其中ak和bk为窗口ωk的系数,|ω表示窗口ωk中像素的数量。

而且,所述饱和度调整模块中根据映射前后的亮度比值对饱和度分量s(i,j)进行调整,实现方式如下,

sldr(i,j)=0.7s(i,j)+log(1+η(i,j))(7)

其中sldr(i,j)为调整后的饱和度分量,η(i,j)为映射前后亮度的比值,该比值被定义为,

其中v表示输入的高动态范围图像在hsv颜色空间的亮度信息,vldr表示色调映射后图像在hsv颜色空间的亮度信息,max表示取最大值,min表示取最小值。

各模块具体实现和各步骤相应,本发明不予赘述。

本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1