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結果圖像

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