3.3 HDR生成亮度信息— TumblinTOM(Advanced High Dynamic Range Imaging )

3.3 HDR生成亮度信息(Advanced High Dynamic Range Imaging )

Tumblin和Rushmeier [373]提出了计算机图形学领域的第一个TMO。 随后,Tumblin等人对其进行了修订。 [372]。 该操作员的灵感来自HVS,并采用了史蒂文斯(Stevens)和史蒂文斯(Stevens)关于亮度的工作[353,354]。 TMO定义为:

 其中Ld为显示器的适应亮度(LDR显示器为30–100 cd / m2)。 函数γ(x)是人类适应亮度值x的史蒂文斯和史蒂文斯的CSF,定义为

 最后,m是自适应尺度项,用于防止夜间异常灰度图像。它被定义为:

 其中Cmax为显示器的最大对比度。

当校准的亮度值可用时,该操作员将压缩HDR图像,保留亮度并产生合理的结果。 请注意,即使已包含幂函数,此TMO仍需要进行伽马校正,以避开深色图像。 请参见公式(3.5)中的参数α。 图3.3显示了一些结果。

list3.6提供了Tumblin等人的MATLAB代码。 完整的代码可以在文件TumblinTMO.m中找到。 该方法将显示器的以下参数作为输入:显示器的适应亮度L da(默认值为20 cd / m2),显示器的最大亮度Ld Max(默认值为100 cd / m2)和最大值 对比度,C Max(默认为100)。 Lwa是公式(3.5)和公式(3.7)中的Lw,H,它使用文件夹Tmo / util中的logMean.m计算为img的几何平均值。

下一步是计算史蒂文斯和史蒂文斯的CSFγ(x),以适应两个观察者的亮度适应(实际输入图像和显示图像)。 这是使用实现公式(3.6)的函数StevensCSF.m计算的,可以在Tmo / util文件夹中找到; 参见清单3.7。

图3.3。 Tumblin等人的例子。 [373]应用于LDR监视器的HDR图像(Cmax = 100,Ld,max = 250cd / m2):(a)色调映射图像的Ld,a = 30 cd / m2。 (b)Ld为a = 100 cd / m2的色调映射图像。 注意,整个图像亮度与Ld,a成正比。

 然后,如等式(3.7)中计算与适应相关的缩放项m,其与代码中的m相对应。 最后,使用等式(3.5)计算压缩亮度Ld。

 

%% Brightness Reproduction
%TumblinTMO
clc
clear
hdr=hdrread("HDR_029_Sky_Cloudy_Ref.hdr");
hdr_r=hdr(:,:,1);
hdr_g=hdr(:,:,2);
hdr_b=hdr(:,:,3);
%亮度压缩
L=lum(hdr);
Lmax=max(L(:));
L_wa=logMean(L);
gamma_w=StevensCSF(L_wa);
%显示器的适应亮度Lda
L_da=30;
gamma_d=StevensCSF(L_da);
gamma_wd=gamma_w/(1.855+0.4*log(L_da));
%Cmax为显示器的最大对比度。
C_max=100;
m=C_max.^((gamma_wd-1)/2.0);
Ld=L_da*m.*((L/L_wa).^(gamma_w/gamma_d));
Ld=Ld/Lmax;
%颜色校正
cc_s=0.5;
imgout=zeros(size(hdr));
for i=1:size(hdr, 3)
    imgout(:,:,i) = ((hdr(:,:,i) ./ Ld).^cc_s) .* Ld;
end
RGBout=ConvertRGBtosRGB(imgout,0);
%如果像素值大于1,压缩到1,如果像素值小于0,压缩到0
for i=1:size(hdr,1)
    for j=1:size(hdr,2)
        for k=1:size(hdr,3)
            if(RGBout(i,j,k)>1)
                RGBout(i,j,k)=1;
            end
            if(RGBout(i,j,k)<0)
                RGBout(i,j,k)=1;
            end
        end
    end
end
RGBout=RemoveSpecials(RGBout);
imshow(RGBout);

 原图

TOM结果图像

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章