画像処理装置、画像処理方法、撮像装置およびプログラム
【課題】多視点画像に対して色補間を行った後に、画像合成を行うと合成画像の鮮鋭性が低下してしまう。
【解決手段】多眼方式の撮像装置によって撮像された色補間前の多視点画像データを用いて合成画像を生成する画像処理装置であって、前記多視点画像データにおける画素値と画素位置の情報を取得する手段と、任意のフォーカス位置に応じた前記多視点画像データの各画素の画素位置の合成画像における画素位置を、前記撮像時の光学パラメータに基づいて決定する画素位置決定手段と、前記多視点画像データの各画素の色を導出する色導出手段と、前記決定された合成画像における画素位置及び前記導出された画素の色に対応する前記多視点画像データの画素値を用いて、前記合成画像の各画素の画素値を算出する画素値算出手段とを備えることを特徴とする。
【解決手段】多眼方式の撮像装置によって撮像された色補間前の多視点画像データを用いて合成画像を生成する画像処理装置であって、前記多視点画像データにおける画素値と画素位置の情報を取得する手段と、任意のフォーカス位置に応じた前記多視点画像データの各画素の画素位置の合成画像における画素位置を、前記撮像時の光学パラメータに基づいて決定する画素位置決定手段と、前記多視点画像データの各画素の色を導出する色導出手段と、前記決定された合成画像における画素位置及び前記導出された画素の色に対応する前記多視点画像データの画素値を用いて、前記合成画像の各画素の画素値を算出する画素値算出手段とを備えることを特徴とする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は多視点画像の合成処理に関する。
【背景技術】
【0002】
これまで、カメラのピント調整を誤って撮像した場合は、ピント調整をやり直して再撮像する必要があった。また、奥行きの異なる複数の被写体に対してそれぞれにピントが合った画像を得たい場合には、被写体毎にピントを合わせた撮像を複数回行う必要があった。
【0003】
近年、光学系に新たな光学素子を追加することで多視点からの画像を取得し、後で画像処理によってピント位置を調節すること(リフォーカス)が可能なライトフィールドフォトグラフィという技術が発展している。
【0004】
この技術を用いれば、撮像後にピント調整を行えるため、撮像時のピント調整の失敗を画像処理で補うことができるという利点がある。さらに、画像処理方法を変えることで画像中の任意の被写体にピントを合わせた複数の画像を一枚の撮像画像から得る事ができ、撮像回数を減らす事ができるという利点もある。
【0005】
ライトフィールドフォトグラフィでは、多視点の画像データから、空間中の複数の位置について、それぞれの位置を通過する光線の方向と強度(ライトフィールド、以下、「LF」という。)を計算する。そして、得られたLFの情報を用いて、仮想の光学系を通過して仮想のセンサに結像した場合の画像を計算する。このような仮想の光学系やセンサを適宜設定する事で、前述したリフォーカスも可能となる。LFを取得するための撮像装置としてはメインレンズの後ろにマイクロレンズアレイを置いたPlenoptic Cameraや、小型のカメラを並べたカメラアレイが知られている。いずれも被写体を異なる方向から撮像した多視点画像を一回の撮像で得る事ができる。ライトフィールドフォトグラフィとは、多視点の画像データから仮想の光学条件下での仮想センサの取得する画像を計算することと言い換えることもできる。なお、以下では、この仮想のセンサが取得する画像を計算する処理を「リフォーカス処理」と呼ぶこととする。リフォーカス処理としては、取得した多視点の画像データを仮想センサ上に射影変換し加算して平均化する方法が知られている(特許文献1)。
【0006】
このようなリフォーカス処理では、仮想センサ上の画素の値を、該画素の位置に対応する多視点画像の画素を用いて計算する。通常、仮想センサの1画素には、多視点画像の複数の画素が対応している。
【0007】
上記の特許文献1ではカラー画像のリフォーカス処理の方法が述べられていないものの、RGBプレーンを別々に処理する事でカラー画像におけるリフォーカス処理が実施できるものと容易に推察される。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】国際公開第2008/050904号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【0009】
多視点の画像データを取得するセンサが、ベイヤー配列などカラーフィルタアレイ(CFA)により色を取得するセンサである場合を考える。この場合、上記色プレーン別にリフォーカス処理を行うと、リフォーカス処理前にセンサ出力画素において欠落した色を補間する処理が必要となる。しかし、色補間処理を行うと、多視点画像の各々(以下、「サブ画像」という。)がぼけて、鮮鋭性が低下することになる。そして、鮮鋭性が低下したサブ画像を用いて画像合成を行う結果、合成画像においてもぼけが生じ、最終的に得られる画像の鮮鋭性も低下してしまうことになる。
【課題を解決するための手段】
【0010】
本発明に係る画像処理装置は、多眼方式の撮像装置によって撮像された色補間前の多視点画像データを用いて合成画像を生成する画像処理装置であって、前記多視点画像データにおける画素値と画素位置の情報を取得する手段と、任意のリフォーカス位置に応じた前記多視点画像データの各画素の画素位置の合成画像における画素位置を、前記撮像時の光学パラメータに基づいて決定する画素位置決定手段と、前記多視点画像データの各画素の色を導出する色導出手段と、前記決定された合成画像における画素位置及び前記導出された画素の色に対応する前記多視点画像データの画素値を用いて、前記合成画像の各画素の画素値を算出する画素値算出手段とを備えることを特徴とする。
【発明の効果】
【0011】
本発明によれば、色補間処理を行う前の多視点の画像データを用いて、鮮鋭な合成画像を得る事ができる。
【図面の簡単な説明】
【0012】
【図1】本実施例に係る多眼方式の撮像装置の主要な構成要素を示す図である。
【図2】画像処理部の内部構成の一例を示す図である。
【図3】通常の撮像光学系の構成を示す図である。
【図4】撮像部の構成の一例を示す図である。
【図5】撮像部の構成の一例を示す図である。
【図6】センサで取得される多視点画像の概念を示す図である。
【図7】画像合成部の内部構成を示す図である。
【図8】画像合成部における画像合成処理の流れを示すフローチャートである。
【図9】多視点画像データの各画素の合成画像における画素位置を算出する方法を説明する図である。
【図10】ベイヤー配列のカラーフィルタを示す図である。
【図11】バッファに格納された中間データの一例を示す図である。
【図12】実施例1に係る合成画像の画素値を算出する処理の詳細を示すフローチャートである。
【図13】(a)は実施例1に係る色補間した画素を用いずに画像合成を行った場合に得られる合成画像を示す図である。(b)は、予め色補間を行った画素を用いて得られる合成画像を示す図である。
【図14】実施例2に係る画素値生成部の内部構成を示す図である。
【図15】実施例2に係る合成画像の画素値を算出する処理の詳細を示すフローチャートである。
【図16】実施例3に係る合成画像における予め定められた一定領域の一例を示す図である。
【図17】実施例3に係る画素値生成部の内部構成を示す図である。
【図18】実施例3に係る合成画像の画素値を算出する処理の詳細を示すフローチャートである。
【図19】実施例4に係る所定のサブ画像中の欠落した画素と他のサブ画像における対応画素との関係を説明する図である。
【図20】実施例4に係る画像合成部の内部構成を示す図である。
【図21】実施例4に係る縮小画像生成処理の流れを示すフローチャートである。
【図22】更新される中間データの一例を示す図である。
【発明を実施するための形態】
【0013】
[実施例1]
図1は、本実施例に係る多眼方式の撮像装置(カメラ)の主要な構成要素を示す図である。
【0014】
撮像部101は、ズームレンズ、フォーカスレンズ、ぶれ補正レンズ、絞り、シャッター、光学ローパスフィルタ、iRカットフィルタ、カラーフィルタ、及び、CMOSやCCDといったセンサなどから構成され、被写体の光量を検知する。撮像部101では多視点の画像データを得ることができるが、詳細は後述する。なお、光学ローパスフィルタはカラーフィルタを採用する撮像系において偽色の原因である高周波パターンを低減するために設置されており、偽色の原因となる周波数付近の入力パターンの振幅を低減する。
【0015】
A/D変換部102は、検知された被写体の光量をデジタル値に変換する。
【0016】
画像処理部103は、変換されたデジタル値に対し各種の画像処理を行って、デジタル画像を生成する。画像処理部103の詳細については後述する。
【0017】
D/A変換部104は、生成されたデジタル画像に対しアナログ変換を行う。
【0018】
エンコーダ部105は、生成されたデジタル画像をJpegやMpegなどのファイルフォーマットに変換する処理を行う。
【0019】
メディアインターフェース106は、PCその他メディア(例えば、ハードディスク、メモリーカード、CFカード、SDカード、USBメモリ)につなぐためのインターフェースである。
【0020】
CPU107は、各部を統括的に制御するプロセッサである。
【0021】
ROM108は、CPU107で実行される制御プラグラム等を格納している。
【0022】
RAM109は、CPU107の主メモリ、ワークエリア等として機能する。
【0023】
撮像系制御部110は、フォーカスを合わせる、シャッターを開く、絞りを調節するなどの、CPU107からの指示に基づいた撮像系の制御を行う。
【0024】
操作部111は、ボタンやモードダイヤルなどが該当し、これらを介してユーザ指示が入力される。なお画像撮像後に合成画像を生成する際の任意のフォーカス位置(リフォーカス位置)の指示もこの操作部111を介してなされる。
【0025】
キャラクタジェネレーション部112は、文字やグラフィックなどを生成する。
【0026】
表示部113は、キャラクタジェネレーション部112やD/A変換部104から受け取った撮像画像や文字の表示を行う。表示部113には一般的に液晶ディスプレイが広く用いられる。また、タッチスクリーン機能を有していても良く、該タッチスクリーンを用いたユーザ指示を操作部111の入力として扱うことも可能である。
【0027】
次に、画像処理部103の詳細について説明する。
【0028】
図2は、画像処理部103の内部構成の一例を示す図である。画像処理部103は、画像合成部201、ノイズ低減処理部202、ホワイトバランス制御部203、エッジ強調部204、色変換部205、ガンマ処理部206で構成される。画像処理部103では、これら各部によって、A/D変換部102からの入力信号(デジタル画像)に対して、画質向上のための各画像処理が実行される。図2に示す構成では、他の処理に先んじて画像合成処理を行うように構成されているが、このような構成に限定されるものではない。例えば、ノイズ低減処理を行った後で画像合成処理を行っても良い。なお、画像合成処理は画像処理部103における各種画像処理の中の一つとして実施されることが好適であるがこれに限る必要はない。画像合成処理の詳細については後述する。
【0029】
また、本実施例において画像処理部103は、撮像装置内の一構成要素として説明しているが、この画像処理部103の機能をPC等の外部装置で実現してもよい。すなわち、本実施例における画像処理部103は、撮像装置の一機能としても、又は独立した画像処理装置としても実現し得るものである。
【0030】
<リフォーカスの原理>
図3は、通常の撮像光学系の構成を示す図であり、ピントがずれてしまった状態を表している。なお、図3では、IRカットフィルタ、ズームレンズ、絞りなどの構成については省略してある。また、レンズ構成についても、メインレンズ303でレンズ群を代表して表している。
【0031】
301は物点であり、物点301からの光はメインレンズ303で集光され、センサ302の一部領域305に到達している。メインレンズ303で集光された光が一点に結像する前にセンサ302に到達しているので、センサ302の一部領域305では、物点301の像が広がって記録されてしまい、撮像画像がぼけてしまう。鮮鋭性の高い画像を得たい場合には、ピント位置を調整し、物点301がセンサ302上の1点に結像されるようにして再度撮像を行う必要がある。
【0032】
図4は、撮像部101の構成の一例を示す図である。図4において、物点401からの光はメインレンズ403により集光されるが、結像する前にマイクロレンズアレイ406を通過してセンサ405により記録される。1つのマイクロレンズにより生成されるセンサ上の光学像は物点401を異なる方向から観察した画像となるため、センサ405では多視点の画像が一枚の画像データとして記録される。図6は、センサ405で取得される多視点画像の概念を示す図である。センサ405上の画素412の画素値は光線411の強度に応じた値が記録され、センサ405の他の画素(位置)でも光線の強度に応じた値が記録される。この光線群を延長して仮想センサ407、408において光強度を平均すると、両仮想センサに記録される画像を計算により求めることができる。仮想センサ407での画像を計算すると、物点401の光は広がり、ちょうど図3に示したようなピントがずれた状態の画像が得られる。同様に仮想センサ408での画像を計算すると、物点401から出た光が一点に集まり、ピントが合った状態の画像が得られる。
【0033】
上記のような撮像部を備えた多眼方式の撮像装置によって複数の異なる角度から被写体を撮像した多視点画像を得て、該多視点画像から得られる光線情報を元に仮想のセンサが受光する光を計算する処理を行う。その際の仮想センサの位置を調整して計算することが、ピント位置の調整、すなわち、リフォーカスに相当する。
【0034】
図5は、撮像部101の構成の別の一例を示す図である。図5において撮像部101は、複数の撮像ユニット505により構成される。撮像ユニット505は、センサ510とレンズ511とで構成される。504は光軸である。物点501からの光は、撮像ユニット505内のセンサ510により記録され、例えば、センサ510上の画素502は、光線503の強度を記録している。物体側に仮想センサ508、509を置いた場合を考え、光線群を仮想センサ508、509の方向へ延長し、仮想センサ508、509において光線強度を平均するものとする。すると、仮想センサ508において計算される画像は、物点501にピントがあっていないぼけた画像となり、仮想センサ509において計算される画像は、物点501にピントが合った画像となる。
【0035】
以上が、ピント位置調整した画像を撮像後に計算によって取得する、リフォーカスの原理である。
【0036】
<画像合成処理>
次に、画像処理部103内の画像合成部201の詳細について説明する。
【0037】
図7は、本実施例に係る画像合成部201の内部構成を示す図である。画像合成部201は、画素位置決定部701、色導出部702、画素値算出部703および取得部710からなり、さらに画素値算出部703は、バッファ704と画素値生成部705とで構成される。画像合成部201では、これら各部によって、AD変換部102から順次送られてくる多視点画像の画像データ(デジタル値)から合成画像の画素値の算出を行い、算出が完了した画素値から順にノイズ低減処理部202へ出力する処理を行う。以下、詳しく説明する。
【0038】
図8は、画像合成部201における画像合成処理の流れを示すフローチャートである。なお、説明を簡単にするため、A/D変換部102から入力されるデジタル値の画像データ(入力画像データ)を1次元として説明する。
【0039】
ステップ801において、画像合成部201の取得部710は、多視点画像データにおける画素値と画素位置、さらに光学パラメータおよび合成パラメータを、バス(不図示)を介して取得する。ここで、光学パラメータとは、撮像時における物理的に定まった各種のパラメータであって、例えば、後述のl、x、σrealなどの値を指す。また、合成パラメータとは、画像処理に関わる適宜設定変更が可能な各種のパラメータであって、例えば、ピントを合わせたい被写体までの距離であるリフォーカス距離や実施例2における重み係数(C1〜C9)などの値を指す。
【0040】
ステップ802において、画像合成部201の画素位置決定部701は、取得した多視点画像データの各画素の合成画像における画素位置を決定する。図9はこの決定方法を説明する図である。ここで、センサ901上のセンサ画素領域903に対応する画素が画像合成部201に入力されたと仮定する。この場合、画素位置決定部701は、センサ画素領域903に対応する、仮想センサ902上の投影領域904を計算して決定することになる。なお、図9において、lは隣り合うマイクロレンズ(この図では905及び907)のそれぞれの中心(光学中心)間の距離を表す。xは入力画素の位置(この図では、マイクロレンズ907の光学中心を通る光軸908とセンサ画素領域903の中心との距離)を表す。X1及びX2は計算によって求められる仮想センサ902上の位置であって、算出されたX1とX2との間の領域が投影領域904となる。図9に示す通り、センサ画素領域903を、マイクロレンズ905の光学中心を基準として仮想センサ902に投影した投影領域904が、入力された多視点画像データの画素の合成画像における位置となる。なお、906は、マイクロレンズ905の光学中心を通る光軸である。そして、σrealはセンサ901と各マイクロレンズとの距離であり、σvirtualは各マイクロレンズと仮想センサ902との距離である。図9から明らかなように、投影領域904はセンサ画素領域903に対して拡大されており、その拡大率はσvirtual/σreal倍である。なお、σvirtualは、ユーザによって指定される、カメラからピントを合わせたい被写体までの距離(リフォーカス距離)に応じて設定される。リフォーカス距離σfocusから仮想センサ位置を導くには、図4に示す構成の撮像部の場合、メインレンズ403の焦点距離をfmainとして次の式の関係からσvirtualを求める。
(1/σfocus)+(1/σvirtual)=(1/fmain) ・・・式(1)
【0041】
ここで、リフォーカス距離σfocusはメインレンズ403の中心から物点401までの光軸404に沿った距離である。
【0042】
また、図5に示す構成の撮像部の場合、上記式(1)においてfmain=無限大に設定し、σvirtual=−σfocusとする。上記式(1)は、実際の複雑なレンズ構成を簡略的に表現した式であるため、より精度を求める場合は、ユーザによって指定されたリフォーカス位置に応じて予め設定される。例えば、予め光学シミュレーションによって、リフォーカス位置と、かかる位置の被写体が鮮明に結像するような仮想センサの位置との対応関係を求めてROM108等に保持しておき、これを画像合成部201が適宜参照することにより設定される。画素位置決定部701は、以下の式(2)及び式(3)に従って、投影領域904を画定するX1及びX2の位置を算出する。
X1 = l + (σvirtual/σreal)*(x+s/2-l) ・・・式(2)
X2 = l + (σvirtual/σreal)*(x-s/2-l) ・・・式(3)
【0043】
上記式(2)及び式(3)において、sはセンサ画素領域903のサイズである。算出されたX1及びX2の情報は画素値算出部703へ出力される。
【0044】
このようにして、入力画像データである多視点画像データの各画素の画素位置と、任意のフォーカス位置に応じた合成画像の画素位置とが対応付けられる。図8のフローチャートの説明に戻る。
【0045】
ステップ803において、色導出部702は、入力された多視点画像データの各画素の色を導出する。色の種別としてはカラーフィルタアレイのフィルタ分光感度に応じてRGBや、赤外+RGB、CMYなどがある。ここでは、RGBの三色の場合を考える。色導出部702は、入力画素位置と色の対応を示すテーブルを参照して、入力画素の色を導出する。入力画素位置と色の対応を示すテーブルは、例えば、解像度が600万画素の場合、縦2000pxl×横3000pxlのテーブルであり、ROM108等に保持しておけばよい。さらに、撮像部101が、ベイヤー配列のカラーフィルタアレイを具備するなど、入力画素位置と色の関係が数式的に明らかな場合は、入力画素位置から所定の演算により色を求めても良い。図10は、ベイヤー配列のカラーフィルタを示す図であり、G(Green)のフィルタがR(Red)及びB(Blue)の2倍使用されているのが分かる。導出された色の情報は画素値算出部703に出力される。
【0046】
ステップ804において、画素値算出部703は、バッファ704内のデータ(中間データ)を更新する。具体的には、決定された合成画像における画素位置と導出された色に対応する、入力された多視点画像データの画素値をバッファ704に格納する。図11は、バッファ704に格納された中間データの一例を示している。図11において、1101〜1103は、本実施例における各インデックスを示しており、インデックス毎に1又は複数の画素値が保持されている。本ステップでは、画素位置決定部701から受け取った合成画像の画素位置と色導出部702から受け取った色の情報に従って入力画素値が追加・格納され、中間データが更新される。なお、図11の例では、合成画像の画素位置が整数で表記されているが、上記式(2)、(3)で算出されるX1、X2は一般に非整数である。そこで、合成画像の画素位置を特定するための数値として非整数を許容し、小数部分を重みとして合成画像の画素値の計算に用いてもよい。例えば、合成画像の画素位置を示す座標(10,10.4)に対して画素値20、同じく座標(10,10.1)に対して画素値10が割り当てられている場合を考える。この場合、合成画像の画素位置を示す座標(10,10)には、(0.1*20+0.4*10)/(0.1+0.4)にといった重み付けの計算により画素値12を割り当てる、といった具合である。
【0047】
ステップ805において、画素値算出部703は、所定のインデックスについて中間データの更新が完了したかどうか、すなわち、いずれかのインデックスに画素値がすべて揃ったかどうかを判定する。例えば、図11のインデックス1101(座標(10,10)の画素位置で、かつ、色がRの部分)において2つの画素値(24及び26)が格納されると、中間データの更新が完了と判定される。この判定は、例えば、格納されるはずの画素値の数をインデックス毎に予め計算しておき、格納された画素値の数がその数に達したかどうかにより行うことができる。
【0048】
ここで、インデックス毎の格納されるはずの画素値の数は、以下のようにして予め求めておく。まず、全ての画素値が1となるようなダミーの撮像画像を用意し、これを入力画像データとしてステップ802〜ステップ804の処理を行う。そして、全ての画素について処理を行った後、格納された画素値の数をインデックス毎にカウントすれば良い。
【0049】
このような判定処理により、いずれかのインデックスについて、追加されるはずの画素値がすべて揃ったと判定された場合にはステップ806に進む。一方、いずれのインデックスについても画素値が揃っていないと判定された場合にはステップ801に戻り、次の画素についてステップ801〜ステップ804の処理を繰り返す。
【0050】
ステップ806において、画素値生成部705は、更新が完了したインデックスの中間データ(多視点画像の画素値)をバッファ704から取得し、これらの平均値を算出して合成画像の画素値として出力する。図12は、本ステップの処理の詳細を示すフローチャートである。ここでは、図11の1101が示すインデックスの更新が完了した場合を例に説明する。
【0051】
ステップ1201において、画素値生成部705は、合成に用いられる画素値の数をバスから取得する。1101のインデックスの場合、合成に用いられる画素値の数として、“2”が取得される。
【0052】
ステップ1202において、画素値生成部705は、合成に用いられる多視点画像の画素値をバッファ704から取得する。ここでは、“24”と“26”が取得される。
【0053】
ステップ1202において、画素値生成部705は、合成に用いられる多視点画像の画素値の総和を合成に用いられる画素値の数で除算し、平均値を求める。ここでは、(24+26)÷2=“25”が算出される。算出された平均値は、当該インデックス(ここでは、画素位置:座標(10,10)、色:R)に対応する合成画像の画素値として出力される。
【0054】
ステップ807において、画像合成部201は、多視点画像データのすべての画素に対して、上述の処理が完了したかどうかを判定する。未処理の入力画素がなければ本処理を終える。一方、未処理の入力画素があればステップ801に戻り、ステップ801〜ステップ806を繰り返す。
【0055】
以上の処理により、任意のフォーカス位置における合成画像の画素値が順次計算され、ノイズ低減処理部へ出力される。
【0056】
図13の(a)は、本実施例に係る色補間した画素を用いずに画像合成を行った場合に得られる合成画像を示し、同(b)は、予め色補間を行った画素を用いて得られる合成画像を示している。図13において、1301は実際のセンサを示し、1302は仮想センサを示している。また、同図において“○”及び“●”は画素(例えばGチャネル)であり、“○”は画素値が255、“●”は画素値が0であることを意味している。そして、図13の(a)のセンサ1301上の“□”は画素が欠落していることを示している。そして、図13の(b)における “◇”及び“◆”は、上記欠落した画素が色補間されていることを示している。図13の(a)及び(b)において、仮想センサ1302上に形成される合成画像を比較すると、図13の(a)の方は合成画像の画素値が(255,0,255,0)であるのに対し、図13の(b)では(255,128,128,0)となっている。これは、本実施例を適用した図13の(a)における合成画像の方が図13の(b)の合成画像よりも周波数が高い(つまり、より鮮鋭である)ことを示している。
【0057】
以上のとおり、本実施例に係る発明によれば、色補間前の多視点画像データを用いて画像の合成を行うので、鮮鋭性の高い合成画像を得ることができる。
【0058】
[実施例2]
実施例1では、順次取得した入力画素に対して、算出された合成画像の画素位置と導出された色が相互に同一である範囲をインデックスの単位として合成画像の画素値の算出を行っていた。次に、合成画像の画素位置が同一の範囲をインデックスの単位とする態様について、実施例2として説明する。なお、実施例1との違いは、インデックスの1単位の範囲だけであるので、その余の共通する部分(図8のフローチャートのステップ801〜804、807)については説明を簡略化ないしは省略し、ここでは差異点を中心に説明することとする。
【0059】
実施例1では、図8のフローチャートのステップ805において、画素位置と色が共に同じ範囲の画素値が揃った段階で直ちに次のステップ806に進み、画素値生成部705での平均化処理に移行していた。本実施例では、同一の画素位置についてのすべての色(例えば、画素位置(10,10)のRGBのすべて)の画素値が揃うのを待って、画素値生成部705での平均化処理に移行する。
【0060】
具体的には以下のとおりである。
【0061】
ステップ805において、画素値算出部703は、上述した単位のいずれかのインデックスにすべての画素値が揃ったかどうかを判定する。本実施例の場合、例えば、図11の1101〜1103(座標(10,10)の位置におけるRGBの全部)の範囲内のすべての画素値が揃うと、中間データの更新が完了と判定されることになる。いずれかのインデックスについて、追加されるはずの画素値がすべて揃ったと判定された場合にはステップ806に進む。一方、いずれのインデックスについても追加されるはずの画素値が揃っていないと判定された場合にはステップ801に戻る。
【0062】
ステップ806において、画素値生成部705は、まず、実施例1と同様に色毎の画素値の平均値を算出する。そして、算出されたそれぞれの平均値(Rm,Gm,Bm) に対して、以下の式(4)、式(5)、式(6)を用いて加重平均を行い、合成画像の画素値(Rm’,Gm’,Bm’)を生成する。
Rm’ = C1*Rm + C2*Gm + C3*Bm ・・・式(4)
Gm’ = C4*Rm + C5*Gm + C6*Bm ・・・式(5)
Bm’ = C7*Rm + C8*Gm + C9*Bm ・・・式(6)
【0063】
なお、C1〜C9は重み係数であり、例えば、C1、C5、C9については0.8、それ以外の重み係数については0.1などが設定される。色のバランスを過度に変更したくない場合はC2、C3、C4、C6、C7、C8の値を小さくすればよい。また、例えばRm’においてC1=0.7、C2=0.2、C3=0.1のように、他の色よりも多く配されるGについての重み係数を相対的に他の重み係数(この場合C3)よりも大きくしてもよい。さらに、モノクロ画像の場合には、すべての重み係数を等しく(C1〜C9のすべてを0.33)すればよい。これらC1〜C9の重み係数は、合成パラメータとしてROM108に保持され、計算時に適宜読み出される。
【0064】
図14は、本実施例に係る画素値生成部705の内部構成を示す図である。本実施例の画素値生成部705においては、RGBのそれぞれについて別個に画素値の平均が算出され、算出された各平均値にC1〜C9の各重み係数が乗算されて、合成画像におけるRGBの画素値が算出される。
【0065】
図15は、本実施例に係るステップ806の処理の詳細を示すフローチャートである。ここでは、図11の1104で示すインデックスの更新が完了した場合であって、重み係数としてC1、C5、C9については0.8、それ以外は0.1が設定された場合を例に説明する。
【0066】
ステップ1501において、画素値生成部705は、合成に用いられる画素値の数をバスから取得する。ここでは、合成画像の画素位置が座標(10,10)についての画素値の数なので、“5”が取得される。
【0067】
ステップ1502において、画素値生成部705は、合成に用いられる多視点画像の画素値をバッファ704から取得する。ここでは、Rについて“24”と“26”、Gについて“32”と“34”、Bについて“22”の各画素値が取得される。
【0068】
ステップ1502において、画素値生成部705は、平均値(Rm、Gm、Bm)を色毎に計算し、その後、上記式(4)〜式(6)に従って加重平均を行い、Rm’、Gm’、Bm’を計算する。上記の例の場合、以下のような値が、合成画像の画素値としてそれぞれ算出され、出力される。
Rm’=(0.8×25)+(0.1×33)+(0.1×22)=25.5
Gm’=(0.1×25)+(0.8×33)+(0.1×22)=31.1
Bm’=(0.1×25)+(0.1×33)+(0.8×22)=23.4
【0069】
このように本実施例によれば、合成画像の1つの画素値の計算に、より多くの多視点画像データの画素値を用いることで、画像のノイズをさらに低減することができる。
【0070】
[実施例3]
合成画像の端の領域では、多視点画像の画素値が割り当てられていない画素が発生し得る。例えば、図13の(a)において、仮想センサ1302上の△の画素位置では画素値が割り当てられていない。これは、図11のテーブルでいえば、合成画像の画素位置と色で指定されるインデックスに対して、画素値が1つも割り当てられていないことを意味する。そこで、次に、合成画像において欠落した画素の発生を防ぐべく、合成画像の画素値の補間を行う態様について、実施例3として説明する。なお、実施例1と共通する部分(図8のフローチャートのステップ801〜804、807)については説明を簡略化ないしは省略し、ここでは差異点を中心に説明することとする。
【0071】
実施例1では、図8のフローチャートのステップ805において、画素位置と色が共に同じ範囲の画素値が揃った段階で直ちに次のステップ806に進み、画素値生成部705での平均化処理に移行していた。本実施例では、合成画像における予め定められた一定の領域に対応する画素値が全ての色について揃うのを待って、ステップ806に移行する。
【0072】
具体的には以下のとおりである。
【0073】
ステップ805において、画素値算出部703は、合成画像における予め定められた一定の領域に対応する、格納されるべき画素値が全て揃ったかどうかを判定する。格納されるべき画素値がすべて揃ったと判定された場合にはステップ806に進む。一方、揃っていないと判定された場合にはステップ801に戻る。
【0074】
ステップ806において、画素値生成部705は、合成画像の上記一定領域に対応する格納されたすべての画素値をバッファ704から取得し、当該一定の領域内のすべての画素位置において画素値の平均値を計算して、出力する。この際、画素値を有しない欠落画素があればその画素値を補間演算により求めて、当該欠落画素の画素値とする。
【0075】
図16は、ある色についての、合成画像における予め定められた一定領域の一例を示す図である。図16において、予め定められた一定領域1600の中の空白部1601は画素値が存在しない欠落画素を示している。何らかの値が存在するその他の部分は画素値が存在する画素であって、多視点画像の画素が少なくとも1つ割り当てられていることを示している。この場合、欠落画素1601の画素値は、周囲の画素値を用いた補間演算によって求められる。補間演算の方法としては、例えば、欠落画素の周囲3x3の領域にある画素値の平均値を求めたり、あるいは補間に用いる画素の領域をさらに広げ、欠落画素からの距離に応じて重み付けした加重平均を取る方法などがある。また、実施例1で説明したように非整数で特定される画素位置を考慮して画素値を補間してもよい。
【0076】
図17は、本実施例に係る画素値生成部705の内部構成を示す図である。本実施例の画素値生成部705は図17に示す各処理部を備えることにより上述の処理を行う。図18は、本実施例に係るステップ806の処理の詳細を示すフローチャートである。
【0077】
ステップ1801において、画素値生成部705は、合成画像の予め定められた一定領域についての、合成に用いられる画素の数を、RGB毎にバスから取得する。
【0078】
ステップ1802において、画素値生成部705は、合成画像の予め定められた一定領域についての、多視点画像の画素値を、RGB毎にバッファ704から取得する。
【0079】
ステップ1803において、画素値生成部705は、ステップ1801で取得した合成に用いられる画素の数が“0”であるかどうかを、色別に判定する。“0”であると判定された場合にはステップ1805に進む。一方、“0”でないと判定された場合には、ステップ1804に進む。
【0080】
ステップ1804において、画素値生成部705は、実施例1と同様、対象となる画素値の平均値を計算して出力する。
【0081】
ステップ1805において、画素値生成部705は、合成画像中の欠落画素について、当該欠落画素の近傍の画素値を用いて上述の補間処理を行って画素値を求め、出力する。
【0082】
ステップ1806において、画素値生成部705は、未処理の色があるかどうかを判定する。未処理の色があると判定された場合にはステップ1803に戻り、当該未処理の色に対して、ステップ1803〜ステップ1805の処理を繰り返す。一方、すべての色についての処理が完了したと判定された場合には、本処理を終える。
【0083】
このように本実施例によれば、合成画像の端の領域において生じ得る欠落画素の発生を防ぐことが出来る。
【0084】
[実施例4]
次に、縮小画像の生成を行う態様について、実施例4として説明する。なお、他の実施例と共通する部分については説明を簡略化ないしは省略し、ここでは差異点を中心に説明することとする。
【0085】
図6に示した通り、多眼方式の撮像装置で撮像された多視点画像は微小なサブ画像から構成される。そこで、本実施例では、サブ画像の1枚を縮小画像として利用することにする。
【0086】
ここで、縮小画像として利用されるサブ画像は色補間前の状態である。そのため適切に色補間を施す必要がある一方で、隣接の画素から色補間を行うと画像がぼけてしまうという問題がある。そこで、本実施例では、縮小画像となるサブ画像中の欠落した画素の値を、他のサブ画像における対応画素の値を用いて色補間を行う。
【0087】
図19は、所定のサブ画像中の欠落した画素と、他のサブ画像における当該欠落画素に対応する画素との関係を説明する図である。いま、センサ1903上の位置PAの画素(マイクロレンズ1900に対応するサブ画像における画素)について仮にREDが欠落しているとする。そして、この位置PAの画素の、仮想センサ1902上での位置をVAとする。この場合において、隣のサブ画像(マイクロレンズ1904に対応するサブ画像)において位置VAに対応する画素の位置PA1を求める。
【0088】
つまり、位置PAの画素も位置PA1の画素も、被写体上の同一の位置に対応するため、もし位置PAがREDの画素である場合、位置PAの欠落したREDの画素値を、位置PA1の画素値で置き換えることで画像をぼかす事なく色補間が行えることになる。
【0089】
さらに、本実施例では、位置PAに対応する他のサブ画像での画素は複数あるため、位置PAに対応する画素をリストアップし、それらリストアップされた対応画素の中から欠落した色をより適切に導出するようにしている。
【0090】
なお、実施例1では画素の大きさを考慮したが、本実施例における位置PAは1画素の占める範囲の中央の位置を意味し、画素の大きさは特に考慮していない。
【0091】
さらに、以下で述べる縮小画像生成処理は、画像処理部103における各種画像処理の中の一つとして実施されることが好適であるがこれに限る必要はない。
【0092】
図20は、本実施例に係る画像合成部201の内部構成を示す図である。画像合成部201は、色導出部702、画素値算出部703および取得部710からなり、さらに本実施例に係る画素値算出部703は、対応位置決定部2001、バッファ704、及び画素値生成部705とで構成される。
【0093】
図21は、本実施例における縮小画像生成処理の流れを示すフローチャートである。なお、実施例1と共通する部分については説明を簡略化ないしは省略している。
【0094】
ステップ2101において、画像合成部201の取得部710は、多視点画像データにおける画素値と画素位置、さらに光学パラメータおよび合成パラメータを、バスを介して取得する。
【0095】
ステップ2102において、画像合成部201は、取得した画素が現像範囲内であるかどうかを判定する。例えば、図6に示す9個のサブ画像で構成される多視点画像において、中央のサブ画像を縮小画像として利用する場合であれば、現像範囲は当該中央のサブ画像の占める範囲となる。取得した画素が中央のサブ画像に属していると判定された場合は、ステップ2103に進む。一方、取得した画素が中央のサブ画像に属さないと判定された場合は、色補間を行うことなく本処理を終える。
【0096】
ステップ2103において、色導出部702は、入力された多視点画像データの各画素の色を導出する。
【0097】
ステップ2104において、対応位置決定部2001は、取得した画素について、他のサブ画像での対応位置を計算により求める。前述の図19において、中央のサブ画像に属する画素の位置がPA、その隣のサブ画像における位置PAに対応する位置をPA1とする。そして、xを位置PAの座標、yを対応位置PA1の座標、zを位置PAの仮想センサ1902上での位置VAの座標とする。なお、1901はマイクロレンズ1900の光学中心を通る光軸、1905はマイクロレンズ1904の光学中心を通る光軸を示している。すると、zとxの間には次の式(7)の関係が成り立つ。
z = (σvirtual/σreal)*x ・・・式(7)
さらに、zとyの間には次の式(8)の関係が成り立つ。
z = (σvirtual/σreal)*(y-l)+l ・・・式(8)
ここで、lは隣り合うマイクロレンズ(図19では1900及び1904)のそれぞれの中心(光学中心)間の距離を表す。
そして、式(7)及び式(8)からzを消去すると、以下の式(9)のようになる。
y = l + x - (σreal/σvirtual)*l ・・・式(9)
このようにして、xとyの関係式が得られる。
上記式(9)を一般化して、n個隣のサブ画像における対応点の座標ynを式で表すと、式(10)のようになる。
yn = n*l + x - (σreal/σvirtual)*n*l ・・・式(10)
【0098】
対応位置決定部2001は、上記式(10)を用いて、取得した画素位置PAの他のサブ画像における対応位置を算出する。算出された対応位置はバッファ704に送られ、その際、対応位置の色の種別と画素値も併せて送られる。
【0099】
ステップ2105において、画素値算出部703は、バッファ704内のデータ(中間データ)を更新する。図22は、本ステップで更新される中間データの一例を示す図である。ここでの中間データは、現在処理中の画素に対応する、画素位置、色の種別、及び画素値からなる。バッファ704はこのような中間データを保持し、対応位置決定部2001からの新たな対応位置のデータを受け取って、逐次データを更新する。
【0100】
ステップ2106において、画像合成部201は、ステップ2101で取得した画素に対する他の全てのサブ画像における対応位置が算出されたかどうかを判定する。他の全てのサブ画像における対応位置が算出されていれば、ステップ2107に進む。一方、他の全てのサブ画像における対応位置が算出されていなければ、ステップ2104に戻り、対応位置を求める。
【0101】
ステップ2107において、画素値生成部705は、欠落した色の画素値を生成する。例えば、現在処理中の画素の色の種別がBLUEであるとすると、REDとGREENが欠落した色となる。ここで、中間データの更新完了時点での状態が、前述の図22の状態であったとする。この場合、画素値生成部705は、図22においてREDである画素値、GREENである画素値の平均をそれぞれ算出し、欠落した色の画素値を決定する。すなわち、図22の場合に算出される画素値は、REDが(24+26+25)/3=25、GREENが(32+34)/2=33となる。算出されたRED及びGREENの画素値は、欠落していなかったBLUEの画素値と共に、縮小画像の画素値として出力される。
【0102】
ステップ2108において、画像合成部201は、多視点画像データのすべての画素に対して、上述の処理が完了したかどうかを判定する。未処理の入力画素がなければ本処理を終える。一方、未処理の入力画素があればステップ2101に戻り、ステップ2101〜ステップ2107を繰り返す。
【0103】
以上の処理により、縮小画像において欠落した色の画素が他のサブ画像を参照して決定れ、鮮明な縮小画像の画像データが生成される。
【0104】
(その他の実施形態)
また、本発明の目的は、以下の処理を実行することによっても達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出す処理である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【技術分野】
【0001】
本発明は多視点画像の合成処理に関する。
【背景技術】
【0002】
これまで、カメラのピント調整を誤って撮像した場合は、ピント調整をやり直して再撮像する必要があった。また、奥行きの異なる複数の被写体に対してそれぞれにピントが合った画像を得たい場合には、被写体毎にピントを合わせた撮像を複数回行う必要があった。
【0003】
近年、光学系に新たな光学素子を追加することで多視点からの画像を取得し、後で画像処理によってピント位置を調節すること(リフォーカス)が可能なライトフィールドフォトグラフィという技術が発展している。
【0004】
この技術を用いれば、撮像後にピント調整を行えるため、撮像時のピント調整の失敗を画像処理で補うことができるという利点がある。さらに、画像処理方法を変えることで画像中の任意の被写体にピントを合わせた複数の画像を一枚の撮像画像から得る事ができ、撮像回数を減らす事ができるという利点もある。
【0005】
ライトフィールドフォトグラフィでは、多視点の画像データから、空間中の複数の位置について、それぞれの位置を通過する光線の方向と強度(ライトフィールド、以下、「LF」という。)を計算する。そして、得られたLFの情報を用いて、仮想の光学系を通過して仮想のセンサに結像した場合の画像を計算する。このような仮想の光学系やセンサを適宜設定する事で、前述したリフォーカスも可能となる。LFを取得するための撮像装置としてはメインレンズの後ろにマイクロレンズアレイを置いたPlenoptic Cameraや、小型のカメラを並べたカメラアレイが知られている。いずれも被写体を異なる方向から撮像した多視点画像を一回の撮像で得る事ができる。ライトフィールドフォトグラフィとは、多視点の画像データから仮想の光学条件下での仮想センサの取得する画像を計算することと言い換えることもできる。なお、以下では、この仮想のセンサが取得する画像を計算する処理を「リフォーカス処理」と呼ぶこととする。リフォーカス処理としては、取得した多視点の画像データを仮想センサ上に射影変換し加算して平均化する方法が知られている(特許文献1)。
【0006】
このようなリフォーカス処理では、仮想センサ上の画素の値を、該画素の位置に対応する多視点画像の画素を用いて計算する。通常、仮想センサの1画素には、多視点画像の複数の画素が対応している。
【0007】
上記の特許文献1ではカラー画像のリフォーカス処理の方法が述べられていないものの、RGBプレーンを別々に処理する事でカラー画像におけるリフォーカス処理が実施できるものと容易に推察される。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】国際公開第2008/050904号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【0009】
多視点の画像データを取得するセンサが、ベイヤー配列などカラーフィルタアレイ(CFA)により色を取得するセンサである場合を考える。この場合、上記色プレーン別にリフォーカス処理を行うと、リフォーカス処理前にセンサ出力画素において欠落した色を補間する処理が必要となる。しかし、色補間処理を行うと、多視点画像の各々(以下、「サブ画像」という。)がぼけて、鮮鋭性が低下することになる。そして、鮮鋭性が低下したサブ画像を用いて画像合成を行う結果、合成画像においてもぼけが生じ、最終的に得られる画像の鮮鋭性も低下してしまうことになる。
【課題を解決するための手段】
【0010】
本発明に係る画像処理装置は、多眼方式の撮像装置によって撮像された色補間前の多視点画像データを用いて合成画像を生成する画像処理装置であって、前記多視点画像データにおける画素値と画素位置の情報を取得する手段と、任意のリフォーカス位置に応じた前記多視点画像データの各画素の画素位置の合成画像における画素位置を、前記撮像時の光学パラメータに基づいて決定する画素位置決定手段と、前記多視点画像データの各画素の色を導出する色導出手段と、前記決定された合成画像における画素位置及び前記導出された画素の色に対応する前記多視点画像データの画素値を用いて、前記合成画像の各画素の画素値を算出する画素値算出手段とを備えることを特徴とする。
【発明の効果】
【0011】
本発明によれば、色補間処理を行う前の多視点の画像データを用いて、鮮鋭な合成画像を得る事ができる。
【図面の簡単な説明】
【0012】
【図1】本実施例に係る多眼方式の撮像装置の主要な構成要素を示す図である。
【図2】画像処理部の内部構成の一例を示す図である。
【図3】通常の撮像光学系の構成を示す図である。
【図4】撮像部の構成の一例を示す図である。
【図5】撮像部の構成の一例を示す図である。
【図6】センサで取得される多視点画像の概念を示す図である。
【図7】画像合成部の内部構成を示す図である。
【図8】画像合成部における画像合成処理の流れを示すフローチャートである。
【図9】多視点画像データの各画素の合成画像における画素位置を算出する方法を説明する図である。
【図10】ベイヤー配列のカラーフィルタを示す図である。
【図11】バッファに格納された中間データの一例を示す図である。
【図12】実施例1に係る合成画像の画素値を算出する処理の詳細を示すフローチャートである。
【図13】(a)は実施例1に係る色補間した画素を用いずに画像合成を行った場合に得られる合成画像を示す図である。(b)は、予め色補間を行った画素を用いて得られる合成画像を示す図である。
【図14】実施例2に係る画素値生成部の内部構成を示す図である。
【図15】実施例2に係る合成画像の画素値を算出する処理の詳細を示すフローチャートである。
【図16】実施例3に係る合成画像における予め定められた一定領域の一例を示す図である。
【図17】実施例3に係る画素値生成部の内部構成を示す図である。
【図18】実施例3に係る合成画像の画素値を算出する処理の詳細を示すフローチャートである。
【図19】実施例4に係る所定のサブ画像中の欠落した画素と他のサブ画像における対応画素との関係を説明する図である。
【図20】実施例4に係る画像合成部の内部構成を示す図である。
【図21】実施例4に係る縮小画像生成処理の流れを示すフローチャートである。
【図22】更新される中間データの一例を示す図である。
【発明を実施するための形態】
【0013】
[実施例1]
図1は、本実施例に係る多眼方式の撮像装置(カメラ)の主要な構成要素を示す図である。
【0014】
撮像部101は、ズームレンズ、フォーカスレンズ、ぶれ補正レンズ、絞り、シャッター、光学ローパスフィルタ、iRカットフィルタ、カラーフィルタ、及び、CMOSやCCDといったセンサなどから構成され、被写体の光量を検知する。撮像部101では多視点の画像データを得ることができるが、詳細は後述する。なお、光学ローパスフィルタはカラーフィルタを採用する撮像系において偽色の原因である高周波パターンを低減するために設置されており、偽色の原因となる周波数付近の入力パターンの振幅を低減する。
【0015】
A/D変換部102は、検知された被写体の光量をデジタル値に変換する。
【0016】
画像処理部103は、変換されたデジタル値に対し各種の画像処理を行って、デジタル画像を生成する。画像処理部103の詳細については後述する。
【0017】
D/A変換部104は、生成されたデジタル画像に対しアナログ変換を行う。
【0018】
エンコーダ部105は、生成されたデジタル画像をJpegやMpegなどのファイルフォーマットに変換する処理を行う。
【0019】
メディアインターフェース106は、PCその他メディア(例えば、ハードディスク、メモリーカード、CFカード、SDカード、USBメモリ)につなぐためのインターフェースである。
【0020】
CPU107は、各部を統括的に制御するプロセッサである。
【0021】
ROM108は、CPU107で実行される制御プラグラム等を格納している。
【0022】
RAM109は、CPU107の主メモリ、ワークエリア等として機能する。
【0023】
撮像系制御部110は、フォーカスを合わせる、シャッターを開く、絞りを調節するなどの、CPU107からの指示に基づいた撮像系の制御を行う。
【0024】
操作部111は、ボタンやモードダイヤルなどが該当し、これらを介してユーザ指示が入力される。なお画像撮像後に合成画像を生成する際の任意のフォーカス位置(リフォーカス位置)の指示もこの操作部111を介してなされる。
【0025】
キャラクタジェネレーション部112は、文字やグラフィックなどを生成する。
【0026】
表示部113は、キャラクタジェネレーション部112やD/A変換部104から受け取った撮像画像や文字の表示を行う。表示部113には一般的に液晶ディスプレイが広く用いられる。また、タッチスクリーン機能を有していても良く、該タッチスクリーンを用いたユーザ指示を操作部111の入力として扱うことも可能である。
【0027】
次に、画像処理部103の詳細について説明する。
【0028】
図2は、画像処理部103の内部構成の一例を示す図である。画像処理部103は、画像合成部201、ノイズ低減処理部202、ホワイトバランス制御部203、エッジ強調部204、色変換部205、ガンマ処理部206で構成される。画像処理部103では、これら各部によって、A/D変換部102からの入力信号(デジタル画像)に対して、画質向上のための各画像処理が実行される。図2に示す構成では、他の処理に先んじて画像合成処理を行うように構成されているが、このような構成に限定されるものではない。例えば、ノイズ低減処理を行った後で画像合成処理を行っても良い。なお、画像合成処理は画像処理部103における各種画像処理の中の一つとして実施されることが好適であるがこれに限る必要はない。画像合成処理の詳細については後述する。
【0029】
また、本実施例において画像処理部103は、撮像装置内の一構成要素として説明しているが、この画像処理部103の機能をPC等の外部装置で実現してもよい。すなわち、本実施例における画像処理部103は、撮像装置の一機能としても、又は独立した画像処理装置としても実現し得るものである。
【0030】
<リフォーカスの原理>
図3は、通常の撮像光学系の構成を示す図であり、ピントがずれてしまった状態を表している。なお、図3では、IRカットフィルタ、ズームレンズ、絞りなどの構成については省略してある。また、レンズ構成についても、メインレンズ303でレンズ群を代表して表している。
【0031】
301は物点であり、物点301からの光はメインレンズ303で集光され、センサ302の一部領域305に到達している。メインレンズ303で集光された光が一点に結像する前にセンサ302に到達しているので、センサ302の一部領域305では、物点301の像が広がって記録されてしまい、撮像画像がぼけてしまう。鮮鋭性の高い画像を得たい場合には、ピント位置を調整し、物点301がセンサ302上の1点に結像されるようにして再度撮像を行う必要がある。
【0032】
図4は、撮像部101の構成の一例を示す図である。図4において、物点401からの光はメインレンズ403により集光されるが、結像する前にマイクロレンズアレイ406を通過してセンサ405により記録される。1つのマイクロレンズにより生成されるセンサ上の光学像は物点401を異なる方向から観察した画像となるため、センサ405では多視点の画像が一枚の画像データとして記録される。図6は、センサ405で取得される多視点画像の概念を示す図である。センサ405上の画素412の画素値は光線411の強度に応じた値が記録され、センサ405の他の画素(位置)でも光線の強度に応じた値が記録される。この光線群を延長して仮想センサ407、408において光強度を平均すると、両仮想センサに記録される画像を計算により求めることができる。仮想センサ407での画像を計算すると、物点401の光は広がり、ちょうど図3に示したようなピントがずれた状態の画像が得られる。同様に仮想センサ408での画像を計算すると、物点401から出た光が一点に集まり、ピントが合った状態の画像が得られる。
【0033】
上記のような撮像部を備えた多眼方式の撮像装置によって複数の異なる角度から被写体を撮像した多視点画像を得て、該多視点画像から得られる光線情報を元に仮想のセンサが受光する光を計算する処理を行う。その際の仮想センサの位置を調整して計算することが、ピント位置の調整、すなわち、リフォーカスに相当する。
【0034】
図5は、撮像部101の構成の別の一例を示す図である。図5において撮像部101は、複数の撮像ユニット505により構成される。撮像ユニット505は、センサ510とレンズ511とで構成される。504は光軸である。物点501からの光は、撮像ユニット505内のセンサ510により記録され、例えば、センサ510上の画素502は、光線503の強度を記録している。物体側に仮想センサ508、509を置いた場合を考え、光線群を仮想センサ508、509の方向へ延長し、仮想センサ508、509において光線強度を平均するものとする。すると、仮想センサ508において計算される画像は、物点501にピントがあっていないぼけた画像となり、仮想センサ509において計算される画像は、物点501にピントが合った画像となる。
【0035】
以上が、ピント位置調整した画像を撮像後に計算によって取得する、リフォーカスの原理である。
【0036】
<画像合成処理>
次に、画像処理部103内の画像合成部201の詳細について説明する。
【0037】
図7は、本実施例に係る画像合成部201の内部構成を示す図である。画像合成部201は、画素位置決定部701、色導出部702、画素値算出部703および取得部710からなり、さらに画素値算出部703は、バッファ704と画素値生成部705とで構成される。画像合成部201では、これら各部によって、AD変換部102から順次送られてくる多視点画像の画像データ(デジタル値)から合成画像の画素値の算出を行い、算出が完了した画素値から順にノイズ低減処理部202へ出力する処理を行う。以下、詳しく説明する。
【0038】
図8は、画像合成部201における画像合成処理の流れを示すフローチャートである。なお、説明を簡単にするため、A/D変換部102から入力されるデジタル値の画像データ(入力画像データ)を1次元として説明する。
【0039】
ステップ801において、画像合成部201の取得部710は、多視点画像データにおける画素値と画素位置、さらに光学パラメータおよび合成パラメータを、バス(不図示)を介して取得する。ここで、光学パラメータとは、撮像時における物理的に定まった各種のパラメータであって、例えば、後述のl、x、σrealなどの値を指す。また、合成パラメータとは、画像処理に関わる適宜設定変更が可能な各種のパラメータであって、例えば、ピントを合わせたい被写体までの距離であるリフォーカス距離や実施例2における重み係数(C1〜C9)などの値を指す。
【0040】
ステップ802において、画像合成部201の画素位置決定部701は、取得した多視点画像データの各画素の合成画像における画素位置を決定する。図9はこの決定方法を説明する図である。ここで、センサ901上のセンサ画素領域903に対応する画素が画像合成部201に入力されたと仮定する。この場合、画素位置決定部701は、センサ画素領域903に対応する、仮想センサ902上の投影領域904を計算して決定することになる。なお、図9において、lは隣り合うマイクロレンズ(この図では905及び907)のそれぞれの中心(光学中心)間の距離を表す。xは入力画素の位置(この図では、マイクロレンズ907の光学中心を通る光軸908とセンサ画素領域903の中心との距離)を表す。X1及びX2は計算によって求められる仮想センサ902上の位置であって、算出されたX1とX2との間の領域が投影領域904となる。図9に示す通り、センサ画素領域903を、マイクロレンズ905の光学中心を基準として仮想センサ902に投影した投影領域904が、入力された多視点画像データの画素の合成画像における位置となる。なお、906は、マイクロレンズ905の光学中心を通る光軸である。そして、σrealはセンサ901と各マイクロレンズとの距離であり、σvirtualは各マイクロレンズと仮想センサ902との距離である。図9から明らかなように、投影領域904はセンサ画素領域903に対して拡大されており、その拡大率はσvirtual/σreal倍である。なお、σvirtualは、ユーザによって指定される、カメラからピントを合わせたい被写体までの距離(リフォーカス距離)に応じて設定される。リフォーカス距離σfocusから仮想センサ位置を導くには、図4に示す構成の撮像部の場合、メインレンズ403の焦点距離をfmainとして次の式の関係からσvirtualを求める。
(1/σfocus)+(1/σvirtual)=(1/fmain) ・・・式(1)
【0041】
ここで、リフォーカス距離σfocusはメインレンズ403の中心から物点401までの光軸404に沿った距離である。
【0042】
また、図5に示す構成の撮像部の場合、上記式(1)においてfmain=無限大に設定し、σvirtual=−σfocusとする。上記式(1)は、実際の複雑なレンズ構成を簡略的に表現した式であるため、より精度を求める場合は、ユーザによって指定されたリフォーカス位置に応じて予め設定される。例えば、予め光学シミュレーションによって、リフォーカス位置と、かかる位置の被写体が鮮明に結像するような仮想センサの位置との対応関係を求めてROM108等に保持しておき、これを画像合成部201が適宜参照することにより設定される。画素位置決定部701は、以下の式(2)及び式(3)に従って、投影領域904を画定するX1及びX2の位置を算出する。
X1 = l + (σvirtual/σreal)*(x+s/2-l) ・・・式(2)
X2 = l + (σvirtual/σreal)*(x-s/2-l) ・・・式(3)
【0043】
上記式(2)及び式(3)において、sはセンサ画素領域903のサイズである。算出されたX1及びX2の情報は画素値算出部703へ出力される。
【0044】
このようにして、入力画像データである多視点画像データの各画素の画素位置と、任意のフォーカス位置に応じた合成画像の画素位置とが対応付けられる。図8のフローチャートの説明に戻る。
【0045】
ステップ803において、色導出部702は、入力された多視点画像データの各画素の色を導出する。色の種別としてはカラーフィルタアレイのフィルタ分光感度に応じてRGBや、赤外+RGB、CMYなどがある。ここでは、RGBの三色の場合を考える。色導出部702は、入力画素位置と色の対応を示すテーブルを参照して、入力画素の色を導出する。入力画素位置と色の対応を示すテーブルは、例えば、解像度が600万画素の場合、縦2000pxl×横3000pxlのテーブルであり、ROM108等に保持しておけばよい。さらに、撮像部101が、ベイヤー配列のカラーフィルタアレイを具備するなど、入力画素位置と色の関係が数式的に明らかな場合は、入力画素位置から所定の演算により色を求めても良い。図10は、ベイヤー配列のカラーフィルタを示す図であり、G(Green)のフィルタがR(Red)及びB(Blue)の2倍使用されているのが分かる。導出された色の情報は画素値算出部703に出力される。
【0046】
ステップ804において、画素値算出部703は、バッファ704内のデータ(中間データ)を更新する。具体的には、決定された合成画像における画素位置と導出された色に対応する、入力された多視点画像データの画素値をバッファ704に格納する。図11は、バッファ704に格納された中間データの一例を示している。図11において、1101〜1103は、本実施例における各インデックスを示しており、インデックス毎に1又は複数の画素値が保持されている。本ステップでは、画素位置決定部701から受け取った合成画像の画素位置と色導出部702から受け取った色の情報に従って入力画素値が追加・格納され、中間データが更新される。なお、図11の例では、合成画像の画素位置が整数で表記されているが、上記式(2)、(3)で算出されるX1、X2は一般に非整数である。そこで、合成画像の画素位置を特定するための数値として非整数を許容し、小数部分を重みとして合成画像の画素値の計算に用いてもよい。例えば、合成画像の画素位置を示す座標(10,10.4)に対して画素値20、同じく座標(10,10.1)に対して画素値10が割り当てられている場合を考える。この場合、合成画像の画素位置を示す座標(10,10)には、(0.1*20+0.4*10)/(0.1+0.4)にといった重み付けの計算により画素値12を割り当てる、といった具合である。
【0047】
ステップ805において、画素値算出部703は、所定のインデックスについて中間データの更新が完了したかどうか、すなわち、いずれかのインデックスに画素値がすべて揃ったかどうかを判定する。例えば、図11のインデックス1101(座標(10,10)の画素位置で、かつ、色がRの部分)において2つの画素値(24及び26)が格納されると、中間データの更新が完了と判定される。この判定は、例えば、格納されるはずの画素値の数をインデックス毎に予め計算しておき、格納された画素値の数がその数に達したかどうかにより行うことができる。
【0048】
ここで、インデックス毎の格納されるはずの画素値の数は、以下のようにして予め求めておく。まず、全ての画素値が1となるようなダミーの撮像画像を用意し、これを入力画像データとしてステップ802〜ステップ804の処理を行う。そして、全ての画素について処理を行った後、格納された画素値の数をインデックス毎にカウントすれば良い。
【0049】
このような判定処理により、いずれかのインデックスについて、追加されるはずの画素値がすべて揃ったと判定された場合にはステップ806に進む。一方、いずれのインデックスについても画素値が揃っていないと判定された場合にはステップ801に戻り、次の画素についてステップ801〜ステップ804の処理を繰り返す。
【0050】
ステップ806において、画素値生成部705は、更新が完了したインデックスの中間データ(多視点画像の画素値)をバッファ704から取得し、これらの平均値を算出して合成画像の画素値として出力する。図12は、本ステップの処理の詳細を示すフローチャートである。ここでは、図11の1101が示すインデックスの更新が完了した場合を例に説明する。
【0051】
ステップ1201において、画素値生成部705は、合成に用いられる画素値の数をバスから取得する。1101のインデックスの場合、合成に用いられる画素値の数として、“2”が取得される。
【0052】
ステップ1202において、画素値生成部705は、合成に用いられる多視点画像の画素値をバッファ704から取得する。ここでは、“24”と“26”が取得される。
【0053】
ステップ1202において、画素値生成部705は、合成に用いられる多視点画像の画素値の総和を合成に用いられる画素値の数で除算し、平均値を求める。ここでは、(24+26)÷2=“25”が算出される。算出された平均値は、当該インデックス(ここでは、画素位置:座標(10,10)、色:R)に対応する合成画像の画素値として出力される。
【0054】
ステップ807において、画像合成部201は、多視点画像データのすべての画素に対して、上述の処理が完了したかどうかを判定する。未処理の入力画素がなければ本処理を終える。一方、未処理の入力画素があればステップ801に戻り、ステップ801〜ステップ806を繰り返す。
【0055】
以上の処理により、任意のフォーカス位置における合成画像の画素値が順次計算され、ノイズ低減処理部へ出力される。
【0056】
図13の(a)は、本実施例に係る色補間した画素を用いずに画像合成を行った場合に得られる合成画像を示し、同(b)は、予め色補間を行った画素を用いて得られる合成画像を示している。図13において、1301は実際のセンサを示し、1302は仮想センサを示している。また、同図において“○”及び“●”は画素(例えばGチャネル)であり、“○”は画素値が255、“●”は画素値が0であることを意味している。そして、図13の(a)のセンサ1301上の“□”は画素が欠落していることを示している。そして、図13の(b)における “◇”及び“◆”は、上記欠落した画素が色補間されていることを示している。図13の(a)及び(b)において、仮想センサ1302上に形成される合成画像を比較すると、図13の(a)の方は合成画像の画素値が(255,0,255,0)であるのに対し、図13の(b)では(255,128,128,0)となっている。これは、本実施例を適用した図13の(a)における合成画像の方が図13の(b)の合成画像よりも周波数が高い(つまり、より鮮鋭である)ことを示している。
【0057】
以上のとおり、本実施例に係る発明によれば、色補間前の多視点画像データを用いて画像の合成を行うので、鮮鋭性の高い合成画像を得ることができる。
【0058】
[実施例2]
実施例1では、順次取得した入力画素に対して、算出された合成画像の画素位置と導出された色が相互に同一である範囲をインデックスの単位として合成画像の画素値の算出を行っていた。次に、合成画像の画素位置が同一の範囲をインデックスの単位とする態様について、実施例2として説明する。なお、実施例1との違いは、インデックスの1単位の範囲だけであるので、その余の共通する部分(図8のフローチャートのステップ801〜804、807)については説明を簡略化ないしは省略し、ここでは差異点を中心に説明することとする。
【0059】
実施例1では、図8のフローチャートのステップ805において、画素位置と色が共に同じ範囲の画素値が揃った段階で直ちに次のステップ806に進み、画素値生成部705での平均化処理に移行していた。本実施例では、同一の画素位置についてのすべての色(例えば、画素位置(10,10)のRGBのすべて)の画素値が揃うのを待って、画素値生成部705での平均化処理に移行する。
【0060】
具体的には以下のとおりである。
【0061】
ステップ805において、画素値算出部703は、上述した単位のいずれかのインデックスにすべての画素値が揃ったかどうかを判定する。本実施例の場合、例えば、図11の1101〜1103(座標(10,10)の位置におけるRGBの全部)の範囲内のすべての画素値が揃うと、中間データの更新が完了と判定されることになる。いずれかのインデックスについて、追加されるはずの画素値がすべて揃ったと判定された場合にはステップ806に進む。一方、いずれのインデックスについても追加されるはずの画素値が揃っていないと判定された場合にはステップ801に戻る。
【0062】
ステップ806において、画素値生成部705は、まず、実施例1と同様に色毎の画素値の平均値を算出する。そして、算出されたそれぞれの平均値(Rm,Gm,Bm) に対して、以下の式(4)、式(5)、式(6)を用いて加重平均を行い、合成画像の画素値(Rm’,Gm’,Bm’)を生成する。
Rm’ = C1*Rm + C2*Gm + C3*Bm ・・・式(4)
Gm’ = C4*Rm + C5*Gm + C6*Bm ・・・式(5)
Bm’ = C7*Rm + C8*Gm + C9*Bm ・・・式(6)
【0063】
なお、C1〜C9は重み係数であり、例えば、C1、C5、C9については0.8、それ以外の重み係数については0.1などが設定される。色のバランスを過度に変更したくない場合はC2、C3、C4、C6、C7、C8の値を小さくすればよい。また、例えばRm’においてC1=0.7、C2=0.2、C3=0.1のように、他の色よりも多く配されるGについての重み係数を相対的に他の重み係数(この場合C3)よりも大きくしてもよい。さらに、モノクロ画像の場合には、すべての重み係数を等しく(C1〜C9のすべてを0.33)すればよい。これらC1〜C9の重み係数は、合成パラメータとしてROM108に保持され、計算時に適宜読み出される。
【0064】
図14は、本実施例に係る画素値生成部705の内部構成を示す図である。本実施例の画素値生成部705においては、RGBのそれぞれについて別個に画素値の平均が算出され、算出された各平均値にC1〜C9の各重み係数が乗算されて、合成画像におけるRGBの画素値が算出される。
【0065】
図15は、本実施例に係るステップ806の処理の詳細を示すフローチャートである。ここでは、図11の1104で示すインデックスの更新が完了した場合であって、重み係数としてC1、C5、C9については0.8、それ以外は0.1が設定された場合を例に説明する。
【0066】
ステップ1501において、画素値生成部705は、合成に用いられる画素値の数をバスから取得する。ここでは、合成画像の画素位置が座標(10,10)についての画素値の数なので、“5”が取得される。
【0067】
ステップ1502において、画素値生成部705は、合成に用いられる多視点画像の画素値をバッファ704から取得する。ここでは、Rについて“24”と“26”、Gについて“32”と“34”、Bについて“22”の各画素値が取得される。
【0068】
ステップ1502において、画素値生成部705は、平均値(Rm、Gm、Bm)を色毎に計算し、その後、上記式(4)〜式(6)に従って加重平均を行い、Rm’、Gm’、Bm’を計算する。上記の例の場合、以下のような値が、合成画像の画素値としてそれぞれ算出され、出力される。
Rm’=(0.8×25)+(0.1×33)+(0.1×22)=25.5
Gm’=(0.1×25)+(0.8×33)+(0.1×22)=31.1
Bm’=(0.1×25)+(0.1×33)+(0.8×22)=23.4
【0069】
このように本実施例によれば、合成画像の1つの画素値の計算に、より多くの多視点画像データの画素値を用いることで、画像のノイズをさらに低減することができる。
【0070】
[実施例3]
合成画像の端の領域では、多視点画像の画素値が割り当てられていない画素が発生し得る。例えば、図13の(a)において、仮想センサ1302上の△の画素位置では画素値が割り当てられていない。これは、図11のテーブルでいえば、合成画像の画素位置と色で指定されるインデックスに対して、画素値が1つも割り当てられていないことを意味する。そこで、次に、合成画像において欠落した画素の発生を防ぐべく、合成画像の画素値の補間を行う態様について、実施例3として説明する。なお、実施例1と共通する部分(図8のフローチャートのステップ801〜804、807)については説明を簡略化ないしは省略し、ここでは差異点を中心に説明することとする。
【0071】
実施例1では、図8のフローチャートのステップ805において、画素位置と色が共に同じ範囲の画素値が揃った段階で直ちに次のステップ806に進み、画素値生成部705での平均化処理に移行していた。本実施例では、合成画像における予め定められた一定の領域に対応する画素値が全ての色について揃うのを待って、ステップ806に移行する。
【0072】
具体的には以下のとおりである。
【0073】
ステップ805において、画素値算出部703は、合成画像における予め定められた一定の領域に対応する、格納されるべき画素値が全て揃ったかどうかを判定する。格納されるべき画素値がすべて揃ったと判定された場合にはステップ806に進む。一方、揃っていないと判定された場合にはステップ801に戻る。
【0074】
ステップ806において、画素値生成部705は、合成画像の上記一定領域に対応する格納されたすべての画素値をバッファ704から取得し、当該一定の領域内のすべての画素位置において画素値の平均値を計算して、出力する。この際、画素値を有しない欠落画素があればその画素値を補間演算により求めて、当該欠落画素の画素値とする。
【0075】
図16は、ある色についての、合成画像における予め定められた一定領域の一例を示す図である。図16において、予め定められた一定領域1600の中の空白部1601は画素値が存在しない欠落画素を示している。何らかの値が存在するその他の部分は画素値が存在する画素であって、多視点画像の画素が少なくとも1つ割り当てられていることを示している。この場合、欠落画素1601の画素値は、周囲の画素値を用いた補間演算によって求められる。補間演算の方法としては、例えば、欠落画素の周囲3x3の領域にある画素値の平均値を求めたり、あるいは補間に用いる画素の領域をさらに広げ、欠落画素からの距離に応じて重み付けした加重平均を取る方法などがある。また、実施例1で説明したように非整数で特定される画素位置を考慮して画素値を補間してもよい。
【0076】
図17は、本実施例に係る画素値生成部705の内部構成を示す図である。本実施例の画素値生成部705は図17に示す各処理部を備えることにより上述の処理を行う。図18は、本実施例に係るステップ806の処理の詳細を示すフローチャートである。
【0077】
ステップ1801において、画素値生成部705は、合成画像の予め定められた一定領域についての、合成に用いられる画素の数を、RGB毎にバスから取得する。
【0078】
ステップ1802において、画素値生成部705は、合成画像の予め定められた一定領域についての、多視点画像の画素値を、RGB毎にバッファ704から取得する。
【0079】
ステップ1803において、画素値生成部705は、ステップ1801で取得した合成に用いられる画素の数が“0”であるかどうかを、色別に判定する。“0”であると判定された場合にはステップ1805に進む。一方、“0”でないと判定された場合には、ステップ1804に進む。
【0080】
ステップ1804において、画素値生成部705は、実施例1と同様、対象となる画素値の平均値を計算して出力する。
【0081】
ステップ1805において、画素値生成部705は、合成画像中の欠落画素について、当該欠落画素の近傍の画素値を用いて上述の補間処理を行って画素値を求め、出力する。
【0082】
ステップ1806において、画素値生成部705は、未処理の色があるかどうかを判定する。未処理の色があると判定された場合にはステップ1803に戻り、当該未処理の色に対して、ステップ1803〜ステップ1805の処理を繰り返す。一方、すべての色についての処理が完了したと判定された場合には、本処理を終える。
【0083】
このように本実施例によれば、合成画像の端の領域において生じ得る欠落画素の発生を防ぐことが出来る。
【0084】
[実施例4]
次に、縮小画像の生成を行う態様について、実施例4として説明する。なお、他の実施例と共通する部分については説明を簡略化ないしは省略し、ここでは差異点を中心に説明することとする。
【0085】
図6に示した通り、多眼方式の撮像装置で撮像された多視点画像は微小なサブ画像から構成される。そこで、本実施例では、サブ画像の1枚を縮小画像として利用することにする。
【0086】
ここで、縮小画像として利用されるサブ画像は色補間前の状態である。そのため適切に色補間を施す必要がある一方で、隣接の画素から色補間を行うと画像がぼけてしまうという問題がある。そこで、本実施例では、縮小画像となるサブ画像中の欠落した画素の値を、他のサブ画像における対応画素の値を用いて色補間を行う。
【0087】
図19は、所定のサブ画像中の欠落した画素と、他のサブ画像における当該欠落画素に対応する画素との関係を説明する図である。いま、センサ1903上の位置PAの画素(マイクロレンズ1900に対応するサブ画像における画素)について仮にREDが欠落しているとする。そして、この位置PAの画素の、仮想センサ1902上での位置をVAとする。この場合において、隣のサブ画像(マイクロレンズ1904に対応するサブ画像)において位置VAに対応する画素の位置PA1を求める。
【0088】
つまり、位置PAの画素も位置PA1の画素も、被写体上の同一の位置に対応するため、もし位置PAがREDの画素である場合、位置PAの欠落したREDの画素値を、位置PA1の画素値で置き換えることで画像をぼかす事なく色補間が行えることになる。
【0089】
さらに、本実施例では、位置PAに対応する他のサブ画像での画素は複数あるため、位置PAに対応する画素をリストアップし、それらリストアップされた対応画素の中から欠落した色をより適切に導出するようにしている。
【0090】
なお、実施例1では画素の大きさを考慮したが、本実施例における位置PAは1画素の占める範囲の中央の位置を意味し、画素の大きさは特に考慮していない。
【0091】
さらに、以下で述べる縮小画像生成処理は、画像処理部103における各種画像処理の中の一つとして実施されることが好適であるがこれに限る必要はない。
【0092】
図20は、本実施例に係る画像合成部201の内部構成を示す図である。画像合成部201は、色導出部702、画素値算出部703および取得部710からなり、さらに本実施例に係る画素値算出部703は、対応位置決定部2001、バッファ704、及び画素値生成部705とで構成される。
【0093】
図21は、本実施例における縮小画像生成処理の流れを示すフローチャートである。なお、実施例1と共通する部分については説明を簡略化ないしは省略している。
【0094】
ステップ2101において、画像合成部201の取得部710は、多視点画像データにおける画素値と画素位置、さらに光学パラメータおよび合成パラメータを、バスを介して取得する。
【0095】
ステップ2102において、画像合成部201は、取得した画素が現像範囲内であるかどうかを判定する。例えば、図6に示す9個のサブ画像で構成される多視点画像において、中央のサブ画像を縮小画像として利用する場合であれば、現像範囲は当該中央のサブ画像の占める範囲となる。取得した画素が中央のサブ画像に属していると判定された場合は、ステップ2103に進む。一方、取得した画素が中央のサブ画像に属さないと判定された場合は、色補間を行うことなく本処理を終える。
【0096】
ステップ2103において、色導出部702は、入力された多視点画像データの各画素の色を導出する。
【0097】
ステップ2104において、対応位置決定部2001は、取得した画素について、他のサブ画像での対応位置を計算により求める。前述の図19において、中央のサブ画像に属する画素の位置がPA、その隣のサブ画像における位置PAに対応する位置をPA1とする。そして、xを位置PAの座標、yを対応位置PA1の座標、zを位置PAの仮想センサ1902上での位置VAの座標とする。なお、1901はマイクロレンズ1900の光学中心を通る光軸、1905はマイクロレンズ1904の光学中心を通る光軸を示している。すると、zとxの間には次の式(7)の関係が成り立つ。
z = (σvirtual/σreal)*x ・・・式(7)
さらに、zとyの間には次の式(8)の関係が成り立つ。
z = (σvirtual/σreal)*(y-l)+l ・・・式(8)
ここで、lは隣り合うマイクロレンズ(図19では1900及び1904)のそれぞれの中心(光学中心)間の距離を表す。
そして、式(7)及び式(8)からzを消去すると、以下の式(9)のようになる。
y = l + x - (σreal/σvirtual)*l ・・・式(9)
このようにして、xとyの関係式が得られる。
上記式(9)を一般化して、n個隣のサブ画像における対応点の座標ynを式で表すと、式(10)のようになる。
yn = n*l + x - (σreal/σvirtual)*n*l ・・・式(10)
【0098】
対応位置決定部2001は、上記式(10)を用いて、取得した画素位置PAの他のサブ画像における対応位置を算出する。算出された対応位置はバッファ704に送られ、その際、対応位置の色の種別と画素値も併せて送られる。
【0099】
ステップ2105において、画素値算出部703は、バッファ704内のデータ(中間データ)を更新する。図22は、本ステップで更新される中間データの一例を示す図である。ここでの中間データは、現在処理中の画素に対応する、画素位置、色の種別、及び画素値からなる。バッファ704はこのような中間データを保持し、対応位置決定部2001からの新たな対応位置のデータを受け取って、逐次データを更新する。
【0100】
ステップ2106において、画像合成部201は、ステップ2101で取得した画素に対する他の全てのサブ画像における対応位置が算出されたかどうかを判定する。他の全てのサブ画像における対応位置が算出されていれば、ステップ2107に進む。一方、他の全てのサブ画像における対応位置が算出されていなければ、ステップ2104に戻り、対応位置を求める。
【0101】
ステップ2107において、画素値生成部705は、欠落した色の画素値を生成する。例えば、現在処理中の画素の色の種別がBLUEであるとすると、REDとGREENが欠落した色となる。ここで、中間データの更新完了時点での状態が、前述の図22の状態であったとする。この場合、画素値生成部705は、図22においてREDである画素値、GREENである画素値の平均をそれぞれ算出し、欠落した色の画素値を決定する。すなわち、図22の場合に算出される画素値は、REDが(24+26+25)/3=25、GREENが(32+34)/2=33となる。算出されたRED及びGREENの画素値は、欠落していなかったBLUEの画素値と共に、縮小画像の画素値として出力される。
【0102】
ステップ2108において、画像合成部201は、多視点画像データのすべての画素に対して、上述の処理が完了したかどうかを判定する。未処理の入力画素がなければ本処理を終える。一方、未処理の入力画素があればステップ2101に戻り、ステップ2101〜ステップ2107を繰り返す。
【0103】
以上の処理により、縮小画像において欠落した色の画素が他のサブ画像を参照して決定れ、鮮明な縮小画像の画像データが生成される。
【0104】
(その他の実施形態)
また、本発明の目的は、以下の処理を実行することによっても達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出す処理である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【特許請求の範囲】
【請求項1】
多眼方式の撮像装置によって撮像された色補間前の多視点画像データを用いて合成画像を生成する画像処理装置であって、
前記多視点画像データにおける画素値と画素位置の情報を取得する手段と、
任意のフォーカス位置に応じた前記多視点画像データの各画素の画素位置の合成画像における画素位置を、前記撮像時の光学パラメータに基づいて決定する画素位置決定手段と、
前記多視点画像データの各画素の色を導出する色導出手段と、
前記決定された合成画像における画素位置及び前記導出された画素の色に対応する前記多視点画像データの画素値を用いて、前記合成画像の各画素の画素値を算出する画素値算出手段と
を備えることを特徴とする画像処理装置。
【請求項2】
前記画素値算出手段は、前記導出された画素の色が相互に同一である前記多視点画像データの画素値の平均値を求めることにより、前記合成画像の各画素の画素値を算出することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記画素値算出手段は、前記導出された画素の色が相互に同一である前記多視点画像データの画素値の平均値を色毎に求め、該求められた色毎の平均値にさらに加重平均を行って、前記合成画像の各画素の画素値を算出することを特徴とする請求項1に記載の画像処理装置。
【請求項4】
前記画素値算出手段は、
前記合成画像の予め定められた一定領域における、合成に用いられる画素の数を取得する手段と、
取得した前記合成に用いられる画素の数が0であるかどうかを判定する手段と、
前記判定手段において画素の数が0であると判定された場合に、当該画素の数が0と判定された画素の画素値を、当該画素の近傍の画素の画素値を用いた補間演算によって算出する手段と
をさらに備えたことを特徴とする請求項1に記載の画像処理装置。
【請求項5】
多眼方式の撮像装置によって撮像された色補間前の多視点画像データを用いて合成画像を生成する画像処理方法であって、
前記多視点画像データにおける画素値と画素位置の情報を取得するステップと、
任意のフォーカス位置に応じた前記多視点画像データの各画素の画素位置の合成画像における画素位置を、前記撮像時の光学パラメータに基づいて決定する画素位置決定ステップと、
前記多視点画像データの各画素の色を導出する色導出ステップと、
前記決定された合成画像における画素位置及び前記導出された画素の色に対応する前記多視点画像データの画素値を用いて、前記合成画像の各画素の画素値を算出する画素値算出ステップと
を含むことを特徴とする画像処理方法。
【請求項6】
コンピュータを請求項1乃至4のいずれかに記載されている画像処理装置として機能させるためのプログラム。
【請求項7】
請求項1乃至4のいずれかに記載されている画像処理装置を含む多眼方式の撮像装置。
【請求項8】
複数の視点位置から撮像することにより得られる多視点画像データから合成画像データを生成する画像処理装置であって、
前記合成画像データにおけるリフォーカス位置に基づいて、前記合成画像データの各画素の画素値を生成する際に用いる、前記多視点画像データにおける各画像の画素位置を決定する手段と、
前記決定された画素位置の画素値に基づいて、前記合成画像データの各画素の画素値を得る手段と、
を備えることを特徴とする画像処理装置。
【請求項9】
前記決定する手段は、前記リフォーカス位置において、所定の視点の画像中の欠落した画素に対応する、当該所定の視点の画像とは異なる視点の画像における画素位置を決定することを特徴とする請求項8に記載の画像処理装置。
【請求項1】
多眼方式の撮像装置によって撮像された色補間前の多視点画像データを用いて合成画像を生成する画像処理装置であって、
前記多視点画像データにおける画素値と画素位置の情報を取得する手段と、
任意のフォーカス位置に応じた前記多視点画像データの各画素の画素位置の合成画像における画素位置を、前記撮像時の光学パラメータに基づいて決定する画素位置決定手段と、
前記多視点画像データの各画素の色を導出する色導出手段と、
前記決定された合成画像における画素位置及び前記導出された画素の色に対応する前記多視点画像データの画素値を用いて、前記合成画像の各画素の画素値を算出する画素値算出手段と
を備えることを特徴とする画像処理装置。
【請求項2】
前記画素値算出手段は、前記導出された画素の色が相互に同一である前記多視点画像データの画素値の平均値を求めることにより、前記合成画像の各画素の画素値を算出することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記画素値算出手段は、前記導出された画素の色が相互に同一である前記多視点画像データの画素値の平均値を色毎に求め、該求められた色毎の平均値にさらに加重平均を行って、前記合成画像の各画素の画素値を算出することを特徴とする請求項1に記載の画像処理装置。
【請求項4】
前記画素値算出手段は、
前記合成画像の予め定められた一定領域における、合成に用いられる画素の数を取得する手段と、
取得した前記合成に用いられる画素の数が0であるかどうかを判定する手段と、
前記判定手段において画素の数が0であると判定された場合に、当該画素の数が0と判定された画素の画素値を、当該画素の近傍の画素の画素値を用いた補間演算によって算出する手段と
をさらに備えたことを特徴とする請求項1に記載の画像処理装置。
【請求項5】
多眼方式の撮像装置によって撮像された色補間前の多視点画像データを用いて合成画像を生成する画像処理方法であって、
前記多視点画像データにおける画素値と画素位置の情報を取得するステップと、
任意のフォーカス位置に応じた前記多視点画像データの各画素の画素位置の合成画像における画素位置を、前記撮像時の光学パラメータに基づいて決定する画素位置決定ステップと、
前記多視点画像データの各画素の色を導出する色導出ステップと、
前記決定された合成画像における画素位置及び前記導出された画素の色に対応する前記多視点画像データの画素値を用いて、前記合成画像の各画素の画素値を算出する画素値算出ステップと
を含むことを特徴とする画像処理方法。
【請求項6】
コンピュータを請求項1乃至4のいずれかに記載されている画像処理装置として機能させるためのプログラム。
【請求項7】
請求項1乃至4のいずれかに記載されている画像処理装置を含む多眼方式の撮像装置。
【請求項8】
複数の視点位置から撮像することにより得られる多視点画像データから合成画像データを生成する画像処理装置であって、
前記合成画像データにおけるリフォーカス位置に基づいて、前記合成画像データの各画素の画素値を生成する際に用いる、前記多視点画像データにおける各画像の画素位置を決定する手段と、
前記決定された画素位置の画素値に基づいて、前記合成画像データの各画素の画素値を得る手段と、
を備えることを特徴とする画像処理装置。
【請求項9】
前記決定する手段は、前記リフォーカス位置において、所定の視点の画像中の欠落した画素に対応する、当該所定の視点の画像とは異なる視点の画像における画素位置を決定することを特徴とする請求項8に記載の画像処理装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【公開番号】特開2013−31154(P2013−31154A)
【公開日】平成25年2月7日(2013.2.7)
【国際特許分類】
【出願番号】特願2012−107581(P2012−107581)
【出願日】平成24年5月9日(2012.5.9)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成25年2月7日(2013.2.7)
【国際特許分類】
【出願日】平成24年5月9日(2012.5.9)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]