【图像处理】RGB Bayer Color分析
RGB Bayer Color分析
? ? ?Bayer色彩濾波陣列
?
? ? ?拜耳色彩濾波陣列(Bayer Color Filter Array,CFA)是非常有名的彩色圖片的數(shù)字采集格式。色彩濾波器的模式如上圖所示,由一半的G,1/4的R,1/4的B組成。
拜耳色彩濾波器的模式、序列、濾波器有很多種,但最常見的模式是由Kodak提出的2*2模式。
? ?當Image Sensor往外逐行輸出數(shù)據(jù)時,像素的序列為GRGRGR.../BGBGBG...(順序RGB)。這樣陣列的Sensor設計,使得RGB傳感器減少到了全色傳感器的1/3,如下所示。
? ? 圖像傳感器的結構如下所示,每一個感光像素之間都有金屬隔離層,光纖通過顯微鏡頭,在色彩濾波器過濾之后,投射到相應的漏洞式硅的感光元件上。
?
白平衡調節(jié)(White Balance)
色彩傳感器并不能像人眼那樣直接感應圖像,因此為了保證最終圖像的真實性,必須經過一些白平衡處理以及色彩校正等算法來修正圖像。
原始像素的第一步處理操作就是白平衡調節(jié)。一個白色物體每通道的白平衡都應該是相同的,即R=G=B。通過白色物體的采集以及直方圖分析,擁有最高級別白平衡的通道被作為目標通道,而其他兩個通道通過增益達到匹配,如下:R'=aG'=bB'。同時,隨著光源的不同,白平衡也應該相應的調節(jié)。
Bayer插值補償算法(Bayer Interpolation)
1) 插值紅藍算法實現(xiàn)
每一個像素僅僅包括了光譜的一部分,必須通過插值來實現(xiàn)每個像素的RGB值。為了從Bayer格式得到每個像素的RGB格式,我們需要通過插值填補缺失的2個色彩。插值的方法有很多(包括領域、線性、3*3等),速度與質量權衡,最好的線性插值補償算法。其中算法如下:
R和B通過線性領域插值,但這有四種不同的分布,如下圖所示:
(a)????????????????????????????????? (b)
(c)???????????????????????????????????? (d)
?
? ? 在(a)與(b)中,R和B分別取領域的平均值。
2) 插值綠算法實現(xiàn)
? ?在(c)與(d)中,取領域的4個B或R的均值作為中間像素的B值。
?
?
? ? ? ? ? ? ? ? ? ?(e) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(f)
? ? 由于人眼對綠光反應最敏感,對紫光和紅光則反應較弱,因此為了達到更好的畫質,需要對G特殊照顧。在上述(c)與(d)中,擴展開來就是上圖的(e)與(f)中間像素G的取值,者也有一定的算法要求,不同的算法效果上會有差異。經過相關的研究,(e)中間像素G值的算法如下:
(f)中間像素G值的算法如下:
? ? CMOS攝像頭這部分轉換是在內部用ADC或者ISP完成的,生產商為了降低成本必然會使得圖像失真。當然用外部處理器來實現(xiàn)轉換,如果處理器的速度足夠NB,能夠勝任像素的操作,用上面的算法來進行轉換,皆大歡喜。不過上述算法將直接成倍提高了算法的復雜度,速度上將會有所限制。因此為了速度的提成,可以直接通過來4領域G取均值來中間像素的G值,將會降低一倍的速率,而在性能上差之甚微,算法如下:
? ? 如果能夠通過損失圖像的額質量,來達到更快的速度,還可以取G1、G2的均值來實現(xiàn),但是這樣的做法會導致邊沿以及跳變部分的失真
轉載于:https://www.cnblogs.com/lifan3a/articles/7016607.html
總結
以上是生活随笔為你收集整理的【图像处理】RGB Bayer Color分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jq 选择多个子元素,,添加,删除多个类
- 下一篇: C#使用事件方式Winform窗体之间传