【OpenCV筆記 14】OpenCV圖像增強方法直方圖均衡化

直方圖均衡化

  圖像的直方圖是什麼?

  • 直方圖是圖像中像素強度分佈的圖形表達方式.
  • 它統計了每一個強度值所具有的像素個數.
../../../../../_images/Histogram_Equalization_Theory_0.jpg

  直方圖均衡化是什麼?

  • 灰度直方圖就是在圖像中對應某個灰度級的像素的數量值。它可以表示爲一個笛卡爾座標系,其中X座標是灰度級,Y座標是該灰度出現的像素數量。直方圖均衡化就是一種點運算,處理過程就是將輸入圖像轉換成在每一灰度級上都有相同的像素值,即結果直方圖是相對平坦的。
  • 直方圖均衡化是通過拉伸像素強度分佈範圍來增強圖像對比度的一種方法.
  • 說得更清楚一些, 以上面的直方圖爲例, 你可以看到像素主要集中在中間的一些強度值上. 直方圖均衡化要做的就是 拉伸 這個範圍. 見下面左圖: 綠圈圈出了少有像素分佈其上的強度值. 對其應用均衡化後, 得到了中間圖所示的直方圖. 均衡化的圖像見下面右圖.
../../../../../_images/Histogram_Equalization_Theory_1.jpg

  直方圖均衡化是怎樣做到的?

  • 均衡化指的是把一個分佈 (給定的直方圖) 映射 到另一個分佈 (一個更寬更統一的強度值分佈), 所以強度值分佈會在整個範圍內展開.

  • 要想實現均衡化的效果, 映射函數應該是一個 累積分佈函數 (cdf) (更多細節, 參考*學習OpenCV*). 對於直方圖 H(i), 它的 累積分佈 H^{'}(i) 是:

    H^{'}(i) = \sum_{0 \le j < i} H(j)

    要使用其作爲映射函數, 我們必須對最大值爲255 (或者用圖像的最大強度值) 的累積分佈 H^{'}(i) 進行歸一化. 同上例, 累積分佈函數爲:

    ../../../../../_images/Histogram_Equalization_Theory_2.jpg
  • 最後, 我們使用一個簡單的映射過程來獲得均衡化後像素的強度值:

    equalized( x, y ) = H^{'}( src(x,y) )


發佈了54 篇原創文章 · 獲贊 28 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章