awb数据怎么计算_白平衡自己主动(AWB)算法---2,颜色计算
本文說明了白平衡算法估計當前場景的色溫過程.
色溫計算的原理并不復雜,但要做到,還是一道,認真做好每一步,這需要大量的測試,和算法一直完好.
關于該過程首先簡要:
1, 取的圖像數據,并劃分MxN塊,如果是25x25,并統計每一塊的基本信息(,白色像素的數量及R/G/B通道的分量的均值).
2, 依據第1步中的統計值, 找出圖像中全部的白色塊,并依據色溫曲線推斷色溫.
3, 至此,我們得出來了圖像中全部的可能色溫,假設是單一光源的話,能夠取色溫最多的,當作當前色溫.
比方25x25=625 個塊中,一共找出了100個有效白色塊, 里面又有80個白色塊代表了色溫4500左右, 那當前色溫基本就是4500.
依據4500色溫得出的Rgain,Bgain來調整當前圖像,就不會差(非常多!).
以下我們再具體解說一下,每一步中須要做的工作:
第1步, 計算每一塊的基本信息.
關于白色像素統計,大家知道sensor原始圖像是偏色的,怎么統計塊中的白色點呢,那僅僅有設置一個顏色范圍,僅僅要在范圍中,就能夠覺得是白色像素,范圍見下圖:
統計白色像素個數的用處是,1,假設塊中的白色像素太少,能夠拋棄掉. 2,假設白色像素太多,多到每個像素點都是,那也要拋棄掉,由于非??赡茉谠搮^域過曝了
接著把統計到的白色像素點R/G/B取均值, 并得到該block 的R/G,? B/G值
至此,我們得到了每一塊的白點數目及R/G,B/G的值. (請自己主動相應第1部分中色溫曲線).
第二步 計算當前色溫
這個比較復雜, 大自然絢麗多彩,景色萬千. 上一步中統計的”白色點”難免會有失誤的地方,比較常見的如黃色皮膚easy被誤判為低色溫下的白點,淡藍色的窗簾,easy被誤判為高色溫下的白點,一張圖中既有白色,也有黃色,也有藍色的時候,是不是感覺情況有點復雜,其他的大家可繼續腦補.
這時我們須要一定的策略來正確的推斷出到哪個才是真的白.
通常我們會把取到的白色塊,計算一下到曲線的距離,再設置對應的權重.話不多說,上個圖大家就都明確了.
如果有上面這樣一幅圖,該圖是在沒有開AWB的前提下截取的,能夠看到左邊白色地方略有偏綠,當前色溫是室內白熾燈,大概4000~5000k左右.(請忽略顏色不正的問題,我們在討論白平衡)
以下我們就依據之前的統計信息和測量好的色溫曲線進行白平衡矯正.
首先要找出白區,例如以下圖:
上面這個圖中的數字標示出了檢測到的白色區域,數字同樣的表示一個白區,依據統計信息(白點數,rg/bg值)來區分的.能夠看到有誤判的地方,比方色卡左上第二塊的膚色塊.還有最右邊從上面數第二塊也是easy被推斷成低色溫白塊的情況.
針對這樣的誤判的情況,對不同塊依據統計信息進行權重設置,以求讓誤判的區域對終于結果影響小一些.
上面這個圖標注了權重,基本是依據統計信息中白點數來確定的.能夠看到圖中一片白色被標識了高權重.其他情況被標識了低權重. 權重高低一是看塊中白色點數量,二是看rg/bg到色溫曲線的距離.
通過上面兩個圖,大家就能夠明顯的找到白色區,并依據曲線來矯正,即使不通過曲線矯正,把白色區的r/g,b/g值向1趨近,讓r=g=b,也會得到很好的白平衡效果.例如以下圖所看到的:
至此,白平衡的基本流程就講完了,有圖有真相,大家一定看著也方便.
總結一下:第一次做白平衡,感覺理論非常easy,不用什么基礎也能看懂.實際算法調試時,可謂差之毫厘,失之千里.總是感覺情不自禁就走上歪路.中間參考了大量資料,比方網上有很多基于色溫/灰度世界/白點檢測的白平衡算法,實際個人感覺應該把它們都結合起來,讓算法強壯,健康才是我們想要的.
還記得第一章中開始的那兩張白色T恤的圖么,算了,我再貼一下:
這張圖能夠理解為在多光源下的白平衡調整.陰影色溫比陽光下色溫要高一些,假設陽光下是5000k,陰影可能是7000k.有光就有影,它們常常出如今一個鏡頭里,對著當中一個色溫調,還有一邊就會偏色.為了總體效果好,要把翹翹板平衡起來,能夠加一些策略在里面.
以下給出一幅,讓大家體會一下流程.
版權聲明:本文博客原創文章。博客,未經同意,不得轉載。
總結
以上是生活随笔為你收集整理的awb数据怎么计算_白平衡自己主动(AWB)算法---2,颜色计算的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ora22813操作数值超出系统的限制_
- 下一篇: 池化层在全连接层之间吗,了解最大池化层之