算法
經典算法
下面以一幅3*2像素的簡單圖片(圖C)為例,
(圖C)
圖C的直方圖:
注意看百分位(Percentile)這一項。
求出每個色階的百分位之後,再乘255,
色階 數量 出現頻率 百分位 255*百分位
根據每個色階的 色階->255*百分位 的對應關系組成一個灰度映射表,
Photoshop的算法
經過經典算法均衡化的圖片,最亮的像素值總是255,
Photoshop通過對比度拉伸的方法使最暗的像素值變為0,
對比度拉伸的算法,
對比度拉伸的公式:C = (Level - Min) * Scale = (Level - Min) * 255 / (255-Min)
圖C均衡化之後的灰度值分別是128、212、255,
Min = 127.50 '均衡化之後的最小值
Scale = 255/(255-Min) = 2
(127.50-Min)*Scale = 0*2 = 0
(212.42-Min)*Scale = 84.92*2 = 170
(255.00-Min)*Scale = 127.5*2 = 255
'新的映射表:
50 -> 0
100 -> 170
200 -> 255
經典算法和Photoshop算法的直方圖比較。
彩色算法
彩色的直方圖均衡化其實就是對圖像某個或多個顏色通道進行灰度直
- 統計所有RGB顏色通道的直方圖的數據並做均衡化運算,
然後根據均衡化所得的映射表分別替換R、G、B通道顏色值。 - 分別統計R、G、B顏色通道的直方圖的數據並做均衡化運算,
然後根據R、G、B的映射表分別替換R、G、B通道顏色值。 - 用亮度公式或求RGB的平均值的方式計算亮度通道,
然後統計亮度通道的直方圖的數據並做均衡化運算, 然後根據映射表分別替換R、G、B通道顏色值。
Photoshop用的是第一種方法。