この記事について †
「Bayer さんに敬意を表して」 †
- 現在販売されているCCDカメラのうち、多くはBayerパターンというものを使っています。
- 高い業務用のカメラは3CCDと、RGBそれぞれにCCDセンサを持っているのですが、それだと値段が全然違います。
- そこで考案されたのが、Bayerパターンです。
- この方法だと、各ピクセルごとに、RGBのそれぞれの色が割り当てられます。格子状に並んでるので、緑を2回使って、格子状に並べます。
- こんな具合に並べます。
- この状態の画像をBayer画像、もしくはRAWフォーマットと呼びます。
- RAW(=生)と呼ばれるのは、センサに一番近い状態の生の情報だからでしょう。(未調査)
Bayerからカラー画像へ †
- このBayer画像、見てみるとこんな感じです。
- 拡大してみるとこんな感じです
- 言葉で表すと「ポツポツと斑点がある感じのグレースケール画像」です。
- そう。CCD1枚で得られた光の強度を記録した画像なので、グレースケール画像です。
- OpenCV風に言うと、CV_8UC1です*1
- しかも、技術者や開発者ならともかく、Bayerの画像をもらって喜ぶユーザはまずいません。なので、これをRGBに変換する必要があります。
- OpenCVで言えば、cv::cvtColor という関数があります。これの引数の中に、ちゃんと宣言されています。(宣言はimgproc.hpp内)
- こいつらを使うことで、BayerパターンをRGBの3レイヤ画像、CV_8UC3に変換してくれます
- この変換の方法はそれこそ色々あるのですが、一番簡単な方法は、近傍の画素から補完する方法です。
<画像TBW>
- これでそこそこの性能が出ますし、画質に特化したのでなければこれでとりあえずRGB画像に復元できます。
- 当然エッジ近辺でモザイク状にノイズが出ますが、最近はセンサの目も細かくなったので、結構気にならないレベルで復元してくれたりします。
- ちなみにOpenCVの実装では、Edge AwareなBayer補完が実装されています。(詳細は知らん)
RGBからBayerへの逆変換 †
Bayerさんに敬意を表して †
- さて、このBayerパターンは実はBayerさんが考案されて、そこから名前を取ってます。
- Bryce E. Bayerさん、1929年8月15日-2012年11月13日。そう。実は昨年の暮れに亡くなられたのです。
- ご冥福をお祈りすると同時に、Bayerパターンについて何か書かなきゃ!と思って、この記事を書いています。
- あと、CVAdventCalendarの先陣を切らなきゃ!と思ってこの記事を書いています。
- そのBayerパターンに関して知ったことがあったので、書いてみました。
最後に †
- 12月1日が動きがなかったのは、ちょっと残念でしたが、Computer Vision Advenct Calendar 2013はここから頑張っていきましょう!
Computer Vision Advent Calendar 2012