本專案基於 2007 年 Pacific Graphics 會議論文
《Exposure Fusion》(Tom Mertens, Jan Kautz, Frank Van Reeth)所提出之曝光融合技術,將 Mericam/exposure-fusion 提供的 MATLAB 原始碼 完整改寫為 Python 版本。
本實作使用 NumPy、OpenCV 等基礎套件實現金字塔融合流程,並支援自動影像對齊(image alignment)、權重計算與最終融合,適合用於多張不同曝光度的照片合成高品質結果。
現代相機可拍攝多張不同曝光度的圖片,然而在單張圖片中往往難以同時保留亮區與暗部細節。
曝光融合(Exposure Fusion) 是一種不需 HDR 輸出格式、僅透過影像融合即達到動態範圍擴展的技術。
本專案完整實作 Exposure Fusion 演算法,包括對齊前處理、特徵權重計算、Laplacian 金字塔建構與重建等步驟,忠實對應原始 MATLAB 程式行為。
- 影像對齊:自動計算平移參數,將輸入圖片對齊,避免錯位融合。
- 權重計算:根據三個特徵計算融合權重:
- 對比度(Contrast)
- 飽和度(Saturation)
- 曝光適度(Well-exposedness)
- 權重正規化:避免權重為零與 overflow,進行安全正規化。
- 金字塔融合:建構 Gaussian 與 Laplacian 金字塔,並進行多層融合。
- 影像重建:透過 Laplacian 金字塔重建出最終融合結果。
![]() |
![]() |
![]() |
![]() |
融合後的影像同時保留暗部與亮部細節,色彩自然。
conda create -n exposure_fusion python=3.10.12 -y
conda activate exposure_fusion
pip install -r requirements.txtpython3 exposure_fusion.py 程式將輸出結果至指定資料夾。
.
├── exposure_fusion.py # 主程式
└── test_img/ # 放入需處理圖片
-
Mertens, T., Kautz, J., & Van Reeth, F. (2007).
Exposure Fusion. In Proceedings of the 15th Pacific Conference on Computer Graphics and Applications (PG'07) (pp. 382–390). IEEE. -
GitHub 開源程式碼參考:https://github.com/Mericam/exposure-fusion



