圖像亮度自適應調整


簡單介紹

  本篇主要是對論文:Automatic Exposure Correction of Consumer Photographs 的實現總結。
作用是為了讓圖像曝光、細節更好。
    論文地址:點擊打開鏈接

實現原理

  依據對輸入圖像的亮度信息進行分析處理,進而獲得該圖片相應的S型Gamma曲線。利用這條曲線對輸入圖像進行處理,得到更好曝光和細節效果的圖像。

算法實現

圖像切割

  將輸入圖像縮放后。利用:graph-based segmentation方法進行圖像切割。直接網上搜索該keyword,有相應的論文和直接的代碼下載。代碼做點小改動之后
能夠直接opencv編譯通過。
  得到的結果例如以下:
                     
               縮放后圖像                                區域切割后圖像

區域合並

  首先將圖像歸一化。接着依據亮度0.0、0.1....1.0將圖像分為11層。

然后將之前切割出來的區域塊,依據亮度層進行合並。

得到的結果例如以下: 區域合並后圖像

細節提取

  將圖像依據前面的分層和亮度中間值V為分界線。將圖像分為暗區和兩區兩部分。,對圖像分別用Gamma(2.2, 0.445)進行處理,得到欠曝和過曝圖像。
接着對着三張圖像進行canny 細節提取。

針對之前得到的前面分層。依據每層亮度是否大於V,計算出該層的細節占總細節的比例:Vb或者Vh。

區域尺寸比例

  計算出每層區域的像素占整個圖像像素的比例。相應為:Ci;

相鄰層直方圖距離

  得到每層相應的直方圖,計算兩兩相鄰層之間。直方圖重合區域最大時候移動的距離,記錄為Dij。

區域層亮度重映射

  依據論文上公式:
  
             
    
  
  依據公式算法。枚舉全部可能的的區域層亮度組合,算出每種組合的Z值,取Z值最小時候的組合。就是我們求得的新區域層亮度。
如本文圖片范例所看到的:最開始的區域層亮度為:0 1 2 3 4 7 8;算法調整后為:2, 2, 2, 3, 5, 7, 8。亮處的區域層亮度沒有變化,暗處區域層
亮度添加了不少。

S曲線調整

  前面得到的區域層亮度。就是用來求S曲線的Qs, Qh。例如以下圖所看到的:
  
  Qs由例如以下公式求得:
            
        
  ei能夠理解為區域層亮度調整前的區域亮度與區域size的比值。e'i為區域層亮度調整后的區域亮度與區域size的比值。
Qh也是類似方式求得,本文范例圖像上,亮處區域調整為0。所以Qh計算出來為0。Qs為正數。

  接着便能夠利用公式: 對原圖像進行S曲線調整。

  處理后的結果對照方下: S曲線調整后結果對照

  能夠明顯的看到。暗處的亮度和細節已經起來了。

細節優化

  前面的調整。提高暗處亮度,本質上會壓縮了中間區域的動態范圍。將會導致圖像看起來有些朦朧模糊。因此在這基礎上,還須要
做些細節增強的處理。對原圖像I做guided filter,到新圖像F,用I - F得到用來增強細節的圖像。

接着使用例如以下公式進行處理:

     處理后的結果對照方下:
        
     能夠看到右邊圖像細節部分,得到了增強。

色彩調整

  前面能夠看到,新圖像亮度添加之后,飽和度會減少。所以。這里依據原圖像亮度和色彩的比值。以及新圖像的亮度,
來從新調整新圖像的色彩。
     處理后的結果對照方下:
        
  能夠看到新圖像的色彩飽和度已經起來了。

另外須要注意,該算法的大缺點:會放大噪聲。

  以上,圖像調整完成。

結果顯示

  最后。看幾組該算法的處理結果:
        
        
        
        
        
  能夠看到:該算法對弱光下拍攝的圖像,暗處細節得到了明顯的加強,同一時候對正常曝光的圖像,也不會造成變壞的影響。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM