図1には、本発明の実施例1である画像処理装置としての画像処理部107を搭載した撮像装置114の構成を示している。101は被写体面(被写体空間)である。被写体面101には、人物や物体が必ずしも存在していなくてよい。これは後の再構成処理によって、被写体面101より奥や手前に存在する人物や物体に撮影後にピントを合わせることができるためである。このことは、後述する他の実施例でも同じである。
102は結像光学系(撮像光学系)である。103は複数のマイクロレンズを含むレンズアレイである。レンズアレイ103は、結像光学系102の被写体面101に対する像側共役面に配置され、結像光学系102の瞳(射出瞳)を分割する瞳分割部として機能する。また、結像光学系102の射出瞳と撮像素子104とが、レンズアレイ103によって共役な関係となっている。撮像素子104は、CMOSセンサやCCDセンサ等の光電変換素子により構成され、複数の画素(撮像画素)を含む。
なお、本実施例では、瞳分割部としてレンズアレイ103を用いているが、ピンホールアレイ等、レンズアレイとは異なる素子により瞳分割部を構成してもよい。また、レンズアレイ103として、複数のレンズアレイを用いてもよいし、本実施例のような固体レンズではなく、液体レンズ、液晶レンズ、回折光学素子等の様々な素子を用いて構成することができる。
115は光学系制御部であり、結像光学系102の焦点距離や絞り値を変更したり、焦点調節を行ったりする。
被写体面101からの光線は、結像光学系102およびレンズアレイ103を通過し、該光線の被写体面101上での位置と角度に応じて撮像素子104における異なる画素に入射する。レンズアレイ103は、被写体面101上の同一位置(同一点)からの複数の光線を、撮像素子104上の同一画素に入射させず、互いに異なる画素に入射させる。つまり、被写体空間の同一点からの複数の光線を結像光学系102の瞳面での光線通過領域に応じて異なる撮像画素に入射させる。また、レンズアレイ103は、被写体面101上の互いに異なる位置からの複数の光線も、撮像素子104上の互いに異なる画素に入射させる。撮像素子104がこれら光線を光電変換することで、各光線の位置と方向(角度)の情報を得ることができる。
撮像素子104から出力されたアナログ電気信号は、A/Dコンバータ105でデジタル信号に変換され、画像処理部107に入力される。画像処理部107は、上記各光線の位置と方向(角度)の情報である光線情報から、被写体面101上の同一領域を複数の視点から見た画素群が並んだ画像、つまりは視差情報を含む撮像データとしての入力画像を生成する。結像光学系102、レンズアレイ103および撮像素子104(さらに画像処理部107における入力画像の生成を行う部分)により撮像系が構成される。
また、画像処理部107は、記憶部106で保持されている各種情報を読み取る。各種情報には、撮像系(結像光学系102とレンズアレイ103)の光学特性に関する情報が含まれ、また結像光学系102の絞り値や焦点距離および露出に関する情報等の撮像条件に関する情報も含まれる。さらに、後述する画像回復フィルタの情報も含まれる。なお、記憶部106にて上記各種情報を保持せずに、必要に応じて外部から各種情報を取得してもよい。
画像処理部107には、それぞれ後述する処理を行う距離情報取得部108と、画像再構成部109と、画像回復処理部110と、ぼけ付加処理部111とを有する。画像処理部107での処理が終了した画像、すなわち、後述する「ぼけ」が付加された再構成画像は、半導体メモリ等の画像記録媒体112に保存されたり、液晶ディスプレイ等により構成される表示部113に表示されたりする。
次に、本実施例で行う画像回復処理について説明する。点像分布関数(PSF)をフーリエ変換して得られる光学伝達関数(Optical Transfer Function:OTF)は、収差および回折の周波数成分情報であり、複素数で表される。光学伝達関数(OTF)の絶対値、すなわち振幅成分を、MTF(Modulation Transfer Function)といい、位相成分をPTF(Phase Transfer Function)という。MTFおよびPTFはそれぞれ、収差および回折による画像劣化の振幅成分および位相成分の周波数特性である。ここでは、位相成分を位相角として以下の式で表す。Re(OTF)およびIm(OTF)はそれぞれ、OTFの実部および虚部を表す。
PTF=tan-1(Im(OTF)/Re(OTF))
このように、撮像系に含まれる光学系(本実施例では、結像光学系102およびレンズアレイ103)の光学伝達関数(OTF)は、画像の振幅成分と位相成分に対して劣化を与えるため、劣化画像は被写体の各点がコマ収差のように非対称にぼけた状態になる。
劣化画像(入力画像)における振幅成分(MTF)の劣化と位相成分(PTF)の劣化を補正する方法として、光学系の光学伝達関数の情報を用いるものが知られている。この方法は、画像回復や画像復元とも呼ばれており、以下、この光学系の光学伝達関数の情報を用いて劣化画像を補正(劣化成分を低減)する処理を画像回復処理(または単に回復処理)と称する。
光学系を用いた撮像によって生成された入力画像(劣化画像)をg(x,y)とし、元の劣化していない画像をf(x,y)とし、光学伝達関数(OTF)のフーリエペアである点像分布関数(PSF)をh(x,y)とする場合、以下の式が成り立つ。*はコンボリューション(畳み込み積分または積和)を示し、(x,y)は入力画像上の座標(位置)を示す。
g(x,y)=h(x,y)*f(x,y)
この式をフーリエ変換して周波数面での表示形式に変換すると、以下の式のように周波数ごとの積の形式になる。Hは点像分布関数(PSF)hをフーリエ変換したものであり、光学伝達関数(OTF)に相当する。G,Fはそれぞれ、g,fをフーリエ変換したものである。(u,v)は2次元周波数面での座標、すなわち周波数を示す。
G(u,v)=H(u,v)・F(u,v)
撮像により生成された劣化画像から元の画像を得るためには、以下のように、上記式の両辺をHで除算すればよい。
G(u,v)/H(u,v)=F(u,v)
F(u,v)、すなわちG(u,v)/H(u,v)を逆フーリエ変換して実面に戻すことで、元の画像f(x,y)である回復画像が得られる。
ここで、H−1を逆フーリエ変換したものをRとすると、以下の式のように実面での画像に対するコンボリューション処理を行うことで、同様に元の画像f(x,y)である回復画像を得ることができる。
g(x,y)*R(x,y)=f(x,y)
このR(x,y)が画像回復フィルタである。入力画像が2次元であるとき、一般に画像回復フィルタも該2次元画像の各画素に対応したタップ(セル)を有する2次元フィルタとなる。また、一般に画像回復フィルタのタップ数(セル数)が多いほど画像回復精度が向上するため、出力画像としての要求画質、画像処理装置としての画像処理能力、光学系の収差や回折の特性等に応じて実現可能なタップ数を設定する。
画像回復フィルタは、少なくとも収差や回折の特性を反映している必要があるため、従来の水平垂直各3タップ程度のエッジ強調フィルタ(ハイパスフィルタ)等とは全く異なる。また、画像回復フィルタは、光学系の収差や回折の情報を含む光学伝達関数(OTF)に基づいて生成されるため、劣化画像(入力画像)における振幅成分と位相成分の劣化をともに高精度に補正することができる。
また、実際の入力画像にはノイズ成分が含まれる。このため、上記のように光学伝達関数(OTF)の完全な逆数をとって作成した画像回復フィルタを用いると、劣化画像が回復されるだけでなくノイズ成分が大幅に増幅されてしまう。これは、入力画像の振幅成分にノイズの振幅が付加されている状態に対して光学系のMTF(振幅成分)を全周波数にわたって1に戻すようにMTFを持ち上げるためである。撮影光学系による振幅劣化であるMTFは1に戻るが、同時にノイズ成分のパワースペクトルも持ち上がってしまい、結果的にMTFを持ち上げる度合い、すなわち回復ゲインに応じてノイズが増幅されてしまう。
したがって、ノイズがある場合には鑑賞用画像としては良好な画像は得られない。これを式で示すと以下のように表せる。Nはノイズ成分を表している。
G(u,v)=H(u,v)・F(u,v)+N(u,v)
G(u,v)/H(u,v)=F(u,v)+N(u,v)/H(u,v)
この点については、例えば、式(1)に示すウィナーフィルタのように画像信号とノイズ信号の強度比(SNR)に応じて回復度合いを制御する方法が知られている。
M(u,v)はウィナーフィルタの周波数特性を示し、|H(u,v)|は光学伝達関数(OTF)の絶対値(MTF)を示す。この方法は、周波数ごとに、MTFが小さいほど回復ゲインを抑制し、MTFが大きいほど回復ゲインを強くするものである。一般に、撮影光学系のMTFは、低周波数側が高く、高周波数側が低くなるため、実質的に画像信号の高周波数側の回復ゲインを抑制する方法となる。
画像回復フィルタを、図14を用いて説明する。画像回復フィルタは、光学系の収差・回折特性や要求される画像回復精度に応じてタップ数が決められる。
図14(a)では、例として、11×11タップの2次元画像回復フィルタを示している。図14(a)では、各タップ内の値であるタップ値(係数値)を省略しているが、この画像回復フィルタの1つの断面を図14(b)に示す。図14(b)に示す画像回復フィルタの各タップ値は、上述した光学系の様々な収差や回折の情報に基づいて設定される。この画像回復フィルタのタップ値の分布が、収差や回折によって空間的に広がった信号値(PSF)を、理想的には元の1点に戻す役割を果たす。
画像回復処理では、画像回復フィルタの各タップ値が、入力画像における各タップに対応する各画素に対してコンボリューションされる。コンボリューション処理では、ある画素の信号値を改善するために、その画素を画像回復フィルタの中心と一致させる。そして、入力画像と画像回復フィルタの対応画素ごとに入力画像の信号値と画像回復フィルタのタップ値(係数値)との積をとり、その総和を中心画素の信号値として置き換える。
このような実空間での画像回復フィルタを入力画像に対してコンボリューション処理することで、画像回復処理で画像のフーリエ変換や逆フーリエ変換を行うことなく画像回復を行うことができる。
画像回復フィルタは、光学系の光学伝達関数(OTF)の逆関数に基づいて設計した関数を逆フーリエ変換して作成することができる。例えば、ウィナーフィルタを用いる場合、式(1)を逆フーリエ変換することで、実際に入力画像に畳み込む実空間の画像回復フィルタを作成することができる。
また、光学伝達関数(OTF)は、同じ撮像条件であっても光学系の像高(画像上での位置)に応じて変化するので、画像回復フィルタは像高に応じて変更して使用される。
本実施例にて用いられる、特に収差の対称性を向上させる機能を有した画像回復フィルタについて説明する。式(1)から分かるように、以下の式(2)中のrOTFの部分が図18(a)に示した点光源を撮像して得られた画像の回復後の周波数特性になる。
ここで、rOTFは、任意の関数である。回復画像の位相劣化成分は零であることが望ましいので、rOTFは位相成分を持たないようにすればよく、rOTFは実部のみを有するため、実質的にはrMTFと等しい。rOTFは実部のみを有することが好ましいが、許容可能な範囲で虚部に値を持たせてもよい。換言すると、点光源に関わらず、どのような被写体に対しても、あたかも光学伝達関数(OTF)がrOTFの特性を持った光学系(結像光学系102およびレンズアレイ103)を通して撮像されたような画像を得ることができるようにすればよい。
したがって、式(2)を、主光線(結像光学系の瞳の中心を通る光線)と直交するそれぞれのアジムス方向間で共通なOTF(rH(u,v))を用いた式(3)のようにする。これにより、あたかもアジムス方向間にMTFの差がない光学系を通した撮像により生成された画像を得ることができる。
このことを、図16を用いて説明する。画像回復前のMTFは、図16(B)中の(a),(b)に示すようにアジムス方向ごとに異なっているが、画像回復後のMTFは、図16(B)中の(c),(d)に示すようにアジムス方向間で揃っている。図16(B)中の(a),(b)に示したMTFは、例えばメリジオナル方向とサジタル方向のMTFに相当する。このように、本実施例で用いる画像回復フィルタによりアジムス方向間のMTFの差異を補正しながら画像回復を行うことが可能となる。
また、式(3)ではアジムス方向間で共通なOTF(rH(u,v))を用いているが、rH(u,v)をアジムス方向ごとのOTFの差が画像回復前のOTFの差よりも小さくなるように補正することで、回転対称性を制御することができる。完全には回転対称には補正していない例を、図13に示す。図13中の(c),(d)のMTFのように完全に一致しなくても、図16(A)中の(c),(d)のMTFに対してアジムス方向間のMTFの差が小さくなり、PSFの非対称性が低減される。非対称性の補正効果を得るためには、少なくとも画像回復後のアジムス方向間でのMTFの差が画像回復前よりも小さくなるように制御することが望ましい。
画像回復フィルタは、式(3)のH(u,v)の部分がアジムス方向ごとに異なるため、rH(u,v)がアジムス方向間で共通か否かにかかわらず、画像回復フィルタとしては非対称な係数配列を有する。すなわち、図14(b)に示した断面でのタップ値がアジムス方向ごとに異なる。
さらに、光学伝達関数(OTF)には、結像光学系102およびレンズアレイ103のみならず、撮像の過程で光学伝達関数(OTF)を劣化させる要因を含めることができる。例えば、複屈折を有する光学ローパスフィルタは、光学伝達関数(OTF)の周波数特性に対して高周波成分を抑制するものである。また、撮像素子104の画素開口の形状、開口率、ヴィネッティングも周波数特性に影響する。他にも光源の分光特性や各種波長フィルタの分光特性が挙げられる。これらを含めた広義の光学伝達関数(OTF)に基づいて、画像回復フィルタを作成することが望ましい。また、画像回復フィルタの縦横のタップ数に関しても正方配列である必要はなく、コンボリューション処理時に考慮するようにすれば任意に変更することができる。
画像回復処理は、画像の劣化過程が線形である方が劣化前の元の画像に回復するための過程を高精度に処理できるため、入力画像は非線形処理を受けていないことが好ましい。したがって、画像回復処理は、モザイク画像(RAW画像)に対して行うことが好ましい。ただし、デモザイク画像でも、色補間処理による劣化過程が線形であれば、画像回復フィルタの生成において、この劣化関数を考慮することで同様に画像回復処理を行うことができる。また、画像回復の要求精度が低い場合や諸々の画像処理を受けた画像しか取得できない場合には、デモザイク画像に対して画像回復処理を行ってもよい。本実施例で用いる画像処理方法は、入力画像がモザイク画像であってもデモザイク画像であっても適用することができる。
本実施例にて行う入力画像から画像ぼけ成分(以下、単にぼけという)を付加した画像であるぼけ付加画像を生成する画像処理(画像処理方法)について、図2に示したフローチャートを用いて説明する。本処理は、コンピュータとしての画像処理部107がコンピュータプログラムである画像処理プログラムに従って実行する。
ステップS011では、画像処理部107は、入力画像を取得する。本実施例にいう入力画像とは、被写体面101上の各点(各同一点)からの複数の光線を結像光学系102の瞳面での光線通過領域に応じて異なる撮像画素に入射させる撮像系によって生成された画像である。この入力画像には、上記各点からの複数の光線の方向の情報が含まれる。言い換えれば、被写体面101を複数の視点から見た画素群(視点が異なる複数の小画像)が並んだ画像であり、視差情報を含む画像である。
ステップS012では、画像処理部107のうち距離情報取得部108は、ステップS011で取得した視差情報を含む入力画像から被写体空間の距離情報を取得する。具体的には、入力画像から各視点に対応する画像(視点画像)を再構成し、これら視点画像間における被写体の画素ずれ量から被写体の距離情報を取得する。
なお、このステップS012で行う再構成は、ぼけを付加する対象となる画像を生成するための再構成とは異なり、距離情報を取得するために行われる処理である。距離情報の取得方法は、このような視点画像を再構成して行う方法には限定されず、DFF(depth from focus)のように、ピント位置をずらして複数回の撮像を行うことで取得した複数の画像を用いて距離情報を取得してもよい。また、オートフォーカスに利用する測距点で距離情報を取得してもよい。
次のステップS013およびステップS014は、画像処理部107が、特定処理としての整形処理を行う整形工程である。本実施例では、整形処理として、画像回復処理を行う。
ステップS013では、画像処理部107のうち画像回復処理部110は、結像光学系102とレンズアレイ103の少なくとも一方の光学特性と、撮像条件(被写体の距離情報を含む)とに対応する画像回復フィルタを取得(選択または生成)する。画像回復フィルタの取得方法について以下に説明する。
図15には、記憶部106に格納された画像回復フィルタ群を模式的に示す。画像回復フィルタ群は、撮像条件(撮像状態)としての焦点距離(状態A)、絞り値(状態B)と距離情報(状態C)の3つを軸とした撮像状態空間中に離散的に配置されている。撮像状態空間中の各点(黒丸)の座標が、記憶部106に予め格納された画像回復フィルタを示す。なお、図15では、画像回復フィルタを各撮像状態に対して直交した線上の格子点に配置しているが、画像回復フィルタを格子点から外して配置しても構わない。また、撮像状態の種類は、ズーム位置、絞り開口径および距離情報に限らず、その数も3つでなくてもよく、4つ以上の撮像状態による4次元以上の撮像状態空間を構成してその中に画像回復フィルタを離散的に配置してもよい。
このように離散的に配置された画像回復フィルタ群において、図15中に大きな白丸で示した撮像状態が、実際の撮像状態であるとする。実際の撮像状態に対応して又はそれに近接した撮像状態に対応して記憶部106に記憶(格納)された画像回復フィルタ(以下、格納フィルタという)が存在する場合には、その格納フィルタを選択して画像回復処理に用いる。実際の撮像状態に対応して又はそれに近接した撮像状態に対応した格納フィルタが存在しない場合には、以下の方法により画像回復フィルタを選択または生成(補正)する。
まず、実際の撮像状態と複数の格納フィルタに対応する撮像状態との間の撮像状態空間内での距離をそれぞれ算出する。そして、算出した距離のうち最も短い距離にある撮像状態に対応する格納フィルタ(図15中に小さな白丸で示す)を選択する。このような格納フィルタを選択することで、実際の撮像状態と該格納フィルタに対応する撮像状態との相違量(以下、状態相違量という)が最も小さくなる。このため、該格納フィルタに対する補正量を少なくすることができ、実際の撮像状態に対応する画像回復フィルタにより近い画像回復フィルタを作成することが可能となる。なお、画像回復フィルタの選択において撮像状態空間中の方向による重み付けをすることもできる。すなわち、撮像状態空間中の距離と方向ウェイトとの積を評価関数として選択してもよい。
次に、選択した格納フィルタに対応する撮像状態と実際の撮像状態との状態相違量ΔA,ΔB,ΔCを算出する。そして、これらの状態相違量ΔA,ΔB,ΔCに基づいて、状態補正係数を算出する。さらに、該状態補正係数を用いて、選択した格納フィルタを補正する。これにより、実際の撮像状態に対応した画像回復フィルタを作成することができる。
また、別の方法として、実際の撮像状態に近い複数の画像回復フィルタを選択し、これら選択した複数の画像回復フィルタを用いて状態相違量に応じた補間処理を行うことで、実際の撮像状態に適した画像回復フィルタを生成してもよい。ここでの補間処理は、2次元フィルタ同士の対応タップの係数値を線形補間、多項式補間およびスプライン補間等の補間方法を用いて行えばよい。
図2において、ステップS014では、画像処理部107(画像回復処理部110)は、入力画像に対して、ステップS103で取得した画像回復フィルタをコンボリューションし、回復画像を取得する。
図8には、撮像素子104上においてレンズアレイ103の各マイクロレンズを通過した光線が入射する領域116を示している。本実施例では、領域116と被写体距離ごとに異なる画像回復フィルタを、撮像素子104を用いて取得した入力画像に対してコンボリューションして画像回復を行う。その結果、入力画像の位相劣化成分は零を目標値に補正され、振幅劣化成分はアジムス方向間で振幅成分が揃うように補正される。
このように本実施例では、ぼけ付加の対象となる画像(げけ付加対象画像)を生成するための再構成処理の前に画像回復処理を行う。この理由を以下に説明する。再構成処理前の各画素に対応した画像回復フィルタは、結像光学系102とレンズアレイ103の光学伝達関数から算出される。しかし、再構成処理は各画素を合成する処理を行うので、再構成処理後の画像に対応した光学系が不明となり、適切な光学伝達関数を求めることができない。すなわち、収差と回折による被写体の像形状の変化を補正する画像回復を行うことができない。このため、再構成処理の前に画像回復処理を行う必要がある。
図2において、ステップS015では、画像処理部107は、回復画像において、角度成分のエイリアシングが発生する距離に対して、距離に応じたローパスフィルタをかける。この処理を行う理由は、角度成分のエイリアシングがデフォーカスぼけの形状に影響を及ぼすからである。ただし、再構成処理前にローパスフィルタをかけなくてもよく、この場合には再構成処理前に行うぼけ付加処理によって、デフォーカスぼけの形状が角度成分のエイリアシングから受ける影響を改善してもよい。
次のステップS016は、画像処理部107のうち画像再構成部109が、ぼけ付加の対象となる画像を生成するための再構成処理を行う再構成工程である。このステップS016では、画像処理部107(画像再構成部109)は、ステップS015にてローパスフィルタをかけた回復画像に対して再構成処理を行うことで再構成画像としての中間画像(1つの視点に対応した視点画像)を生成する。この際に距離情報を利用してピント位置を変更したり、距離に応じて異なる重み付けを行ったりする。
ステップS017およびステップS018は、画像処理部107のうちぼけ付加処理部111が中間画像に対してぼけ付加処理を行うぼけ付加工程である。
ステップS017では、画像処理部107(ぼけ付加処理部111)は、中間画像に含まれる被写体ごとの被写体距離に応じたぼけ関数を生成する。図7には、撮像シーンの一例を示す。図9には、図7の撮像シーンで取得された入力画像から再構成処理によって生成された中間画像を示す。本ステップでは、図9に示す被写体1,2,3のそれぞれの被写体距離に対応したぼけ関数を生成する。
ここで、ぼけ関数の例を示す。図17(a)はガウシアンとしてのぼけ関数であり、周辺に行くほど滑らかに減衰するぼけを表す。また、図17(b)は半値幅の異なる2種類のガウシアンを組み合わせたぼけ関数であり、図17(a)のぼけ関数と比べて、中心部分のピークが鋭いぼけを表す。さらに、図17(c)は均一なぼけを表すぼけ関数である。ただし、ぼけ関数はこれらに限定されたものではなく、他のぼけ関数であってもよい。
本実施例では、ぼけの大きさが指定したF値の結像光学系に対応するものとなるようにぼけ関数を距離に応じて変化させる。ただし、ぼけの大きさの規定はこれに限定されたものでなく、例えば、ピント位置からの距離の2乗に比例するように変化させてもよい。ぼけ関数の情報は、図20に示す2次元フィルタとしてのぼけフィルタの各タップ値としてステップS018で用いられる。
図2において、ステップS018では、中間画像中の各被写体画像部分(レイヤー)のうちぼけを付加する対象となるレイヤーにぼけフィルタをかける。すなわち、ぼけフィルタをコンボリューションする。具体的には、ステップS014での画像回復処理を経て、ステップS016での再構成処理によって生成された中間画像を、図10(a),(b),(c)に示す3つのレイヤーに分割する。図10(a),(b)は背景のレイヤーを示し、図10(c)は主被写体のレイヤーを示す。
そして、ステップS016にて取得した、背景レイヤーのそれぞれに対応するぼけフィルタをこれら背景レイヤーにかけることでぼけを付加する。画像を合成する際は、複数のレイヤーの画素値を足し合わせてもよいし、いずれか1つ又は複数の画素値を用いてもよい。こうしてぼけが付加された背景レイヤーと主被写体レイヤーとを合成することで、図10(d)に示すぼけ付加画像を取得する。
なお、本実施例では、レイヤーの数が3つの場合を示したが、これに限定されず、2つ以下または4つ以上のレイヤーの数に対しても有効である。
また、ステップS017からステップS018で示したぼけ付加処理は例に過ぎず、他のぼけ付加処理を行ってもよい。例えば、図9に示す中間画像を距離に応じて複数の画像領域に切り分け、該画像領域ごとに異なるぼけフィルタをコンボリューションしてもよい。また、ぼけ関数をぼけの大きさとして定義し、各レイヤーの画素値をぼけの大きさの領域で平均化してもよい。
さらに、本実施例では、再構成処理の後にぼけ付加処理を行う場合について説明したが、ぼけ付加処理の後に再構成処理を行ってもよい。この場合、再構成処理の前に必要な処理である、被写体距離に応じたローパスフィルタ処理の工程をぼけ付加処理で代用することができる。ただし、再構成処理前の視差情報を持つ画像に対して適用するぼけフィルタと、意図したぼけを付加するぼけフィルタとを同じにすると、視差のある各画像に同一のぼけフィルタを付加することになる。このため、再構成処理後のぼけ形状が、意図したぼけ形状にならない。したがって、レンズアレイ103によって分割された結像光学系102の瞳面の領域ごとに異なるぼけフィルタを適用して調整を行う必要がある。または、再構成処理時において光線ごとの重み付けを制御してぼけ形状を調整してもよい。
ステップS019では、画像処理部107は、ステップS018で得られたぼけ付加画像を出力する。
なお、本実施例ではぼけ付加処理を行うことを前提として画像回復処理(整形処理)を行うので、画像回復処理時にピント位置が決まっていた場合には、劣化成分の非対称性を補正すればよく、MTF値を上げなくてもよい。
以上説明したように、本実施例では、視差情報を有する画像に対する再構成処理とぼけ付加処理の前に、結像光学系とレンズアレイの光学特性による被写体形状の変化(劣化)を低減した整形処理を行うことで、良好なぼけ付加画像を生成することができる。
本実施例では、整形処理として画像回復処理を行う場合について説明したが、整形処理には、この後の実施例2で説明する視点画像間での輝度値の調整、輝度飽和領域の輝度値の推定、さらにぼけ付加時における輝度飽和領域の推定輝度値の調整を含めてもよい。
図3には、本発明の実施例2である画像処理装置としての画像処理部209を搭載した撮像装置219の構成を示している。図3において、実施例1(図1)と共通する構成要素には実施例1と同符号を付して説明に代える。本実施例の撮像装置219は、結像光学系と撮像素子をそれぞれ複数有する。また、本実施例では、再構成処理前に、整形処理として、輝度飽和領域の輝度推定処理と複数の視点画像(入力画像)の輝度調整処理とを行う。つまり、再構成処理前に輝度飽和領域の輝度値の推定と複数の視点画像の輝度値の調整とを行って、輝度飽和領域の情報の欠落を改善する。再構成処理前にこの整形処理を行う理由については後述する。
図3において、201a〜201cは結像光学系であり、202a〜202cは撮像素子(言い換えれば、撮像画素)である。
本実施例では、複数の結像光学系201a〜201cの個々の瞳面により形成される開口径を包含した領域を合成開口と定義し、この合成開口を該複数の結像光学系201a〜201cの共通の瞳面とする。つまり、本実施例では、被写体空間の同一点からの複数の光線を複数の結像光学系201a〜201cの(共通の)瞳面での光線通過領域に応じて異なる撮像画素に入射させる撮像系を構成している。
なお、本実施例では、結像光学系と撮像素子をそれぞれ3つずつ有する場合を示しているが、結像光学系は少なくとも2つで、撮像素子は少なくとも1つあればよい。ただし、結像光学系の数に対して撮像素子の数が少ない場合は、撮像素子に全ての結像光学系からの光線が入射するように配置する。
露出制御部208は、結像光学系201a〜201cのそれぞれに含まれる絞りを制御して露出量を制御する。記憶部207は、被写体面101に対して結像光学系201a〜201cごとに露出量を変えて取得した複数の入力画像と、結像光学系201a〜201cごとの露出量の情報が記憶される。複数の入力画像は、視点が互いに異なる複数の視点画像である。
なお、記憶部207には、結像光学系201a〜201cの露出量を同じにして該露出量を変化させながらの連写により取得した複数の入力画像と、それら画像に対応する露出量の情報とを記憶させるようにしてもよい。
複数の入力画像に輝度飽和領域が存在する少なくとも1つの入力画像が存在する場合、その輝度飽和領域を含む画像が輝度値を推定する対象画像となる。記憶部207で記憶された情報は、画像処理部209に送られる。
画像処理部209のうち整形処理部211は、記憶部207から送られた情報を用いて、輝度飽和検出部212にて輝度飽和領域を含む入力画像における輝度飽和領域を検出する。そして、輝度飽和推定部213にて他の画像における輝度飽和領域に対応する領域の輝度値を推定する。また、輝度レベル調整部217にて、複数の入力画像の輝度値を調整する。輝度飽和領域の検出と輝度値の推定の詳細については後述する。さらに、画像処理部209のうちぼけ付加処理部111は、ぼけ付加処理を行う。
本実施例にて行う入力画像からぼけ付加画像を生成する画像処理(画像処理方法)について、図4に示したフローチャートを用いて説明する。本処理は、コンピュータとしての画像処理部209がコンピュータプログラムである画像処理プログラムに従って実行する。
ステップS021では、画像処理部209は、結像光学系201a〜201cごとに露出を変えた複数の入力画像(視点画像)を取得する。結像光学系201a〜201cの露出量を同じにして該露出量を変化させながらの連写により露出量が異なる複数の入力画像を取得してもよい。
ステップS022、ステップS023およびステップS024は、画像処理部209が、整形処理を行う整形工程である。ステップS022では、画像処理部209(輝度飽和検出部212)は、ステップS021で得た複数の入力画像の中で輝度飽和領域が存在する少なくとも1つの画像を選択し、その輝度飽和領域を検出する。図11には、複数の入力画像の中で輝度飽和領域5が存在する画像(以下、輝度飽和画像という)を示している。
ステップS023では、画像処理部209(輝度飽和推定部213)は、ステップS022にて検出した輝度飽和領域5の本来の輝度値を推定する。ステップS021で取得した複数の入力画像のうち輝度飽和画像中の輝度飽和領域に対応する領域の輝度値が飽和値以下になっている画像を画像Wとする。
図12を用いて輝度値の推定について説明する。図12(a)は、図11に示した輝度飽和領域5および画像Wにおける対応領域を示している。図12(b)は、図12(a)中のS−E断面における輝度分布を示している。輝度飽和していない画像Wから、輝度飽和画像の輝度値を推定するために以下の式(4)を用いる。すなわち、画像Wの輝度分布に、輝度飽和画像の露出量と画像Wの露出量の比を乗じることによって、図12(b)中に実線で示すように飽和値以上となっている輝度分布を推定することができる。
なお、輝度値を推定する方法として、輝度飽和画像と画像Wとの輝度飽和していない領域を比較する方法を用いてもよい。
ステップS024では、画像処理部209(輝度レベル調整部217)は、推定した輝度値と各入力画像(視点画像)を取得した際の露出量とに基づいて、複数の入力画像の輝度値(輝度レベル)を合わせる。具体的には、入力画像の中で任意の画像を選択し、他の画像の輝度値(推定輝度値を含む)を参照しつつ、選択した画像の露出量と該他の画像の露出量との比を該他の画像に乗じて輝度値を合わせる。
ここで、本実施例において、再構成処理前に輝度飽和領域の輝度値の推定と複数の入力画像(視点画像)間での輝度値の調整とを行う理由について説明する。まず、再構成処理時に視差のある複数の入力画像の輝度値を同等に揃えておかないと、異なる露出の画像を用いて再構成処理したことになり不自然な再構成画像が生成される。また、再構成処理前に輝度飽和領域を含まない画像に輝度値を合わせる場合には、輝度飽和画像の輝度飽和領域の輝度値を推定してから輝度を合わせる必要がある。このため、再構成処理前に輝度飽和領域の輝度値の推定を行って、複数の入力画像の輝度値を同等にするよう調整する必要がある。
図4において、ステップS025では、画像処理部209(画像再構成部109)は、輝度値を調整した複数の視点画像を再構成して1つの視点画像としての中間画像を生成する。
次にステップS026では、画像処理部209(ぼけ付加処理部111)は、実施例1と同様にぼけ関数を生成する。そして、ステップS027では、実施例1と同様に、ぼけ関数の情報を持つぼけフィルタを中間画像にかけてぼけ付加画像を生成する。最後に、ステップS028では、画像処理部209は、ぼけ付加画像を出力する。
なお、実施例1にて説明した画像回復処理に、本実施例で推定した輝度値を利用することがより好ましい。図19(a)に示すように輝度飽和領域の輝度値は本来の輝度分布とは異なり、飽和値で一定である。この状態で画像回復処理を行うと正確な回復画像が得られない。そこで、輝度飽和領域の本来の輝度値を推定した上で画像回復処理を行うことによって、正確な回復画像が得られる。
本実施例によれば、再構成処理前に輝度飽和領域での輝度値の推定と複数の視点画像間での輝度値の調整とを行うことで、再構成処理時とぼけ付加時に問題となる輝度飽和領域の情報の欠落を改善することができる。
図5には、本発明の実施例3である画像処理装置307とこれとは別の撮像装置219の構成を示している。図5において、実施例1(図1)または実施例2(図3)と共通する構成要素には実施例1と同符号を付して説明に代える。本実施例では、実施例2と同様に再構成処理(およびぼけ付加処理)の前に輝度飽和領域の輝度推定処理を行うが、輝度レベル調整処理は再構成処理の後に行う。再構成処理の前に輝度飽和領域の輝度値の推定を行う理由は実施例2で述べた通りであり、再構成処理の後に輝度レベルの調整を行う理由については後述する。
図5において、レンズアレイ303は、結像光学系102の被写体面101に対する像側共役面305よりも物体側に配置されている。レンズアレイ303により、像側共役面305と撮像素子304とが共役関係になっている。被写体面101からの光線は、結像光学系102およびレンズアレイ303を通過した後、該光線の被写体面101上での位置と角度に応じて撮像素子304の異なる画素(撮像画素)に入射する。これにより、光線の強度分布と方向(角度)の情報が取得される。この情報を取得する際に、光学系制御部115と露出制御部208により結像光学系102の露出量が制御されている。
本実施例では、複数回の撮像により露出量が異なる複数の入力画像を取得する。ただし、1回の撮像で異なる露出の複数の入力画像を取得してもよい。この場合、露出制御部208は、レンズアレイ303の各マイクロレンズに対応した光透過率が異なるフィルタとして機能する。そして、撮像素子304により、視点が異なる複数の小画像が並んだ画像が取得される。
なお、レンズアレイ303を、像側共役面305よりも像側に配置し、レンズアレイ303によって像側共役面305と共役関係となるように撮像素子304を配置してもよい。
画像処理装置307は、整形処理と再構成処理とぼけ付加処理とを行うコンピュータ機器である。画像処理装置307で処理された画像情報は、記録媒体318、表示機器316および出力機器317のうち少なくとも1つに出力される。記録媒体318は、半導体メモリ、ハードディスク、ネットワーク上のサーバー等である。表示機器316は、液晶ディスプレイやプロジェクタ等である。出力機器317は、プリンタ等である。画像処理装置307には表示機器316が接続され、画像情報が表示機器316へ転送される。ユーザーは、表示機器316を介して画像を確認しながら作業を行うことができる。
画像処理装置307内に設けられた記憶部314には、撮像装置319の結像光学系102とレンズアレイ303の光学特性、撮像条件および撮像装置319から取得した入力画像が記憶される。画像処理装置307には、実施例1で説明した距離情報取得部108と、実施例2で説明した整形処理部211(ただし、再構成処理の後に輝度レベルの調整を行う)も設けられている。
本実施例にて行う入力画像からぼけを付加した画像(ぼけ付加画像)を生成する画像処理(画像処理方法)について、図6に示したフローチャートを用いて説明する。本処理は、コンピュータ機器としての画像処理装置307がコンピュータプログラムである画像処理プログラムに従って実行する。
ステップS031では、画像処理装置307は、撮像装置319にて生成された、同一の撮像範囲を異なる露出での撮像により生成された複数の入力画像を取得する。
次にステップS032では、画像処理装置307(距離情報取得部108)は、実施例1にて説明したように、複数の入力画像が持つ視差情報を用いて又は他の方法により被写体の距離情報を取得する。
ステップS033およびステップS034は、画像処理装置307が、整形処理を行う整形工程である。ステップS033では、画像処理装置307(輝度飽和検出部212)は、ステップS031で取得した複数の入力画像のうち輝度飽和画像における輝度飽和領域を検出する。
次にステップS034では、画像処理装置307(輝度飽和推定部213)は、実施例2で説明したように輝度飽和領域の本来の輝度値を推定する。次にステップS035では、画像処理装置307(輝度飽和推定部213)は、推定した輝度値を輝度飽和画像の輝度飽和領域に与えた上で、角度成分のエイリアシングの出る距離に対して、距離に応じたローパスフィルタをかける。
次にステップS036では、画像処理装置307(画像再構成部109)は、ローパスフィルタ処理された入力画像を用いて中間画像の再構成処理を行う。
続いてステップS037では、画像処理装置307(ぼけ付加処理部111)は、実施例1と同様に、ステップS032で取得した被写体の距離情報に基づいてぼけフィルタを生成する。
さらにステップS038では、画像処理装置307(輝度レベル調整部217)は、中間画像において輝度飽和領域の輝度レベルの調整を行うとともに、中間画像に対してぼけフィルタをかける。輝度レベルを調整する処理とぼけフィルタをかける処理の順番は、望ましくは輝度レベルの調整処理を行った後にぼけフィルタをかける処理を行うとよい。これは、ぼけを付加した後に輝度の調整をしても正確にF値の小さい結像光学系の輝度飽和領域のぼけを再現することはできないからである。輝度レベルの調整後にぼけフィルタをかける場合、推定した輝度値を輝度飽和領域の輝度値に反映させた上でぼけフィルタをかけることができる。これにより、ぼけフィルタをコンボリューションした後、飽和値より大きい輝度値は飽和値として輝度値に反映される。
一方、ぼけフィルタをかけた後に輝度レベルを調整する場合は、まず中間画像に対してぼけフィルタのコンボリューションを行う。そして、ぼけが付加された画像に対して、ぼけの付加前の輝度飽和領域の輝度値と推定した輝度値との比で、ぼけ付加前の輝度飽和領域の輝度を比例倍する。
ただし、輝度レベル調整はこれに限定されたものでなく、より大きい輝度値や小さい輝度値に調整してもよい。また、輝度レベルの調整は、再構成処理後に行うことが望ましい。これは、輝度レベルを任意に調整したい場合、再構成処理を毎回行う必要がないので、処理を軽減できるからである。
最後に、ステップS039では、画像処理装置307は、ぼけ付加画像を出力する。
本実施例によれば、実施例2と同様に再構成処理時とぼけ付加時に問題となる輝度飽和領域の情報の欠落を改善することができ、また輝度レベルを調整してF値の小さい結像光学系によるぼけを再現することができる。
以上説明した各実施例は代表的な例にすぎず、本発明の実施に際しては、各実施例に対して種々の変形や変更が可能である。