首先要明白什麼是白平衡, 它指的是在影象處理的過程中, 對原本材質為白色的物體的影象進行色彩還原, 去除外部光源色溫的影響, 使其在**上也顯示白色。
那色溫是怎麼理解的呢?這個概念其實有點繞, 它是開爾文通過黑體(blackbody) 這一理想光源, 在不同溫度下, 所發出光線的顏色特性來定義的。黑體是乙個理想化的概念。它是這麼乙個物體, 能發光, 但會吸收掉任何來自外部的光線, 同時又會把吸收的所有能量以光的形式完全釋放出來, 所以叫做黑體。黑體的溫度單叫做開爾(k)。從 3300k 到 9300k 的溫度變化情況下, 它發光的顏色分別是, 紅色, 白色、藍色。便於理解, 你可以這麼想象, 火焰你肯定見過, 內焰溫度較低, 外焰溫度較高(藍色), 內焰溫度較低的地方是黃色的(暖色), 於是火焰最外面溫度最高的地方反而會是藍色的(冷色), 是不是有點反常識。而色溫就是借助黑體的這個溫度變化特性來量化色彩傾向的。色溫數值低, 偏黃, 色溫數值高, 偏藍, 所謂的冷暖色調就是一種比較感性的叫法了。
<3300k
暖色3300~6000k
白6000k
冷色以下是幾個常見場景的色溫:
燭光 1930k, 鎢絲燈 2900k, 中午陽光 5600k, 藍天 18000k
講白平衡是如何修正之前, 有兩個很重要的理論需要知道:
灰度世界理論:這個理論蠻有意思, 與其說是色彩學, 我覺得更像是統計學的範疇, 它認為任何一幅影象, 當有足夠的色彩變化時, 其r, g, b分量均值會趨於平衡(即 rgb 三個數值相等, 也就是說應當是黑白灰型別的顏色)。這個理論在全域性白平衡中得到廣泛應用, 特點是能夠利用更多的影象資訊來做判斷, 但在面對色彩較為單一的影象時就顯得有些乏力了。
全反射理論:一幅影象中亮度最大的點就是白點, 即假設在 ycbcr 空間中y值最大的點為白色, 以此來校正整幅影象。特點是只考慮色彩最亮的那部分, 跟上面的灰度世界理論正好相反, 在處理色彩偏單調的影象時效果好些, 但面對顏色豐富的時, 因為最亮的點不一定是白色的, 可能會出現偏色的情況。
這兩個理論分別對應著兩種色彩空間 rgb 和 ycbcr 調整白平衡的理論基礎:判斷一張白平衡是否準確, 如果不準確, 如何量化其偏離數值。
白平衡就是乙個糾正畫面整體偏色的過程, 那為什麼人眼不需要呢?其實在你看到乙個東西的時候, 眼睛就已經對它進行了色彩修正。相機肯定沒有人眼那麼智慧型(至少現在沒有), 概括的說, 它的自動白平衡演算法就是設定乙個範圍, 如果拍攝**的色彩平均值落在這個範圍裡面, 那就 ok, 說明無需修正。如果偏離出這個範圍, 就需要調整引數, 並校正色彩資料直到其均值落入指定的範圍內。這就是wb白平衡修正的過程。
下面就來簡單介紹幾個白平衡演算法大致原理, 但具體的增益計算和數學建模過程就不作贅述了, 這東西正常人看了都會頭大的。
1. 灰度世界演算法(gray world assumption)
這個演算法原理很簡單, 就是根據前面所說的灰度世界理論, 將原始影象的rgb均值分別調整到r=g=b即可。不完美的地方就是這個演算法對顏色不豐富的影象敏感程度一般, 處理起來效果也就不會很理想, 侷限性較大。
2. 標準差加權灰度世界演算法(standard deviationweighted gray world assumption)
標準差加權灰度世界演算法是針對上乙個演算法的改進, 它的原理是把影象等分成幾塊, 然後對每個塊利用統計學進行分析, 看裡面顏色的豐富程度, 顏色多的就加權, 顏色少得就減少權重, 最後求和得出乙個均值。根據這個相對精確的數值來進行rgb數值的修正。
3. 全反射演算法(perfect reflector assumpution)
這個是基於前面介紹的全反射理論生成的演算法, 理解起來也不難, 它認為中最亮的那個點就一定是白色的, 如果原始影象中最亮的那個點不是, 那就針對偏離白色的數值進行逆向修正。缺點就是如果影象色彩複雜或者就是沒有高光點, 它的修正效果就會比較乏力。
上面三個演算法比較簡單, 運算量不大, 但各有優缺點, 也就進一步衍生出了更加有效但是卻要複雜的多一些混合演算法, 例如:亮度加權灰度世界演算法與全反射演算法的正交組合演算法(quadraticcombining luminance weighted gray world & prefect reflector assumption)。看這麼長的名字就知道, 這個演算法很複雜, 白平衡修正效果也是蠻不錯的, 而且它本身是收斂的, 在對影象處理的時候不會帶來太多損失, 但可惜運算量巨大, 對硬體資源的要求過高。
演算法方面挺枯燥的, 非理工科對數學沒興趣的也可以直接略過, 大體知道這麼回事兒就行。但我可以給出的結論是:最終效果越好的演算法, 其複雜程度就越高, 運算量就越大, 對硬體電路的要求也高。具體的實現還需要在白平衡校正能力, 演算法執行效率, 處理器硬體效能三個方面進行權衡。
而通過上面的了解你就會發現, 如果isp影象處理器的性能夠高, 白平衡演算法施展的空間就會大了很多。某些時候白平衡不準確, 一定程度上確實是與isp效能跟不上有關, 當然, 這裡也要看各家廠商在演算法優化方面的功底。一般來說同一代各個品牌的旗艦處理效能差別不會特別大, 雖然軟體方面下的功夫不容易看到, 但重要性確實毋庸置疑的, 能否把硬體整體效能充分發揮出來才是關鍵。
舉例來說, 在單反剛剛數位化的那個年代, 相機的影象處理器效能比較低下, 難以承受高運算強度的白平衡演算法的蹂躪, 於是很多單鏡反光機(如佳能1d, 尼康d2, 奧林巴斯e-1等) 機身上是有乙個白平衡感應裝置的(就是機身正面的那個小白點), 這個可以輔助提高白平衡準確度。到後來隨著相機影象處理器的效能飆公升, 大概是從富士通給尼康代工的expeed一代處理器開始, 就取消了外接白平衡感應器這個裝置。通過越來越多的rgb測光分割槽數, 配合越發強大的處理器來進行更加準確的色溫修正。這裡多說兩句, 分割槽越多, 白平衡取樣處理就越準確, 但同時也會帶來計算量上面的飆公升, 從最初的只有幾個分割槽, 到 d800 上面用的 9.1 萬畫素 rgb 感應器, 在同時完成測光和白平衡計算的同時, 甚至還能夠餘出力氣進行人臉識別, 背後那塊改用了 arm 架構 expeed 3 才是最大的功臣。而像 dc 啊, 手機攝像頭啊這類連續取景的相機, 則是用前一幀影象的處理結果應用到後面的影象上去的, 實現方式同單反上面那個單獨的測光感應器還不太一樣的。這是產品本身結構差異性導致的。
下圖這組中就是在設定不同的白平衡下拍攝的:
出處:www.zealer.com 李侃
再理解白平衡
白平衡是數位相機的乙個極重要概念。所謂白平衡 英文名稱為white balance 就是數位相機對白色物體的還原。當我們用肉眼 這大千世界時,在不同的光線下,對相同的顏色的感覺基本是相同的,比如在早晨旭日初公升 時,我們看乙個白色的物體,感到它是白的 而我們在夜晚昏暗的燈光下,看到的白色物體,感到它...
什麼是白平衡?
technorati 標籤 白平衡 色溫 分割線開始 所謂白平衡 white balance 指在影象處理的過程中,對原本材質為白色的物體的影象進行色彩還原,去除外部光源色溫的影響,使其在 上也顯示白色。也就是不管在任何光源下,都能將白色物體還原為白色。白色是指反射到人眼中的光線由於藍 綠 紅三種色...
如何調節白平衡
什麼是白色?白色是指反射到人眼中的光線 由於藍 綠 紅三種色光比例相同且具有一定的亮度所形成的視覺 反應。什麼是消色?當一種光線中的三原色成分比例相同的時候,習慣上人們稱之為消色,黑 白 灰 金和銀所反射的光都是消色。當有色光照射到消色物體時,物體反射光顏色與入射光顏色相同,既紅光照射下白色物體呈紅...