| 簡要說明 | |
|---|---|
|
檔案:
\examples\Processing\HDR_ImageComposition\HighDynamicRange\HDR_CRC_Bayer.vad |
|
|
預設平台: mE5-MA-VCL, imaFlex CXP-12 Quad |
|
|
短說明 根據 Debevec 與 Malik 的 HDR 演算法,以及根據 Reinhard 等人與 Fattal 等人的 LDR 演算法。 |
|
高動態範圍 (HDR) 影像能再現寬廣的亮度範圍,因此可在單張影像中同時結合非常暗與非常亮的細節。 透過大多數攝影技術,單一 Exposure Time 無法達到如此高的亮度範圍。因此,HDR 影像是由 具備不同 Exposure Time 的影像所建立。大多數顯示器無法直接顯示 HDR 影像。因此,若要在顯示器上顯示 HDR 影像,必須將亮度對比縮減至 低動態範圍 (LDR) 影像。此程序也稱為色調對應 (Tone Mapping)。在此 VisualApplets 範例中, 實作了根據 Debevec 與 Malik [Deb97] 的 HDR 演算法。 LDR 演算法則是根據 Reinhard [Rei02] 與 Fattal [Fat02]。以下將簡要說明這兩種演算法。
像素值
在具有像素座標
和
的影像 i 中,可以表示為輻照度值的函數
以及
Exposure Time
:
當我們定義
則得出:
其中我們稱
為響應曲線。
它將 Exposure Time
的像素值
與場景輻照度
.
關聯起來,
假設每個像素皆為常數。
在已知
和
,
的情況下,可以使用奇異值分解
方法計算 [Deb97]。
現在可以使用下列運算式建立 HDR 影像 [Deb97]:
其中
是
產生的 HDR 影像中像素 x,y 處的對數輻照度值(底數為
)。對於彩色影像,
是紅、綠
與藍色值
(rs, gs, bs)
,
和
)。
亦即, 方程式 34 必須分別針對紅、綠與藍色值進行計算。
是曝光次數。
在 方程式 34
是一個加權函數:
用於拍攝具有極寬亮度範圍(包含極暗與極亮物體)之場景的 HDR/LDR 演算法已在 VisualApplets 中實作,適用於 灰階(「HDR_CRC_Gray.vad」)、Bayer(「HDR_CRC_Bayer.vad」)與彩色(「HDR_CRC_Color.vad」)相機影像。 系統會將影像傳輸至 PC,讓場景中的每個物體皆能妥善顯示。 圖 347 顯示了設計「HDR_CRC_Bayer.vad」的基本結構。所有範例皆遵循相同的原則。 對於 Bayer 格式的 Raw 影像,每個影像像素的紅、綠、藍值會在 HierarchicalBox Bayer 中透過 Bayer5x5Linear 運算子進行計算。此 Box 僅包含於範例「HDR_CRC_Bayer.vad」中。 在 Box ImageSequence 中,會緩衝處理三個影像的序列。為了進行 HDR-LDR 處理,這三個影像應具有三種不同的 Exposure Time。 選擇 Exposure Time 時,應確保曝光序列中的每個影像至少有一個像素既未欠曝也未過曝。 您可以在 HierarchicalBox Trigger 中使用運算子 SignalWidth width1 至 width3 來設定這些時間(請參見圖 348)。 請注意,時間刻度是以 8 ns 為單位的系統時脈週期。Generate-Period 運算子的設定值必須大於運算子 SignalWidth width1 至 width3 中最長的時間。此外,請參閱相機手冊中有關運算子 Generate-Period 之最小週期長度的說明。 這三個影像會根據上述 Debevec 與 Malik [Deb97] 的 HDR 演算法進行結合。此演算法實作於 HierarchicalBox HDR(圖 347)中。灰階、Bayer 與彩色影像的實作方式皆相同。 LDR 演算法實作於 LDR 中。彩色/Bayer 影像與灰階影像的實作方式有所不同(請參閱章節 與 )。所得 RGB 影像的顏色會在 HierarchicalBox OutputToPC 中進行合併。此 Box 不存在於範例「HDR_CRC_Gray.vad」中。 SourceSelector 運算子提供選項,可選擇 DMA 傳輸已處理的 HDR-LDR 影像或 (經過 Bayer Demosaicing 的)相機影像。
在圖 349 中,您可以看到 HierarchicalBox 的內容 HDR。對於緩衝影像序列的三個影像,分子和分母的相加項
與分母
的成員 方程式 34 是針對第一到第三個影像(HierarchicalBox Image1 設定為 Image3)分別針對紅色、綠色與藍色進行計算。
在圖 350 您可以看到以影像 1 的紅色為例進行的此項計算(在 HierarchicalBox 中 Red
在 box 中 Image1)。所有影像的所有顏色均以相同方式處理。相機響應曲線(CRC)
的對數值會透過 HierarchicalBox 中的 Lookup Table
指定給(紅/綠/藍)像素值 over127 如果像素值大於 127 或位於 Box
underequal127 如果像素值小於或等於 127。這些 Lookup Table 的內容 gO127 和 g_ueq_127 可用
於紅色、綠色與藍色的色彩計算,這些計算可使用位於 \examples\Processing\Advanced\HighDynamicRange\ 下的
Matlab 程式模組「HDR_CRC.m」、「sample.m」與「gsolve.m」來執行,它們
基於 Debevec 與 Malik [Deb97] 的程式碼,並部分參考自 M. Eitz [Eit07] 的範例。
請閱讀「HDR_CRC.m」中的簡短手冊,以取得有關如何使用該程式碼的進一步指示。
使用 CONST 運算子 LNdt1
(以及對應的 LNdt2 和 LNdt3 適用於影像 2 與 3)
可設定 Exposure Time 的對數值(以 e 為底)。請注意,此值必須乘以
由於有 16 個小數位元。對應的時間基礎可以透過參數選擇 LNTimeBase。值
,
或
將時間刻度設定為秒、毫秒或微秒。在查找表中 weight 的內容,如圖 350 的加權函數 方程式 35
已實作。使用 Matlab 程式模組 "HDR_CRC.m"、"sample.m" 和 "Weight.m" 可以建立加權表 "Weights.txt"。請同時閱讀 "HDR_CRC.m"(或灰階影像的 "HDR_CRC_Gray.m")中的簡易手冊以取得進一步說明。HierarchicalBox 的最終輸出 Red (以及對應的 綠色 和
Blue)在方塊中 Image1 (以及對應的 Image2 和 Image3)然後是
和
.
回到圖 349 作為方塊的內容 HDR。HDR 色彩元件對數值的計算
,
和
根據
方程式 34 是在方塊中執行 Red, 綠色 和 Blue。此處實作了分子所有元件的加總
以及分母
值與最終除法運算(例如請參閱圖 351 中的紅色)。
方塊 Lw 的內容,如圖 349 包含 HDR 色彩值的計算
,
和
透過對數值進行計算。
指數函數是透過查詢表格來實作的。接著,相對「世界」亮度 "Lw" 會根據
以下公式從 HDR 色彩分量中計算得出 方程式 38。
其平均值根據 方程式 39 是在方塊 Lw_d 在模組 LDR (請參閱基本設計結構圖
347)。 LDR 的完整內容如圖 352.
模組 Ls 包含根據以下公式計算縮放亮度 方程式 37 作為相對「世界」亮度与其平均值的除法,並乘以「亮度參數」 a。透過變更此參數值,您可以改變最終處理影像的亮度。您可以在 VA 設計的註解方塊中找到此參數的適當值,或者如果您深入了解,可以在 [Rei02]。 LDR_Luminance 計算
LDR 亮度根據 方程式 36。此值最終會與
HierarchicalBox 的輸出相乘 HDRColor
,
和
針對紅色、綠色和藍色色彩分量分別進行處理。結果隨即成為處理後輸出影像的 LDR 紅色、綠色和藍色色彩分量
[Fat02]。
HierarchicalBox 的內容 LDR 針對灰階影像的內容如圖 353.
在 HierarchicalBox Exp_Ln
是根據
其對數值計算得出
作為 HDR 處理的結果 (方程式 34)。
在 box 中 SQRT 根據該節中的演算法擷取平方根 。結果除以自身
加上
。此值
以及隨之而來的輸出影像亮度可以使用 operator 進行設定
ShiftLeft_Brightness.





可以計算如下:

是經過縮放的 HDR 亮度:

用於調整所顯示 LDR 圖像的亮度。
典型值介於 0.09 和 0.72 之間 [
是從 HDR 色彩計算得出:
,
和
:

在此範例中計算為

,
和
重建為

可以計算如下:

是根據以下內容進行 HDR 處理的結果:
是用於調整輸出圖像亮度的參數常數。
上一頁

