新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 使用Zynq-7000 All Programmable SoC實現圖像傳感器色彩校正

        使用Zynq-7000 All Programmable SoC實現圖像傳感器色彩校正

        作者:GaborSzedo SteveElzinga GregJewett 時間:2013-03-20 來源:電子產品世界 收藏

          馮·克里斯假設

        本文引用地址:http://www.104case.com/article/143329.htm

          相機校準最簡單也是最常用的方法就是依據馮·克里斯假設[1]。這種方法旨在將色彩轉換為LMS色域,然后每個通道僅使用三個乘法器便可進行校正。該假設假定通過單獨調整三種視椎細胞反應的增益,就可以實現人視覺系統的色彩恒定性。這三種視椎細胞反應的增益取決于感知環境,即色彩歷史和周邊環境。兩個輻射光譜f1和f2的視椎細胞反應可以通過適當選擇對角適應矩陣D1和D2來匹配,即,使得D1 •S•f1 =D2•S•f2,。其中S為視椎細胞敏感度矩陣。在LMS(長中短波敏感視椎細胞反應域)中,有:
               
          這種方法的優勢在于相對簡單,易于實現,僅使用三個并行乘法器,并將其作為數字圖像傳感器或圖像傳感器流水線(ISP)的一部分:
               
          在實際實現中,使用RGB色域替代LMS域來調整通道增益。一種顏色(以白色為代表)通常用相等的R、G、B值來表示。但是,針對某種色彩調整感知視椎細胞反應或R、G、B值,不能保證其它色彩也得到如實表達。

          分量校正

          對任何特定的色彩分量,馮•克里斯假設只能表達輸入和輸出之間的線性關系。假設用相似的數據表達(比如每分量8位、10位或12位),除非k等于1.0,否則部分輸出動態范圍就無法使用,或者部分輸入值對應于需要剪切或鉗位的值。除了使用乘法器,還可以使用小規模的基于分量的查找表來表達任何定義輸入/輸出映射的函數。這樣在一個模塊中就可以實現傳感器/顯示器的非線性與伽馬校正。在采用圖像處理流水線實現方案中,可以使用伽馬校正IP模塊來完成這一運算。

          完整查找表

          相機校準可為所有可能的相機輸入三色刺激值分配預期值。我們可以將所有可能的輸入RGB值預期值存儲在一個大型查找表中,但這種方案有兩個弊端。第一個問題是內存大小。對10位的色彩分量而言,這個查找表將達到230字(4GB)的深度、30位的寬度。第二個問題是初始化值。一般來說,通過校正測量,只能建立數十到數百個相機輸入值/預期輸出值對。其余稀疏的查找表值必須通過內插得到。這種內插工作并不輕松,因為異構分量輸入到輸出函數并非是單調或平滑的。圖2a所示即為R、G、B輸入(行)輸出(列)值的測量值與預期值對。

          通過對內插得到的經驗結果進行視覺評估(圖2b),結果表明內插法與基于伽馬校正和色彩校正矩陣的解決方案相比并沒有明顯的質量改進。大多數圖像或視頻處理系統均受制于對外部存儲器的訪問帶寬。大型查找表要求使用外部存儲器;逐像素訪問需要很高的帶寬;而且查找表內容是靜態的(難以逐幀重新編程),會限制完整查找表解決方案在視頻/圖像處理應用中的實際使用。

          色彩校正矩陣

          我們在本文中介紹的校正方法將向您演示如何采用3×3矩陣乘法器進行坐標轉換,旨在讓測得的紅、綠和藍三種色彩分量正交化。這種方法與馮•克里斯方法相比的優勢在于所有三個色彩通道都參與了校正過程。比如,在調整綠色通道增益時,可以結合紅色通道和藍色通道的信息。另外,這種方法還適合用同一模塊同步進行相機校準和白平衡校正,并逐幀更新矩陣系數以平滑匹配不斷變化的光源。

          白平衡校正使用的兩種最簡單的算法是灰度世界算法和白點算法。這兩種方法均使用RGB色域。

          灰度世界算法[2]依據這樣的啟發條件,即雖然場景中的不同物體有截然不同的顏色,場景顏色的平均值(紅、綠、藍三種顏色的平均值)應該是中性的灰色。因此,一幀中R、G、B平均色值之差能體現出光源的顏色信息。校正的作用是進行色彩轉換后使得到的平均色值完全相同。灰度世界算法相對容易實現。但是如果場景中出現大型運動物體,這種方法就會產生嚴重誤差,導致原生的場景色彩掉色或變化。  

         
        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 东辽县| 永年县| 北流市| 泾川县| 甘洛县| 新沂市| 道孚县| 宿松县| 红安县| 富宁县| 平罗县| 桑日县| 凤庆县| 芒康县| 都江堰市| 江北区| 苗栗县| 榕江县| 钟山县| 梅河口市| 海兴县| 班戈县| 阳谷县| 股票| 原阳县| 怀远县| 太白县| 仪征市| 丰顺县| 鸡泽县| 江西省| 康马县| 霍林郭勒市| 沙雅县| 晋城| 固安县| 敦化市| 都昌县| 那坡县| 沙坪坝区| 玉溪市|