本人參考下面的文獻實現了自己的偏色檢測:
測控技術2008 徐曉昭等 基於圖像分析的偏色檢測及顏色校正方法
1. 偏色檢測
在我的實現中,通過分析上述文獻的思路,認為文獻中的公式4有問題。
我的實現中,沒有采用上述文獻中的公式4,而是用另外的方法計算偏色因子K的值。這種修改可能與所實現的RGB到LAB空間轉換的有關系。
我測試過openCv的rgb2lab的方法,openCv的lab取值區間均轉換到0-255,通過轉換到正常的LAB取值區間,及L為0-100,a,b為-128-127,發現結果與Photshop轉換的結果相差迥異。而我的RGB到LAB的空間轉換結果在絕大多數顏色上和Photoshop的轉化結果相差1個像素。經過定點優化的RGB到LAB空間轉換的速度非常之快。
2. 顏色校正
上述文獻中顏色校正的方法是對每一個通道,通過求解一個大規模的線性方程組得出校正系數,然后去校正。而我的實現方法極其簡單。
2.1 首先根據偏色因子的偏色程度決定是否存在偏色,是否需要校正。
2.2 根據顏色分類A,B的均值確定到底是哪一種偏色。
2.3 根據不同的偏色情況,分別采用線性拉伸的策略把A,B的均值等效移位到分布中心的附近。
3. 實驗結果
偏色圖像:
偏色因子 K = 2.3
校正之后:
偏色圖像:
偏色因子: K= 1.96
偏色校正之后:
4. 性能指標
本文算法在主頻為800M的手機上,對於圖片大小為640x480的圖像,偏色檢測+偏色校正總的處理時間小於100ms。