【OpenCV開發之二】影象白平衡part_one

NO IMAGE

一、概念

        什麼是白平衡呢?白平衡就是針對不同色溫條件下,通過調整攝像機內部的色彩電路使拍攝出來的影像抵消偏色,更接近人眼的視覺習慣。白平衡可以簡單地理解為在任意色溫條件下,攝像機鏡頭所拍攝的標準白色經過電路的調整,使之成像後仍然為白色。這是一種經常出現的情況,但不是全部,白平衡其實是通過攝像機內部的電路調整(改變藍、綠、紅三個CCD電平的平衡關係)使反射到鏡頭裡的光線都呈現為消色。

二、方法

1、灰度世界演算法

        灰度世界演算法以灰度世界假設為基礎,該假設認為:對於一幅有著大量色彩變化的影象,R、G、B,三個分量的平均值趨於同一灰度值。從物理意義上講,灰色世界法假設自然界景物對於光線的平均反射的均值在總體上是個定值Gray,這個定值近似地為“灰色”。顏色平衡演算法將這一假設強制應用於待處理影象,可以從影象中消除環境光的影響,獲得原始場景影象。

演算法執行步驟:
(1)確定灰度均值:Gray

(2)計算三個通道的增益:Kr,Kg,Kb;

(3)調整R、G、B分量;

這種演算法簡單快速,但是當影象場景顏色並不豐富時,尤其出現大塊單色物體時,該演算法常會失效。

2、完美全反射理論

       完美全反射理論(perfect Reflector)假設影象上最亮點就是白點,並以此白點為參考對影象進行自動白平衡,最亮點定義為R G B的最大值。

3、動態閾值演算法

參考論文:A Novel Automatic White Balance Method For
Digital Still Cameras

演算法分為兩個步驟:白點檢測和白點調整。

三、驗證

        通過測試效果表明:動態閾值法,1、該演算法效果非常好;2、對塊大小不太敏感,因此非常適合於自動化操作。