2021年4月20日 星期二

Bayer filter 及 debayer 演算法

本篇文章是關於 Bayer filter:一種相機感光元件對於不同顏色的排列方法,以及如何從 Color Filter Array (CFA) 圖片轉換至我們常用的 RGB 圖片的一些演算法(也就是各種 debayer 的演算法)。

人類的視網膜對於綠色的光最敏感,因此 Bayer filter 的設計原理便是使用兩倍於紅色及藍色的綠色感光元件來模仿人眼的性質。

Bayer filter

上圖取自於 Wikipedia [1],可以看出綠色的感光元件為紅色與藍色的兩倍。由於成本的因素,大部分的數位相機都是使用類似的方法來排列感光元件,而 Sigma 相機所用的 Foveon X3 元件則為另一種感光元件。

從 CFA 圖片轉換成 RGB 圖片的過程稱為 debayer。在 debayer 的過程中常常會產生一些失真或其他的 artifact,這也是為什麼不需要 debayer 演算法的 Foveon X3 [2] 元件有它的市場在。以下簡介幾種常用的 debayer 演算法 [3,4]。

  • Superpixel:將 2x2 的格子中的兩格綠色取平均當成 G,紅色藍色直接使用。這個演算法產生的 RGB 圖片的大小為原始的一半。
  • Bilinear interpolation:針對每個 pixel 取周圍 3x3 的格子,利用 bilinear interpolation 分別計算 RGB 三種顏色的值。這種方法的缺點是 RGB 圖片會比較模糊。
  • Variable Number of Gradients:取 pixel 周圍 5x5 的格子,計算八個方向的梯度,只留下比較小的梯度,再利用這些比較小的梯度計算此 pixel 的值。這種方法產生的 RGB 圖片會比 bilinear interpolation 產生的更為銳利。

參考資料

沒有留言:

張貼留言