BAYER格式轉RGB格式硬件實現


圖像采集的功能一般用CCD和CMOS傳感器來實現,但是這兩種圖像傳感器在一個像素上智能采集RGB顏色的一個分量,為了獲得最佳的圖像效果,需要3個圖像傳感器分別采集不同的顏色分量,一般的拜爾模型如下圖所示,系統中用到的模型如圖中紅框內所示,

攝像頭時鍾是:74.25Mhz,像素是1920*1080

以每個2*2的方陣為一個單位,由於人眼對綠光比較敏感,所以有兩個綠色像素,一個紅色像素和一個藍色像素

在用硬件實現時,標記一個x和一個y,每個有效像素過后x進行一個翻轉,每個有效行之后y進行一個有效翻轉。這樣就可以得到一個2*2的矩陣,構成一個基本的像素矩陣。

設計了一個5*5的矩陣,實現代碼如下:o_pix_data[DATA_SIZE*(i+1)-1:DATA_SIZE*i] <= mem_r[(mem_wsel_s+LINE_SIZE-i)>=LINE_SIZE?mem_wsel_s-i:mem_wsel_s+LINE_SIZE-i]

五行數據一次排開,從最高位依次排到最低位。根據輸出的行不同,排列順序不同。當前輸入的行永遠在最低位。其中mem_r存儲的數據對應於當前輸入位。存儲 到第5行數據的時候開始輸出。

剩余的四行數據依次由低位到高位輸出

如果當前輸入是mem_wsel_s為0時,最低位數據為第一行,然后是第五行,然后是第四行,然后是第三行,然后是第二行

如果當前輸入是mem_wsel_s為1時,最低位數據是第二行,然后是第一行,然后是第五行,然后是第四行,然后是第三行

依次排列。。。。。。

每次輸出的數據做四個時鍾的延時,就可以得到一個5*5的矩陣。然后對這個5*5像素點中間的3*3矩陣進行兩個時鍾的延時得到兩個

處理后的數據是從第四行開始有效的

對每個像素進行插值,由GBGB.......得到RGBRGB....,經過了十六次的對邊求和運算,然后再根據新的到的像素值再進行一次對邊求和運算,8次運算。得到一個3*3的RGB全像素矩陣(中心的像素值通過延時得到沒有做插值處理)

然后利用得到的新的RGB像素值減去該3*3像素點本身像素點的值(延時得到),就可以得到一個新的像素值。

根據當時輸出像素點的值,再由新得到的3*3矩陣進行一個不同的插值計算,就可以得到該點的RGB像素值。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM