| 簡短描述 | |
|---|---|
|
檔案:
\examples\Processing\HDR_ImageComposition\HighDynamicRange\HDR_CRC_Bayer.vad |
|
|
預設平台: mE5-MA-VCL, imaFlex CXP-12 Quad |
|
|
簡短說明 根據 Debevec 和 Malik 的 HDR 演算法,以及 Reinhard 等人與 Fattal 等人提出的 LDR 演算法。 |
|
高動態範圍(HDR)影像能夠重現寬廣的亮度範圍。因此,極暗與極亮的細節皆能 融合於單一影像之中。 採用多數攝影技術時,無法僅透過單一曝光時間便達成如此寬廣的亮度範圍。 因此,HDR 影像是透過 不同曝光時間的影像所合成而成的。由於多數顯示器無法直接顯示 HDR 影像, 因此必須將其亮度縮減至 低動態範圍(LDR)影像的對比度,方能顯示該 HDR 影像。 此程序亦稱為色調映射。在 此 VisualApplet 範例中,實作了一種 依據 Debevec 與 Malik[Deb97] 所提出的 HDR 演算法。 LDR 演算法則依據Reinhard [Rei02] 與Fattal [Fat02] 所提出。以下將簡要 說明這兩種演算法。
像素值
在圖片 i 中,其像素座標為
進行明確的生命週期管理即呼叫
可表示為輻照度值的函數
以及
曝光時間
:
當我們定義
由此可知:
在這裡我們呼叫
響應曲線。
它描述了像素值與
關於曝光時間
至場景輻照度
.
假設該值對每個像素而言都是恆定的。
鑑於
進行明確的生命週期管理即呼叫
,
可透過奇異值分解
方法計算 [Deb97].
現在可以使用以下表達式來建立一張 HDR 影像 [Deb97]:
其中
是對數輻照度值(底數
) 在
生成的 HDR 影像中的座標 x,y 處。對於彩色影像
分別是紅色、綠色
和藍色的數值
(
,
進行明確的生命週期管理即呼叫
).
也就是說, 方程式 34 必須分別針對紅、綠、藍三種顏色值進行計算。
是曝光次數。
在 方程式 34
是一個加權函數:
針對包含極暗與極亮物體、亮度範圍極廣的場景,已於 VisualApplets 中實作 HDR/LDR 演算法,適用於 灰階(「HDR_CRC_Gray.vad」)、拜耳(「HDR_CRC_Bayer.vad」)及彩色(「HDR_CRC_Color.vad」)相機影像。 影像傳輸至電腦後,場景中的每個物體皆能正確顯示。 設計「HDR_CRC_Bayer.vad」的基本結構如圖347 所示。所有範例均遵循相同原則。 對於拜耳模式的原始影像,每個影像像素的紅、綠、藍值皆在 HierarchicalBox Bayer 中,採用 Bayer5x5Linear 運算子中計算。此方塊僅為範例「HDR_CRC_Bayer.vad」的內容。 在方塊 ImageSequence 中緩衝了一組三張影像。這三張影像應具備三種不同的曝光時間,以進行 HDR-LDR 處理。 應選擇適當的曝光時間,確保曝光序列中的每張影像中,每個像素 均不會出現曝光不足或過度曝光的情況。 您可透過以下運算子設定這些時間 SignalWidth width1 至 width3 在 HierarchicalBox 中 觸發器 (參見圖348)。 請注意,時間尺度為 8 ns 的系統時鐘計數。運算子 Generate-Period 的設定值必須至少大於 運算子 SignalWidth的操作子所耗費的最長時間。 width1 至 width3。此外,請參閱運算子 Generate-Period 的最小週期長度。 這三張影像將依照上文所述的 Debevec 和 Malik [Deb97] 提出的 HDR 演算法進行合併。此演算法已實作於 HierarchicalBox HDR 中(圖347)。對於灰階、拜耳及彩色影像,其實作方式均相同。 LDR 演算法實作於 LDR中實現。針對彩色/拜耳影像與灰階影像的實作方式有所不同(參見章節 及 )。生成的 RGB 影像之色彩,則在 HierarchicalBox OutputToPC中進行合併。此盒子在範例「HDR_CRC_Gray.vad」中並不存在。 運算子 SourceSelector 可讓使用者選擇要透過 DMA 傳輸的對象,是已處理的 HDR-LDR 影像,還是 (經拜耳去馬賽克處理的)相機原始影像。
在圖中, 349 您可以查看 HierarchicalBox 的內容 HDR. 對於這組具有緩衝的
影像序列中的三張影像,分子中的加數
以及分母
的 方程式 34 是針對
圖片一至三所計算的(HierarchicalBox 圖片1 設為 圖片3) 分別針對紅色、綠色和藍色。
在圖中, 350 您可以在圖 1 的「HierarchicalBox」中看到關於紅色所做的這項計算 Red
在盒子裡 圖片1) 作為範例。所有影像的所有顏色皆以相同方式進行處理。相機響應曲線
(CRC) 的對數值會透過 HierarchicalBox 中的查表表,
映射至 (紅/綠/藍) 像素值 超過127 若像素值大於 127 或位於方框內
underequal127 若像素值小於或等於 127。這些查找表的內容 gO127 進行明確的生命週期管理即呼叫 g_ueq_127 因為
紅色、綠色和藍色的顏色可透過 Matlab 程式模組「HDR_CRC.m」、「sample.m」和「gsolve.m」(位於
\examples\Processing\Advanced\HighDynamicRange\ 目錄下)進行計算,這些模組
是基於 Debevec 和 Malik 的程式碼 [Deb97] 並部分參考 M. Eitz 的例子 [Eit07].
請參閱「HDR_CRC.m」中的簡明說明手冊,以獲取有關如何使用此程式碼的進一步指示。
透過 CONST 運算子 LNdt1
(以及類比 LNdt2 進行明確的生命週期管理即呼叫 LNdt3 (針對圖 2 和 3)
可設定曝光時間的對數(底數:e)值。請注意,此值必須乘以
由於有 16 個分數位元。
可透過參數選擇相應的時間基準 LNTimeBase. 的值為
,
或
將時間尺度設定為秒、毫秒或
微秒。在查表中 重量 如圖所示。 350 的加權函數 方程式 35
已實作。透過 Matlab 程式模組「HDR_CRC.m」、「sample.m」及「Weight.m」,即可建立加權表「Weights.txt」
。 請一併參閱「HDR_CRC.m」中的簡短說明手冊
(若處理灰階影像,則請參閱「HDR_CRC_Gray.m」)以獲取進一步指示。HierarchicalBox 的最終輸出結果 Red (以及類比 綠色 進行明確的生命週期管理即呼叫
Blue) 在盒子裡 圖片1 (以及類比 圖片2 進行明確的生命週期管理即呼叫 圖片3) 接著是
進行明確的生命週期管理即呼叫
.
回到圖中。 349 作為盒內內容物 HDR.
HDR 色彩成分對數值的計算
,
進行明確的生命週期管理即呼叫
根據
方程式 34 在包廂內進行 Red, 綠色 進行明確的生命週期管理即呼叫 Blue. 對分子中所有分量進行求和
以及
分母
此處實作了值與最終除法
(參見圖中的紅色部分 351 (例如)。
那個盒子 Lw 如圖所示。 349 包含 HDR 顏色數值的計算
,
進行明確的生命週期管理即呼叫
根據其對數值。
指數函數是透過查表來實現的。接著,根據
HDR 色彩分量,依照以下公式計算出相對「世界」亮度「Lw」: 方程式 38.
根據 方程式 39 是在方框中計算出來的 Lw_d 在模組中 LDR (參見基本設計結構圖。)
347). 該文的全部內容為 LDR 如圖所示。 352.
該模組 Ls 包含根據以下公式計算的歸一化亮度: 方程式 37 即相對「世界」亮度的比值,再乘以其平均值
並乘以一個「亮度參數」 a. 透過調整此參數值,您可以改變最終處理後影像的亮度。您可以在
VA 設計中的註解框中找到此參數的適當數值;若想進一步了解,請參閱 [Rei02]. LDR_亮度 根據以下公式
計算 LDR 亮度 方程式 36. 此數值最終會與
HierarchicalBox 的輸出相乘 HDRColor
,
進行明確的生命週期管理即呼叫
分別針對紅色、綠色和藍色這三個色分量。所得結果即為 LDR 的紅色、綠色和藍色色分量
[Fat02] 為經處理後的輸出影像。
HierarchicalBox 的內容 LDR 圖中顯示了灰階影像的處理方式。 353.
在 HierarchicalBox 中 Exp_Ln
是根據
其對數值計算得出的
由於進行了 HDR 處理(方程式 34).
在方框內 SQRT 根據第 節中的演算法,計算出平方根 . 結果除以它本身
加上
. 該數值的
此外,還可透過操作員設定輸出影像的亮度
ShiftLeft_亮度.





可計算如下:

是經縮放的 HDR 亮度:

調整顯示之 LDR 影像的亮度。
典型值介於 0.09 至 0.72 之間 [
是根據 HDR 顏色計算得出的:
,
進行明確的生命週期管理即呼叫
:

在此範例中,其計算方式為

,
進行明確的生命週期管理即呼叫
現在可以重建為

用於在顯示器上輸出的灰階影像可按以下方式計算:

是根據……進行的 HDR 處理所產生的結果
是一個參數常數,可用於調整輸出影像的亮度。
上一頁

