RGB to RAWの変換について考えてみた  -How to transform RGB to RAW

鬼滅の刃は関係ないよ 日常
 

RAWからRGBに変換する際はデモザイクすればいいのだが、逆はどうするのかというお話。

C言語やpythonなどで処理が変わると思うのでコードは割愛させていただく。

基本的なRGB画像がどのようなCFA(Color Filter Array)から情報を取得しているのかを知っていれば理解が早まると思うが、とりあえず変換の流れを256×256の画像の場合で説明する。

Red, Blue Channel

Rの場合は0行目、2行目、4行目…の偶数行の0列目、2列目、4列目…の偶数列を取得、

Bの場合は奇数行の奇数列を取得する。

R Channelの変換
B Channelの変換

Green Channel

Gの場合はRとBで取得しなかった残りの要素を取得するが、この時Rの列とBの列をそれぞれ別に取得する。画像中ではRの隣のGをGr、Bの隣のGをGbと表現している。

G Channelの変換

これらから得られた配列を[R,Gr,Gb,B]の4channelのRawデータとして取り扱うことができる。

RAWからRGBに変換する場合は、それぞれのチャネルの色がついていない部分を補間(デモザイク)することで現像することができる。補間方法に関しては様々なアルゴリズムがあり、このアルゴリズムによって品質に差が出たりする。最近だとこのデモザイクを深層学習などを用いて行う試みもあるようだ。

理解の助けになれば幸いです。

日常機械学習深層学習画像処理
スポンサーリンク
Toufuをフォローする
トウフ.log

コメント

タイトルとURLをコピーしました