一种细节增强与亮度自适应的高动态范围图像的色调映射
方法
技术领域
本发明设计了一种细节增强与亮度自适应的高动态范围图像(简称HDR图像)的色调映射方法,具体来说,它是一种对细节进行增强与基于亮度与标准差估算模型计算映射后中间低动态范围图像(简称LDR图像)的平均亮度与标准差,从而得到细节增强与亮度自适应的输出LDR图像的高动态范围图像色调映射方法。
背景技术
目前的CMOS传感器已能采集到170dB的高动态范围的真实场景的图像,从而对传统图像的存储、传输、处理、重现等技术提出了新的挑战。因此存在各种对采集到的HDR图像的动态范围进行压缩的方法,以解决真实场景与存储、传输、处理、重现等技术的动态范围不匹配的问题。这种对高动态范围图像的压缩方式称为色调映射。但是目前色调映射的方法过于依赖相关参数的调节,映射得到的图像细节部分与视觉感受部分不能很好体现真实场景。
发明内容
针对以上不足,本发明提供了一种细节增强与亮度自适应的HDR图像的色调映射方法。本发明能将HDR图像映射到LDR图像,输出的LDR图像亮度自适应,细节增强,主观效果和谐。
本发明提供了一种细节增强与亮度自适应的HDR图像的色调映射方法,包括有如下步骤:
1)对输入HDR图像亮度灰度图进行全局细节增强,计算HDR图像亮度灰度图细节增强后的对数,利用对数转换初步压缩原始场景中的亮度;
2)对全局细节增强的HDR图像亮度对数进行直方图统计,计算其平均值与标准差,对直方图进行分段裁剪与补偿;
3)由亮度与标准差估算模型计算映射到中间LDR图像的平均亮度与标准差,从而求解HDR图像到中间LDR图像的亮度直方图全局映射曲线,其中由最大熵亮度估算方法自适应选出最优输出中间LDR图像亮度;
4)对中间LDR图像亮度灰度图过暗或过亮区域进行局部细节增强映射得到输出LDR图像亮度;
5)将HDR图像色彩通道映射到对应输出LDR图像色彩通道,合并色彩空间获得输出LDR图像。
所述步骤1)包括:
11)定义输入HDR图像红绿蓝三个色彩通道的数据分别为R,G,B,定义HDR图像亮度Lw:
Lw=0.299R+0.587G+0.114B (1)
12)定义输入HDR图像大尺度纹理层为b:
其中,I为单位矩阵;α是平衡因子,选取25~35之间;Q
x,Q
y是前向差分算子,
是后向差分算子;A
x和A
y是分别包含平滑权重a
x(L
w)和a
y(L
w)的对角矩阵,平滑权重a
x(L
w)和a
y(L
w)分别定义如下:
其中,ε1是很小的数,取0.0002;β是决定ln(Lw)梯度灵敏度的参数,选取5~5.5之间;
13)计算输入HDR图像亮度的对数Le:
Le=ln(Lw) (5)
14)定义HDR图像亮度细节层对数d:
d=Le-ln(b) (6)
15)定义HDR图像全局增强亮度的对数L'e:
L'e=λ1ln(b)+λ2d (7)
其中,λ1是修正因子,取0.94~0.98之间,λ2是增强因子,定义为:
其中,μHDR为输入HDR图像平均亮度;C为输入HDR图像对比度,μHDR和C分别定义如下:
其中,M和N是输入HDR图像的长和宽;Lw(i,j)表示位置为(i,j)像素点的亮度值,δ(τ,υ)=|τ-υ|即是相邻像素间的亮度τ和亮度υ的差值绝对值,Pδ(i,j)即相邻像素间的亮度灰度差为δ的像素分布概率;像素相邻取四近邻。
所述步骤2)包括:
21)定义L'e的最大值Lmax以及最小值Lmin,直方图组数为D,取为1000,将L'e的值线性映射到[0,D-1],定义离散后的亮度LI,由公式描述为:
22)对离散后的亮度图像LI进行直方图统计,定义直方图为h(p):
h(p)=<{LI(i,j)|LI(i,j)=p}> (12)
其中,p=0,…,D-1,<U>表示集合U的元素个数;
23)定义由步骤a)得到的直方图h(p),p=0,…,D-1的平均值μ,
24)定义由步骤a)得到的直方图h(p),p=0,…,D-1的标准差σ,
25)定义t1和t2为直方图h(p),p=0,…,D-1的两个分割点:
t1和t2将直方图分割为三段独立的直方图分别定义为hl、hs和hu:
hl=h(p),0≤p<t1
hs=h(p),t1≤p<t2
hu=h(p),t2≤p<D (16)
定义r1,r2和r3分别为各段直方图在整体直方图中的比例:
26)对第一段直方图hl进行裁剪,定义裁剪阈值Tl:
定义裁剪后的直方图为hl':
为了不改变hl在整体的比例,需要将裁剪多出的部分补偿到直方图中,定义补偿后的直方图为hl”:
其中,resl为第一段直方图经过裁剪出来的数量之和,p=0,…,t1-1;
27)对第二段直方图hs进行裁剪,定义裁剪阈值Ts:
定义裁剪后的直方图为hs':
为了不改变hs在整体的比例,需要将裁剪多出的部分补偿到直方图中,定义补偿后的直方图为hs”:
其中,ress为第二段直方图经过裁剪出来的数量之和,p=t1,…,t2-1;
28)对第三段直方图hu进行裁剪,定义裁剪阈值Tu:
定义裁剪后的直方图为hu':
为了不改变hu在整体的比例,需要将裁剪多出的部分补偿到直方图中,定义补偿后的直方图为hu”:
其中,resu为第三段直方图经过裁剪出来的数量之和,p=t2,…,D-1;
29)定义经过裁剪和补偿的直方图h”:
所述步骤3)包括:
31)定义HDR图像直方图的分割点t1和t2映射到中间LDR图像直方图的分割点为t1'和t'2,定义估计输出图像的模型平均亮度μm和标准差σm,通过迭代求解方程得到分割点t1';
根据估计模型计算分割点t1',k的方程:
其中k是迭代次数,计算标准差σm,k的方程:
32)定义迭代计数器k=1,定义最大迭代次数K,定义预设误差e,定义初始标准差σm,0,映射后的中间LDR图像初始平均亮度为μm,0,计算t1',0=f1(μm,0,σm,0),迭代开始;
33)计算输出图像的标准差σm,k=f2(t1',k-1,σm,k-1);更新自适应亮度μm,k:
该式子基于最大熵提出,其中,[ω0,ωL]是从HDR图像映射到低动态图像的范围,取[ω0,ωL]为[0,255];
34)更新t1',k=f1(μm,k,σm,k);
35)若满足
或k>K,迭代结束,输出最终的分割点t
1’=t’
1,k,t
2’=t
1’+2σ
m,k;否则令k=k+1,转到步骤c3);
36)定义直方图的累计密度函数cdf:
37)定义从高动态范围[0,D-1]的图像映射到低动态范围[ω0,ωL]的图像的映射曲线函数T:
38)定义映射后的中间低动态范围灰度图L'LDR:
L'LDR(i,j)=T(LI(i,j)) (33)。
所述步骤4)包括:
41)定义中间低动态范围亮度灰度图L'LDR归一化亮度灰度图L”LDR:
L”LDR=L'LDR/255 (34)
44)定义中心位于(i,j)大小为θ1×θ1的图像窗口θ,取θ1为5,低动态范围亮度灰度图L”LDR局部细节增强后得到低动态范围亮度灰度图L”'LDR;判断图像窗口θ是否为过暗区域,若是则进行过暗区域局部细节增强处理;判断图像窗口是否为过亮区域,若是则进行过亮区域局部细节增强处理;遍历整幅亮度灰度图L”LDR得到L”'LDR;
45)定义映射后的低动态范围亮度灰度图LLDR:
LLDR=L”'LDR×255 (37)
所述步骤44)还包括:
441)定义图像窗口θ的灰度平均值μθ:
442)定义图像窗口的灰度标准差σθ:
443)判断图像窗口θ是否过暗区域,即是否满足
其中η
1、η
2和η
3是可调参数,η
1选取0.6~0.8之间,η
2选取0~0.05之间,η
3选取0.5~1之间,选取η
1=0.8,η
2=0,η
3=0.8;若满足则有:
其中ε2为修正参数,取为0.03;η4为过暗区域可调增强因子,η4选取1~3之间;
444)判断图像窗口θ是否过亮区域,即是否满足
其中η
5、η
6和η
7是可调参数,η
5选取1.2~1.4之间,η
6选取0~0.05之间,η
7选取大于5,选取η
5=1.3,η
6=0,η
7=10;若满足则有:
其中η8为过亮区域可调增强因子,η8选取1~3之间;
445)若图像窗口θ既不是过暗区域也不是过亮区域,则有:
L”'LDR(i,j)=L”LDR(i,j) (42)。
所述步骤5)包括:
51)定义输出LDR图像RGB三个通道数据分别为RLDR,GLDR和BLDR:
其中γ为伽马校正的伽马参数,设置为0.45或0.55。
本发明的有益效果
本发明首先对HDR图像亮度灰度图全局细节增强;再由直方图裁剪与补偿、亮度与标准差估算模型获得HDR图像到LDR图像的亮度直方图全局映射曲线,其中由最大熵亮度估算方法自适应选出最优输出中间LDR图像亮度;然后对中间LDR图像灰度图过暗与过亮区域进行局部细节增强映射得到输出LDR图像亮度灰度图;这样减少了色调映射对相关参数依赖,映射得到的LDR图像细节部分与视觉感受部分很好的体现了真实场景。
附图说明
图1细节增强与亮度自适应的HDR图像色调映射方法的框图
图2细节增强与亮度自适应的HDR图像色调映射方法的流程图
图3估算中间LDR图像的标准差的直方图模型
图4输入HDR经典图像Memorial Church经过色调映射的LDR图像灰度图
具体实施方式
下面结合附图对本发明进行进一步阐述。
如图1所示,本发明一种细节增强与亮度自适应的HDR图像色调映射方法,包括如下步骤:1)对输入HDR图像亮度灰度图进行全局细节增强,计算HDR图像亮度灰度图细节增强后的对数,利用对数转换初步压缩原始场景中的亮度;2)对全局细节增强的HDR图像亮度对数进行直方图统计,计算其平均值与标准差,对直方图进行分段裁剪与补偿;3)由亮度与标准差估算模型计算映射到中间LDR的平均亮度与标准差,从而求解HDR图像到中间LDR图像的亮度直方图全局映射曲线,其中由最大熵亮度估算方法自适应选出最优输出中间LDR图像亮度;4)对中间LDR图像亮度灰度图过暗或过亮区域进行局部细节增强映射得到输出LDR图像亮度灰度图;5)将HDR图像色彩通道映射到对应输出LDR图像色彩通道,合并色彩空间获得输出LDR图像。本发明一种细节增强与亮度自适应的HDR图像色调映射方法的具体实施过程如图2所示。
下面对各步骤进行详细阐述:
1)对输入HDR经典图像Memorial Church亮度灰度图进行全局细节增强,计算HDR图像亮度灰度图细节增强后的对数,利用对数转换初步压缩原始场景中的亮度。
11)定义输入HDR图像红绿蓝三个色彩通道的数据分别为R,G,B,定义HDR图像亮度Lw:
Lw=0.299R+0.587G+0.114B (87)
12)定义输入HDR图像大尺度纹理层为b:
其中,I为单位矩阵;α是平衡因子,一般选取25~35之间,本发明取为30;Q
x,Q
y是前向差分算子,
是后向差分算子;A
x和A
y是分别包含平滑权重a
x(L
w)和a
y(L
w)的对角矩阵,平滑权重a
x(L
w)和a
y(L
w)分别定义如下:
其中,ε1是很小的数,本发明取0.0002;β是决定ln(Lw)梯度灵敏度的参数,一般选取5~5.5之间,本发明取5。
13)计算输入HDR图像亮度的对数Le:
Le=ln(Lw) (91)
14)定义HDR图像亮度细节层对数d:
d=Le-ln(b) (92)
15)定义HDR图像全局增强亮度的对数L'e:
L'e=λ1ln(b)+λ2d (93)
其中,λ1是修正因子,一般选取0.94~0.98之间,取0.95;λ2是增强因子,定义为:
其中,μHDR为输入HDR图像平均亮度;C为输入HDR图像对比度。μHDR和C分别定义如下:
其中,M和N是输入HDR图像的长和宽;Lw(i,j)表示位置为(i,j)像素点的像素值。δ(τ,υ)=|τ-υ|即是相邻像素间的亮度τ和亮度υ的差值绝对值,Pδ(i,j)即相邻像素间的亮度灰度差为δ的像素分布概率;本发明像素相邻取四近邻。
2)对全局细节增强的HDR图像亮度对数进行直方图统计,计算其平均值与标准差,对直方图进行分段裁剪与补偿。
21)定义L'e的最大值Lmax以及最小值Lmin,直方图组数为D,本发明取为1000,将L'e的值线性映射到[0,D-1],定义离散后的亮度LI,由公式描述为:
22)对离散后的亮度图像LI进行直方图统计,定义直方图为h(p):
h(p)=<{LI(i,j)|LI(i,j)=p}> (98)
其中,p=0,…,D-1,<U>表示集合U的元素个数。
23)定义由步骤a)得到的直方图h(p),p=0,…,D-1的平均值μ,
24)定义由步骤a)得到的直方图h(p),p=0,…,D-1的标准差σ,
25)定义t1和t2为直方图h(p),p=0,…,D-1的两个分割点:
t1和t2将直方图分割为三段独立的直方图分别定义为hl、hs和hu:
hl=h(p),0≤p<t1
hs=h(p),t1≤p<t2
hu=h(p),t2≤p<D (102)
定义r1,r2和r3分别为各段直方图在整体直方图中的比例:
26)对第一段直方图hl进行裁剪,定义裁剪阈值Tl:
定义裁剪后的直方图为hl':
为了不改变hl在整体的比例,需要将裁剪多出的部分补偿到直方图中,定义补偿后的直方图为hl”:
其中,resl为第一段直方图经过裁剪出来的数量之和,p=0,…,t1-1。
27)对第二段直方图hs进行裁剪,定义裁剪阈值Ts:
定义裁剪后的直方图为hs':
为了不改变hs在整体的比例,需要将裁剪多出的部分补偿到直方图中,定义补偿后的直方图为hs”:
其中,ress为第二段直方图经过裁剪出来的数量之和,p=t1,…,t2-1。
28)对第三段直方图hu进行裁剪,定义裁剪阈值Tu:
定义裁剪后的直方图为hu':
为了不改变hu在整体的比例,需要将裁剪多出的部分补偿到直方图中,定义补偿后的直方图为hu”:
其中,resu为第三段直方图经过裁剪出来的数量之和,p=t2,…,D-1。
29)定义经过裁剪和补偿的直方图h”:
3)由亮度与标准差估算模型计算映射到中间LDR的平均亮度与标准差,从而求解HDR图像到中间LDR图像的亮度直方图全局映射曲线,其中由最大熵亮度估算方法自适应选出最优输出中间LDR图像亮度,其中,标准差估算模型如图3所示。
31)定义HDR图像直方图的分割点t1和t2映射到中间LDR图像直方图的分割点为t1'和t'2,定义估计输出图像的模型平均亮度μm和标准差σm,通过迭代求解方程得到分割点t1'。
根据估计模型计算分割点t1',k的方程:
其中k是迭代次数,计算标准差σm,k的方程:
32)定义迭代计数器k=1,定义最大迭代次数K,定义预设误差e,定义初始标准差σm,0,映射后的中间LDR图像初始平均亮度为μm,0,计算t1',0=f1(μm,0,σm,0),迭代开始;
33)计算输出图像的标准差σm,k=f2(t1',k-1,σm,k-1);更新自适应亮度μm,k:
该式子基于最大熵提出,其中,[ω0,ωL]是从HDR图像映射到低动态图像的范围,本发明取[ω0,ωL]为[0,255]。
34)更新t1',k=f1(μm,k,σm,k)。
35)若满足
或k>K,迭代结束,输出最终的分割点t
1’=t’
1,k,t
2’=t
1’+2σ
m,k;否则令k=k+1,转到步骤c3)。
36)定义直方图的累计密度函数cdf:
37)定义从高动态范围[0,D-1]的图像映射到低动态范围[ω0,ωL]的图像的映射曲线函数T:
38)定义映射后的中间低动态范围灰度图L'LDR:
L'LDR(i,j)=T(LI(i,j)) (119)。
4)对中间LDR图像亮度灰度图过暗或过亮区域进行局部细节增强映射。
41)定义中间低动态范围灰度图L'LDR归一化灰度图L”LDR:
L”LDR=L'LDR/255 (120)
44)定义中心位于(i,j)大小为θ1×θ1的图像窗口θ,本发明取θ1为5,低动态范围灰度图L”LDR局部细节增强后得到低动态范围灰度图L”'LDR;判断图像窗口θ是否为过暗区域,若是则进行过暗区域局部细节增强处理;判断图像窗口是否为过亮区域,若是则进行过亮区域局部细节增强处理;遍历整幅灰度图L”LDR得到L”'LDR。
45)定义映射后的低动态范围灰度图LLDR:
LLDR=L”'LDR×255 (123)
所述步骤44)还包括:
441)定义图像窗口θ的灰度平均值μθ:
442)定义图像窗口θ的灰度标准差σθ:
443)判断图像窗口θ是否过暗区域,即是否满足
其中η
1、η
2和η
3是可调参数,η
1一般选取0.6~0.8之间,η
2一般选取0~0.05之间,η
3一般选取0.5~1之间,本发明选取η
1=0.8,η
2=0,η
3=0.8;若满足则有:
其中ε2为修正参数,取为0.03;η4为过暗区域可调增强因子,η4一般取1~3之间,本发明取为2。
444)判断图像窗口θ是否过亮区域,即是否满足
其中η
5、η
6和η
7是可调参数,η
5一般选取1.2~1.4之间,η
6一般选取0~0.05之间,η
7一般选取大于5,本发明选取η
5=1.3,η
6=0,η
7=10;若满足则有:
其中η8为过亮区域可调增强因子,η8一般取1~3之间,本发明取为2。
445)若图像窗口θ既不是过暗区域也不是过亮区域,则有:
L”'LDR(i,j)=L”LDR(i,j) (128)
5)将HDR图像色彩通道映射到对应输出LDR图像色彩通道,合并色彩空间获得输出LDR图像。
51)定义输出LDR图像RGB三个通道数据分别为RLDR,GLDR和BLDR:
其中γ为伽马校正的伽马参数,一般设置为0.45或0.55,本发明取为0.45。