1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

RGB to RAW(Bayer)変換の解説

Posted at

RGB to RAW変換概要

初めに

RGBをRAWのデータに変換する方法として、RGBデータを間引く方法を説明します。
今回は例として256x256x3のRGBデータを128 x 128 x 4のRAWデータに変換するものを図として以下に示します。

※一般的なベイヤ配列を想定していますので、ダブルベイヤやクアッドベイヤなどの説明は省かせていただきます。

データサイズは
$ RGB = [h , w , 3 ] → RAW = [h/2 , w/2 , 4]$
となります。
また、RAWをベイヤ形式に並べると
$ Bayer = [h,w, 1] $
となります。

前述したとおり、データを間引くだけの単純な処理となるが、$G$チャネルと残りの $R,B$チャネルで少しだけ処理が違うことに注意する。 $G$チャネルはRAWに変換する際に奇数行と偶数行で分けて処理をしますが、最終的なベイヤ配列にする際に$R$チャネルと隣り合うものを$Gr$,$B$チャネルと隣り合うものを$Gb$とします。

R

RGB2RAW_R.png

RAW_R= \left(
\begin{align}

& R_{0,0}        &  R_{0,2}      & &\cdots  &  &  R_{0,even}     &&   \cdots &   &  R_{0,254}  \\ 
& R_{2,0}        &  R_{2,2}      &  &\cdots    &&  R_{2,even}     &  & \cdots    &&  R_{2,254}  \\
&    \vdots       &                       &  &                  &&                               &&               &  &               \vdots       \\
& R_{252,0}  &  R_{252,2} & &  \cdots  & & R_{252,even}& & \cdots  & &  R_{252,254}  \\ 
&R_{254,0} & R_{254,2} &  &\cdots    && R_{254,even} &&  \cdots   && R_{254,254}  \\
\end{align}
\right)

のように、偶数行の偶数列を抽出してRAWデータのRチャネルとします。

B

RGB2RAW_B.png

RAW_B= \left(
\begin{align}
& R_{1,1}        &  R_{1,3}      & &\cdots  &  &  R_{1,odd}     &&   \cdots &   &  R_{1,255}  \\ 
& R_{3,1}        &  R_{3,3}      &  &\cdots    &&  R_{3,odd}     &  & \cdots    &&  R_{3,255}  \\
&    \vdots       &                       &  &                  &&                               &&               &  &               \vdots       \\
& R_{253,1}  &  R_{253,3} & &  \cdots  & & R_{253,odd}& & \cdots  & &  R_{253,255}  \\ 
&R_{255,1} & R_{255,5} &  &\cdots    && R_{255,odd} &&  \cdots   && R_{255,255}  \\
\end{align}
\right)

$R$の時の逆で、$B$は奇数行の奇数列を抽出します。

G

RGB2RAW_G.png

$G$チャネルはベイヤ配列にする際に$R,B$と隣り合うものをそれぞれ$G_r,G_b$として抽出します。
$RAW_{G_r} = G_{even,odd}$
$RAW_{G_b} = G_{odd,even}$

ベイヤ配列 Bayer Array

上の処理で得られたRAWデータを並べ替えることによってベイヤ配列が得られる。
BayerFilterArray.png

$ RGB = [256 , 256 , 3] → Bayer = [256 , 256 ,1 ] $
という感じにサイズが変わります。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?