當前位置:編程學習大全網 - 源碼下載 - 關於 CLAHE 的理解及實現

關於 CLAHE 的理解及實現

CLAHE 是壹種非常有效的直方圖均衡算法, 目前網上已經有很多文章進行了說明, 這裏說壹下自己的理解.

直方圖均衡是壹種簡單快速的圖像增強方法, 其原理和實現過程以及改進可以查看這裏: 壹文搞懂直方圖均衡_yfor1008-CSDN博客

目前存在壹些問題:

為了解決上述2個問題, 就有2方面的解決方法: 壹是解決全局性問題, 二是解決背景噪聲增強問題.

將上述二者相結合就是 CLAHE 方法, 其全稱為: Contrast Limited Adaptive Histogram Equalization.

CLAHE 算法流程主要有以下幾個步驟:

其處理流程可以用如下示意圖表示:

這裏使用matlab實現了該算法, 實現過程參考了: Contrast Limited Adaptive Histogram Equalization (CLAHE) - File Exchange - MATLAB Central (mathworks.com) 及matlab源碼 adapthisteq .

以下為幾組測試結果:

從左往右以此為: 原圖, HE, CLAHE, 從圖中可以看到, CLAHE不僅實現了圖像細節的增強, 還抑制了背景噪聲.

從左往右以此為: 原圖, HE, CLAHE, 從圖中可以看到, CLAHE實現了對細節的增強且沒有使得圖像過度增強.

如下圖所示:

CLAHE 中使用的方法是不斷地循環, 直到將所有截斷後多余的像素都添加到直方圖中. 這種方法實現過程比較復雜, 個人認為可以簡化, 如:

上述2種方法對對比度影響不大, 但對圖像亮度有壹點點影響 , 如下圖所示為上述方法1與原始CLAHE方法的對比結果, 第1行為原始CLAHE, 第2行為截斷後直接丟棄方法, 第1列到第3列使用的截斷參數依次為: 0.01, 0.03, 0.05.

從圖中可看到, 對圖像結果影響較大的參數是截斷閾值, 而不是是否將截斷後的數據添加到直方圖的每個bin上 . 如下圖所示為另外壹組測試結果, 從左到右依次為: 原始圖像, 閾值0.01, 閾值0.03, 閾值0.05.

需對圖像進行填充, 為方便進行插值, 填充後圖像的每個分塊都必須為2的整數倍, 要不然不方便對每個塊劃分為4個子塊.

在查看 matlab 源碼時, 裏面使用了3種分布類型:

這裏測試對比了 uniform 和 rayleigh , 如下所示為水下圖像測試結果(正常圖像測試幾乎沒有差別, 這裏不進行展示了):

從左到右依次為: 原圖, uniform 和 rayleigh , 目前沒有看出二者的本質區別.

不過這張圖像來源: Computer vision algorithm removes the water from underwater images ? Behind the Headlines - MATLAB & Simulink (mathworks.com) , 作者提出了壹種 Sea-thru 方法, 效果不錯, 這裏下mark壹下, 後面有時間在研究研究, 效果如下所示:

  • 上一篇:地址欄輸入的JAVA代碼在網頁源代碼中怎麽寫
  • 下一篇:北大青鳥設計培訓:軟件開發流程?
  • copyright 2024編程學習大全網