(57)【特許請求の範囲】
【請求項１】
複数の視点に対応する複数視点画像データを合成することにより合成画像データを生成する画像処理装置であって、
前記合成画像データの仮想合焦距離を入力する入力手段と、
前記複数視点に含まれる視点から前記合成画像データにおける被写体までの距離を示す距離情報を入力する距離情報取得手段と、
前記複数視点の位置関係を示す情報を入力し、前記仮想合焦距離、前記距離情報、及び前記位置関係を示す情報に基づいて、前記複数視点画像データに適用して画像にボケを与えるフィルタのサイズを決定する決定手段と、
前記複数視点画像データに対して、前記決定手段で決定されたサイズの前記フィルタを用いてフィルタ処理を行うフィルタ処理手段と、
前記フィルタ処理がなされた複数視点画像データを合成して、合成画像データを生成する生成手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記距離情報は、領域ごとの被写体までの距離を有し、
前記フィルタ処理手段は、前記領域ごとの被写体までの距離を示す距離情報に基づいて、前記複数視点画像データに対してフィルタ処理を行う
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記領域は画素であることを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記複数視点の位置関係を示す情報は、前記複数視点の間隔を示すことを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記距離情報取得手段は、前記複数視点画像データが示す画像の間のオプティカルフローを算出することにより、前記被写体までの距離を示す距離情報を取得することを特徴とする請求項１乃至４のいずれか１項に記載の画像処理装置。
【請求項６】
前記距離情報取得手段は、測距センサを用いて、前記被写体までの距離を示す距離情報を取得することを特徴とする請求項１乃至４のいずれか１項に記載の画像処理装置。
【請求項７】
前記フィルタは、ローパスフィルタであることを特徴とする請求項１乃至４のいずれか１項に記載の画像処理装置。
【請求項８】
前記複数の視点から撮像された画像内のピントがあっている領域を特定する特定手段をさらに備え、
前記フィルタ処理手段は、前記ピントがあっている領域以外の領域に対して、前記ピントがあっている領域よりもより低周波の領域にパワーを集中させるようなローパスフィルタを作用させる
ことを特徴とする請求項７に記載の画像処理装置。
【請求項９】
複数の視点に対応する複数視点画像データを合成することにより合成画像データを生成する画像処理方法であって、
前記合成画像データの仮想合焦距離を入力するステップと、
前記複数視点に含まれる視点から前記合成画像データにおける被写体までの距離を示す距離情報を入力するステップと、
前記複数視点の位置関係を示す情報を入力し、前記仮想合焦距離、前記距離情報、及び前記位置関係を示す情報に基づいて、前記複数視点画像データに適用して画像にボケを与えるフィルタのサイズを決定するステップと、
前記複数視点画像データに対して、前記決定するステップで決定されたサイズの前記フィルタを用いてフィルタ処理を行うステップと、
前記フィルタ処理がなされた複数視点画像データを合成して、合成画像データを生成するステップと
を含むことを特徴とする画像処理方法。
【請求項１０】
コンピュータを、請求項１乃至８のいずれか１項に記載の画像処理装置として機能させるためのプログラム。
【請求項１１】
複数の視点に対応する複数視点画像データを合成することにより合成画像データを生成する画像処理装置であって、
前記合成画像データの仮想合焦距離を入力する第１の入力手段と、
前記複数視点に含まれる視点から前記合成画像データにおける被写体までの距離を示す距離情報を入力する第２の入力手段と、
前記仮想合焦距離及び前記距離情報に基づいて、前記複数視点画像データによって表されるボケ画像に適用するフィルタ処理を決定する決定手段と、
前記複数視点画像データによって表される前記ボケ画像に対して、前記決定手段で決定された前記フィルタ処理を行うフィルタ処理手段と、
前記フィルタ処理後の前記複数視点画像データによって表される前記ボケ画像に位置合わせを行ない、当該位置合わせ後の前記複数視点画像データによって表される前記ボケ画像を合成することにより合成画像データを生成する生成手段と
を備え、
前記被写体までの距離と前記仮想合焦距離との差は、前記位置合わせ後の前記複数視点画像データによって表される前記ボケ画像間の前記被写体の画素位置における差が増加すると、増加する
ことを特徴とする画像処理装置。
【請求項１２】
前記位置合わせに用いる前記複数視点画像データによって表される前記ボケ画像の各画素のシフト量は、画素位置に関わらず各ボケ画像において一定であることを特徴とする請求項１１に記載の画像処理装置。
【請求項１３】
前記距離情報は、前記複数視点の各視点にそれぞれ対応する複数の距離マップを含み、各画素に対応する被写体の距離を示し、
前記フィルタ処理手段は、前記複数視点画像データによって表される前記ボケ画像のそれぞれに対し、対応する距離マップを用いて前記フィルタ処理を行なう
ことを特徴とする請求項１１に記載の画像処理装置。
【請求項１４】
複数の視点に対応する複数視点画像データを合成することにより合成画像データを生成する画像処理方法であって、
前記合成画像データの仮想合焦距離を入力するステップと、
前記複数視点に含まれる視点から前記合成画像データにおける被写体までの距離を示す距離情報を入力するステップと、
前記仮想合焦距離及び前記距離情報に基づいて、前記複数視点画像データによって表されるボケ画像に適用するフィルタ処理を決定するステップと、
前記複数視点画像データによって表される前記ボケ画像に対して、前記決定するステップで決定された前記フィルタ処理を行うステップと、
前記フィルタ処理後の前記複数視点画像データによって表される前記ボケ画像に位置合わせを行ない、当該位置合わせ後の前記複数視点画像データによって表される前記ボケ画像を合成することにより合成画像データを生成するステップと
を含み、
前記被写体までの距離と前記仮想合焦距離との差は、前記位置合わせ後の前記複数視点画像データによって表される前記ボケ画像間の前記被写体の画素位置における差が増加すると、増加する
ることを特徴とする画像処理方法。
【請求項１５】
コンピュータを、請求項１１乃至１３のいずれか１項に記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多視点の画像データを用いた画像の合成処理に関する。
【背景技術】
【０００２】
これまで、カメラのピント調整を誤って撮像した場合は、ピント調整をやり直して再撮像する必要があった。また、奥行きの異なる複数の被写体に対してそれぞれにピントが合った画像を得たい場合には、被写体毎にピントを合わせた撮像を複数回行う必要があった。
【０００３】
近年、光学系に新たな光学素子を追加することで多視点からの画像を取得し、後で画像処理によってピント位置を調節すること（リフォーカス）が可能なライトフィールドフォトグラフィという技術が発展している。
【０００４】
この技術を用いれば、撮像後にピント調整を行えるため、撮像時のピント調整の失敗を画像処理で補うことができるという利点がある。さらに、画像処理方法を変えることで画像中の任意の被写体にピントを合わせた複数の画像を一枚の撮像画像から得る事ができ、撮像回数を減らす事ができるという利点もある。
【０００５】
ライトフィールドフォトグラフィでは、多視点の画像データから、空間中の複数の位置について、それぞれの位置を通過する光線の方向と強度（ライトフィールド、以下、「ＬＦ」という。）を計算する。そして、得られたＬＦの情報を用いて、仮想の光学系を通過して仮想のセンサに結像した場合の画像を計算する。このような仮想の光学系やセンサを適宜設定する事で、リフォーカスも可能となる。ＬＦに関する数学的性質や数学的基礎などはＲ.ＮＧらによって議論されている（非特許文献１）。以降では多視点の画像データから仮想のセンサが得る画像データを計算する処理を合成処理と呼ぶ。
【０００６】
ＬＦを取得するための撮像技術としてはメインレンズの後ろにマイクロレンズアレイを置いたPlenoptic カメラや、小型のカメラを並べたカメラアレイが知られている。いずれの手法においても取得したＬＦから、仮想センサ上の画像データを撮像後に合成することができる。このとき合成するＬＦの範囲を変えることで被写界深度も撮像後に調節することが可能となる。
【０００７】
ＬＦから仮想的センサ上の画像を合成する方法として、取得した複数枚の画像データを仮想的なセンサ上に射影変換し加算して平均化する方法が知られている（特許文献１）。  しかし、特許文献１の手法ではピントから外れた被写体のボケにアーティファクトが発生し、ボケが滑らかでなくなると言う問題点がある。それを解決するための方法として、多視点の画像データから被写体の形状を推定し、その情報を元にレンズを通した光線追跡を行って画像を生成することで、滑らかなボケを再現する方法が知られている（特許文献２）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】国際公開第２００８／０５０９０４号パンフレット
【特許文献２】特開２００９−２１１２５４号公報
【非特許文献】
【０００９】
【非特許文献１】R.NG, M.Levoy, M.Bredif, G.Duval, M. Horowitz, P.Hanrahan,”Light Field Photography with a Hand-held Plenoptic Camera”(Stanford Tech ReportCTSR 2005-02, 2005)
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献２の方法では光線追跡を行うため非常に重い処理となる。また形状の推定を誤った場合、画質が劣化する要因となる。
【課題を解決するための手段】
【００１１】
本発明に係る画像処理装置は、複数の視点に対応する複数視点画像データを合成することにより合成画像データを生成する画像処理装置であって、前記合成画像データの仮想合焦距離を入力する入力手段と、前記複数視点に含まれる視点から前記合成画像データにおける被写体までの距離を示す距離情報を入力する距離情報取得手段と、前記複数視点の位置関係を示す情報を入力し、前記仮想合焦距離、前記距離情報、及び前記位置関係を示す情報に基づいて、前記複数視点画像データに適用して画像にボケを与えるフィルタのサイズを決定する決定手段と、前記複数視点画像データに対して、前記決定手段で決定されたサイズの前記フィルタを用いてフィルタ処理を行うフィルタ処理手段と、前記フィルタ処理がなされた複数視点画像データを合成して、合成画像データを生成する生成手段とを備えることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、ＬＦから仮想センサ上の画像を合成する処理において、演算量が少なく形状推定ミスに対してロバストな処理で、ピント位置以外の被写体のボケを滑らかにすることができる。
【図面の簡単な説明】
【００１３】
【図１】実施例１に係る撮像装置の主要な構成要素を示す図である。
【図２】高画質化処理部の内部構成の一例を示す図である。
【図３】カメラアレイの一部を構成する小型カメラで、それぞれ異なる距離にある被写体を撮像する様子を示す図である。
【図４】小型カメラで取得した画像の一例を示す図である。
【図５】画像合成部によって合成された画像の概念図である。
【図６】高画質化処理部における処理の流れを示すフローチャートである。
【図７】距離マップを説明するための概念図である。
【図８】カメラアレイを正面から見た図である。
【図９】フィルタ作用部の内部構成を示すブロック図である。
【図１０】（ａ）はフィルタ径算出の原理を説明するための図その１であり、（ｂ）はフィルタ径算出の原理を説明するための図その２である。
【図１１】フィルタ作用部における処理の流れを示すフローチャートである。
【図１２】（ａ）は、従来技術を適用した場合の写真であり、（ｂ）は実施例１に係る本画像処理を施した場合の写真である。
【図１３】Plenoptic カメラの場合の原理説明図である。
【図１４】被写体決定部において被写体を決定する際に用いられるユーザインタフェース画面の一例を示す図である。
【図１５】実施例３に係る撮像装置の主要な構成要素を示す図である。
【図１６】画像処理部の内部構成の一例を示す図である。
【図１７】画像処理部における処理の流れを示すフローチャートである。
【図１８】フィルタ作用部の内部構成を示すブロック図である。
【図１９】フィルタをずらして作用させる場合の概念図である。
【図２０】フィルタ作用部における処理の流れを示すフローチャートである。
【図２１】実施例３に係る本画像処理を施した場合の写真である。
【図２２】画像全体をシフトする様子を示す図である。
【図２３】距離の定義を示す図である。
【発明を実施するための形態】
【００１４】
［実施例１］
図１は、本実施例に係る撮像装置の主要な構成要素を示す図である。
【００１５】
撮像部１０１は、ズームレンズ、フォーカスレンズ、ぶれ補正レンズ、絞り、シャッター、光学ローパスフィルタ、IRカットフィルタ、カラーフィルタ、及び、CMOSやCCDなどの撮像素子などから構成され、被写体の光量を検知する。なお、本実施例では、撮像部１０１として、異なる視点からの複数の画像を複数の小型カメラを用いて同時に撮像可能なカメラアレイであることを前提としている。
【００１６】
Ａ／Ｄ変換部１０２は、被写体の光量をデジタル値に変換する。
【００１７】
被写体決定部１０３は、ユーザからの指示に基づいてピントを合わせる被写体を決定する。
【００１８】
高画質化処理部１０４は、決定された被写体の情報と、Ａ／Ｄ変換部１０２及び撮像部１０１から入力される情報を元に、画像データの合成処理等を行い、生成された合成画像データを表示部１０５に出力する。なお、高画質化処理部１０４は、独立した画像処理装置として構成してもよい。
【００１９】
表示部１０５は、合成画像データを表示する。
【００２０】
なお、図１には図示しないが、撮像装置には、上記各部を統括的に制御するＣＰＵ、ＣＰＵで実行される制御プラグラム等を格納するＲＯＭ、ＣＰＵのワークエリア等として機能するＲＡＭが備わっている。さらに、ＣＰＵからの指示に基づき撮像系の制御を行う撮像系制御部や、ユーザが各種の指示を与えるための入力部（ユーザインタフェース）も撮像装置は備えている。
【００２１】
次に、高画質化処理部１０４の詳細について説明する。
【００２２】
図２は、高画質化処理部１０４の内部構成の一例を示す図である。
【００２３】
高画質化処理部１０４は、画像バッファ２０１、距離情報取得部２０２、仮想センサ位置算出部２０３、フィルタ作用部２０４、ボケ画像バッファ２０５及び画像合成部２０６で構成される。以下、各部について説明する。
【００２４】
画像バッファ２０１は、Ａ／Ｄ変換部１０２から受け取った、視差がついた複数枚の画像のデータ（以下、「複数視点画像データ」と呼ぶ。）を一時的に格納する。
【００２５】
距離情報取得部２０２は、Ａ／Ｄ変換部１０２から受け取った複数視点の画像データを用いて、各被写体までの距離を取得する。距離の取得は、各被写体の画像間のオプティカルフローを算出するものであってもよいし、測距センサにより各被写体までの距離を測定するものであってもよい。なお、本実施例においてこの被写体までの距離は、画素単位で表すものとしているが、例えば複数の画素からなるブロック単位など所定の領域ごとに表すものであってもよい。
【００２６】
仮想センサ位置算出部２０３は、被写体決定部１０３で決定された被写体が結像する位置を算出する。算出された仮想センサの位置情報（仮想センサ位置情報）は、フィルタ作用部２０４及び画像合成部２０６に送られる。
【００２７】
フィルタ作用部（フィルタ処理部）２０４は、フィルタ処理を行う。具体的には、仮想センサの位置、被写体までの距離、撮像部１０１の特性値（パラメータ）を元にフィルタの係数を算出し、各視点における画像データに対しフィルタを作用させる。撮像部１０１の特性を表すパラメータは、カメラパラメータ入力端子（不図示）を通して入力され、フィルタを作用させた画像（ボケ画像）のデータは、ボケ画像バッファ２０５に送られる。フィルタ作用部２０４については改めて詳細に説明することとする。
【００２８】
ボケ画像バッファ２０５は、フィルタ作用部２０４から受け取ったボケ画像データを一時的に格納する。
【００２９】
画像合成部（生成部）２０６は、フィルタ作用部２０４がフィルタを作用させたボケ画像データ群にそれぞれ重みづけして、仮想センサ位置に応じて各ボケ画像データを位置合わせし、加算して、合成画像データを生成する。生成された合成画像データは、合成画像データ出力端子（不図示）を介して表示部１０５に出力される。
【００３０】
（画像合成部）
まず、画像合成部２０６について、詳しく説明する。
【００３１】
図３は、カメラアレイの一部を構成する小型カメラ３０１〜３０３で、それぞれ異なる距離にある被写体３０７〜３０９を撮像する様子を示す図である。３０４〜３０６はそれぞれ仮想センサの位置を示している。図４は、小型カメラ３０１で取得した画像（４００）を示している。図示していないが、小型カメラ３０２、３０３で取得する画像は、各被写体３０７〜３０９の距離に応じた視差分だけ被写体がずれた画像になる。
【００３２】
画像合成部２０６は、小型カメラ３０１〜３０３で取得した３枚の画像のそれぞれにある重みをかけ、仮想センサ位置に応じた位置合わせを行って、画像を加算する。
【００３３】
図５は、画像合成部２０６によって合成された画像の概念図である。５０１はピント位置を３０４にしたときの合成後の画像である。５０１では被写体３０７にピントが合っており、被写体３０８、３０９にはボケが発生している。また、被写体３０８と被写体３０９とでは、被写体３０９の方がよりボケている。
【００３４】
そして、５０２はピント位置を３０５にしたときの合成後の画像であり、５０３はピント位置を３０６にしたときの合成後の画像である。５０２は被写体３０８にピントが合っており、５０３は被写体３０９にピントが合っている。このようにピント位置を動かすことで、好きな被写体にピントを合わせた画像を得ることができる。
【００３５】
しかし、このままではアーティファクトが発生するので（詳しくはフィルタ径算出部４０２の説明を参照）、本実施例では、小型カメラ３０１〜３０３で撮像した画像にフィルタ作用部２０４でフィルタを作用させてピント位置からの距離に応じたボケが与えられる。
【００３６】
続いて、高画質化処理部１０４における処理の流れについて説明する。
【００３７】
図６は、高画質化処理部１０４における処理の流れを示すフローチャートである。
【００３８】
ステップ６０１において、高画質化処理部１０４は、複数視点の画像データを、画像データ入力端子（不図示）を通してＡ／Ｄ変換部１０２から受け取る。受け取った複数視点の画像データは、画像バッファ２０１及び距離情報取得部２０２に送られる。
【００３９】
ステップ６０２において、高画質化処理部１０４の距離情報取得部２０２は、受け取った複数視点画像データを用いて、各視点から見たときの被写体までの距離を算出等し、距離マップを生成する。ここで、距離の定義を図２３に示す。２３０１は小型カメラ３０１から被写体３０８までの距離を表している。本実施例における距離とは、２３０１で示すように、小型カメラから光軸と平行な方向に測った被写体までの長さのことである。但し、距離の定義はこれに限らず、２３０２に示すように小型カメラ３０１から被写体３０８までの直線距離を用いてもよい。また、距離マップとは、ある視点から見た画像において、画素値の代わりに画素に対応する被写体までの距離値を格納したデータである。図７は、距離マップを説明するための概念図である。図７において、７０１〜７０３は、小型カメラ３０１〜３０３で撮像した時のそれぞれの距離マップを画像として表したものである。生成される距離マップには実際の距離値が格納されているが、そのことが直感的に理解できるよう距離値を[0,255]に正規化して画像として表している。被写体３０７は白、被写体３０８はグレー、被写体３０９は黒で表現されているが、これは、被写体３０７が遠く（奥）に存在し、被写体３０９が近く（手前）に存在することを表している。すなわち、画素値が小さくなるほど（つまり、暗くなるほど）被写体が手前にあることを表している。なお、この距離マップの例では、被写体３０７より奥の被写体（背景）の距離値が全て被写体３０７の距離に丸められているので、被写体３０７と背景とは共に白で表現されている。
【００４０】
図６のフローチャートの説明に戻る。
【００４１】
ステップ６０３において、被写体決定部１０３は、ピントを合わせる被写体を決定する。被写体決定部１０３は、ユーザの指定に基づいて或いは公知の顔認識技術等を用いた所定の自動処理によって、ピントを合わせる被写体を決定する。図１４は、被写体決定部１０３において被写体を決定する際に用いられるユーザインタフェース画面の一例を示している。図１４において、１４００はユーザがピント位置調整を行う場合に最初に表示される画面である。この画面１４００には、ピントを合わせる被写体をユーザが任意に指定したい時に選ぶManualボタン１４０１及びピントを合わせる被写体の決定を自動で行わせる時に選ぶAutoボタン１４０２が存在している。この状態でユーザがManualボタン１４０１を押下すると画面１４１０に切り替わり、Autoボタン１４０２を押下すると画面１４２０に切り替わる。画面１４１０において、ユーザが、ピントを合わせたい被写体にカーソル１４１１を合わせてクリックすると、ピントを合わせる被写体が決定される。一方、Autoボタン１４０２を押下した場合に表示される画面１４２０には、自動でピントを合わせる処理の進行状況が表示されるプログレスバー１４２１が表示される。なお、ユーザのニーズを反映させた自動ピント合わせであれば、自動処理の内容はどのような方法でもよい。また、画面１４１０及び画面１４２０では、いずれかの小型カメラで取得された代表的な画像を１枚表示してもよいし、ある適当な仮想センサ位置で適当な重みをつけて合成した画像を表示するようにしても良い。
【００４２】
ステップ６０３で決定されたピントを合わせる被写体の情報（ピント位置情報）は、ピント位置入力端子（不図示）を介して仮想センサ位置算出部２０３に送られる。
【００４３】
図６のフローチャートの説明に戻る。
【００４４】
ステップ６０４において、仮想センサ位置算出部２０３は、受け取ったピント位置情報を元に、決定された被写体が結像する位置を算出する。
【００４５】
ステップ６０５において、フィルタ作用部２０４は、カメラアレイを構成する小型カメラで撮像された各画像に対しフィルタを作用させる。
【００４６】
ここで、撮像部１０１のカメラアレイについて説明する。図８は、撮像部１０１のカメラアレイを正面から見た図である。８０１はカメラアレイを構成する個々の小型カメラを示しており、８０２は小型カメラ８０１が並んでいる平面を示している。各小型カメラ８０１には、左上から右下に向かって、(-M,-M),(-M+1,-M),・・・(M-1,M),(M,M)のように番号が付されている。ここでは、縦・横同数の計 (2M+1)2台の小型カメラ８０１がある例を示しているが、縦・横任意の台数を並べて構わない。フィルタ作用部２０４は、まず、着目する小型カメラの番号mをm=(-M,-M)に設定し、設定されたm番目の小型カメラから見た被写体までの距離、仮想センサ位置、撮像部１０１の特性を示すパラメータを元にフィルタ係数を算出する。そして、設定されたm番目の小型カメラで撮像された画像にフィルタを作用させてボケ画像のデータを生成する。生成されたボケ画像のデータはボケ画像バッファ２０５に格納される。このような一連の処理をｍ＝（Ｍ，Ｍ）に達するまで繰り返す。なお、フィルタ作用部２０４の処理については別フローチャートを用いて詳しく説明する。
【００４７】
ステップ６０６において、画像合成部２０６は、各視点のボケ画像データに重みを乗算して加算し、合成画像データを生成する。
【００４８】
ステップ６０７において、画像合成部２０６は、生成した合成画像データを、合成画像データ出力端子（不図示）を介して表示部１０５に出力して、本処理を終了する。
【００４９】
このように本実施例では、被写体のピント位置からの距離及び小型カメラの間隔に応じて各視点画像にボケを与え、得られたボケ画像に重みづけし加算して合成画像データが得られる。
【００５０】
なお、本実施例では、画像合成部２０６で画像データを合成する前に、各小型カメラで取得した複数視点の画像データにフィルタを作用させたが、処理の順番を逆にしても良い。即ち、撮像部によって撮像された複数視点画像データを用いて合成画像を生成する画像処理装置であって、前記複数視点画像データの各画像における、ピントを合わせる被写体を決定する被写体決定手段と、決定された前記被写体が結像する仮想センサの位置を算出する仮想センサ位置算出手段と、決定された前記被写体までの距離情報を算出する距離情報取得手段と、前記各画像を合成する画像合成手段と、前記仮想センサ位置算出手段で算出された前記仮想センサ位置、前記距離情報取得手段で算出された前記距離情報および前記撮像部の特性値に基づいて、前記画像合成手段で合成された前記各画像にフィルタを作用させるフィルタ作用手段と、を備えるように構成してもよい。このような構成であれば、まず画像合成部２０６で画像データを合成し、生成された合成画像データに対して、当該合成画像データが示す画像の合焦する位置（ピント面）からの距離に応じてフィルタを作用させることになる。そして、この場合は合成画像データと同じ視点から見た距離マップを１枚だけ用いればよいことになる。
【００５１】
また、本実施例では、複数視点の画像データを、カメラアレイを採用した撮像部を有する撮像装置で撮像することで一度に得ている。しかし、例えば、１回の撮像で１枚の画像を撮像する一眼方式の撮像部を有する撮像装置１台のみを用い、視点をずらして複数回撮像することで、複数視点の画像データを得るようにしても良い。その場合は各撮像時刻における当該撮像装置に番号を振ることで、カメラアレイを採用した撮像部を有する撮像装置で撮像した場合と同様に扱うことができる。
【００５２】
（フィルタ作用部２０４における処理）
次に、フィルタ作用部２０４における処理として、ガウス分布型のローパスフィルタを用いた例について詳しく説明する。このローパスフィルタは、ピントがあっている領域以外の領域に対して、ピントがあっている領域よりもより低周波の領域にパワーを集中させるようなフィルタである。なお、ガウス分布型のローパスフィルタは一例であり、例えば、重み係数がすべて等しい移動平均フィルタなど、画像にボケを与えられるフィルタであれば適用可能であることはいうまでもない。
【００５３】
図９は、フィルタ作用部２０４の内部構成を示すブロック図である。
【００５４】
画像バッファ９０１は、高画質化処理部１０４内の画像バッファ２０１から受け取った画像データを一時的に格納する。
【００５５】
フィルタ径算出部９０２は、距離マップと仮想センサ位置情報を用いて、着目画素のフィルタのタップ（セル）の数と、その周辺画素におけるフィルタのタップの数をそれぞれ算出する。図１０の（ａ）及び（ｂ）は、フィルタ径算出の原理を説明するための図である。まず、図１０の（ａ）は、前述の図８の平面８０２に垂直で、かつ小型カメラ８０１の光軸中心を通る平面で切断した断面図である。１００１は被写体を表し、１００３は小型カメラ８０１のレンズを表している。１００２はレンズ１００３の光軸中心と被写体１００１とを結ぶ光線である。１００４は小型カメラ８０１の撮像素子を表している。１００５は仮想センサ（ある位置に撮像素子があった場合にどのような画像が得られるかを撮像後に計算で導出するために仮想的に設置する平面）を示している。１００６は光線１００２と仮想センサ１００５との交点である。仮想センサ１００５上でピントが合う被写体の場合は、被写体１００１が仮想センサ１００５上に存在し、交点１００６と被写体１００１は一致することになる。ここで、
・  撮像素子１００４とレンズ１００３の距離をσreal、仮想センサ１００５とレンズ１００３の距離をσvirtual、被写体１００１とレンズ１００３の距離をσobjとする。（小型カメラ８０１が各々ズーム機能を備えている場合はσrealは可変パラメータとなる。）
・  m番目の小型カメラ８０１のレンズ１００３の光軸中心の座標を(um, 0)、撮像素子１００４の座標を(xm, σreal)とする。
・  被写体１００１の座標を(X', -σobj)、交点１００６の座標を(X, -σvirtual)とし、この場合のσvirtual は正の値を取るものとする。
・  m番目の小型カメラ８０１下の撮像素子１００４の座標(xm, σreal)が取得する光の強度をL(um ,xm)とする。（引数はumとxmを結ぶ光線であることを意味している。）  ・  um、xm、X、X'は、それぞれ平面８０２上の２次元ベクトルを表すものとする。 
図１０の（ｂ）において、被写体１００１が点光源であると仮定し、それを仮想センサ面１００５上に投影すると、１００７〜１００９に示されるように仮想センサ面１００５上に点が離れて分布する。１００７、１００８、１００９はそれぞれ点光源１００１が仮想センサ面上１００５に投影された点像である。Ｄは、隣り合う小型カメラの間隔である。このとき各点像１００７〜１００９の間隔ΔDは、相似の関係から以下の式で表される。
【００５６】
【数１】
0005968107.tif 000002
【００５７】
そして、点像１００７〜１００９の間隔は、撮像素子１００４上ではσreal/σvirtual倍に縮小されるので、撮像素子１００４上での点像１００７〜１００９の間隔ΔＤ'は、以下の式で表される。
【００５８】
【数２】
0005968107.tif 000003
【００５９】
ここで、α≡σreal/σvirtual、αobj≡σreal/σobjとした。このように点像が分離して仮想センサ上に投影されることが、ボケにアーティファクトが生じる原因である。
【００６０】
このアーティファクトを抑制するために、仮想センサ上の画像にフィルタをかけてボケを与える。そのことで、点光源の仮想センサ上でのボケを滑らかにする。本実施例におけるフィルタ径算出部９０２は、A、εを適当な定数として、以下の場合分けを行ってフィルタのタップ数σを算出する。
1) | α-αobj(x,y)|D<εの場合
σ(x,y)=0に設定
2)ε≦| α-αobj(x,y)|Dの場合
σ(x,y)=A| α-αobj(x,y)|Dに設定
1)はピント位置近傍にある被写体に対してはフィルタを作用させないことを意味しており、2)はピント位置から外れている被写体にフィルタを作用させることを意味している。
【００６１】
ただし、ピント面の被写体が十分解像し、ピント位置以外の被写体のボケが滑らかになるのであれば、フィルタのタップ数の決め方は1)〜2)の場合に限られない。
【００６２】
以上のようにして、フィルタ径算出部９０２は、被写体までの距離、仮想センサの位置、小型カメラの間隔の値を参照し、フィルタのタップ数を算出する。なお、１台のカメラで複数回撮像する場合のDは、各時刻におけるカメラ間の距離となる。
【００６３】
作用判定部９０３は、着目画素と周辺画素の距離の大小関係を比較し、周辺画素値に係数をかけて着目画素値に加算するか否かを決定する。作用判定部９０３における判定処理の詳細については後述する。
【００６４】
係数算出部９０４は、周辺画素が着目画素に及ぼす影響を表す係数を算出する。
【００６５】
演算部９０５は、周辺画素の画素値に係数算出部９０４で算出された係数を乗算して、画像バッファ９０１から読み出したボケ画像の着目画素値に加算する。
【００６６】
図１１は、フィルタ作用部２０４における処理の流れを示すフローチャートである。
【００６７】
ステップ１１０１において、フィルタ作用部２０４は、まず、カメラアレイを構成する複数の小型カメラのうち着目する小型カメラの番号mを、m=(-M,-M)に設定する。
【００６８】
ステップ１１０２において、フィルタ作用部２０４は、着目する小型カメラｍの画像データを、画像データ入力端子（不図示）を通して受け取る。受け取った画像データは、画像バッファ９０１に格納される。
【００６９】
ステップ１１０３において、フィルタ作用部２０４は、着目画素の画素位置（x,y)を初期値に設定し、画像バッファ９０１に格納されているボケ画像Iblurの画素値を全ての画素について0に設定する。この場合において、着目画素の画素位置の初期値は、画像の一番左上に位置する画素とし、画素位置は左上から右下に向かって順次更新していくものとする。
【００７０】
ステップ１１０４において、フィルタ作用部２０４は、周辺画素の画素位置(x',y') を初期値に設定し、係数和sumを0に設定する。
【００７１】
ステップ１１０５において、フィルタ径算出部９０２は、着目画素及び周辺画素のフィルタ径、すなわち、着目画素のフィルタのタップ数σ(x,y)と、周辺画素のフィルタのタップ数σ(x',y')を算出する。
【００７２】
ステップ１１０６において、作用判定部９０３は、フィルタを作用させる対象画素であるかどうかを判定する。すなわち、本ステップにおいて、着目画素が、被写体決定部１０３で決定された被写体であってピントがあっている被写体を構成する画素であるかどうかが特定される。具体的には、着目画素に像を結ぶ被写体の奥行きをd(x,y)、周辺画素に像を結ぶ被写体の奥行きをd(x',y')とし、以下の式（３）及び式（４）を用いて判定する。ここで、式（３）は着目画素のオクルージョンの有無を判定するための条件式であり、式（４）は前ボケを奇麗に生成するための条件式である。
【００７３】
【数３】
0005968107.tif 000004
【００７４】
【数４】
0005968107.tif 000005
【００７５】
式（３）及び式（４）のいずれかを満たす場合（対象画素である場合）はステップ１１０７に進む。一方、いずれの式も満たさない場合（対象画素ではない場合）はステップ１１１０に進む。なお、上記式（３）及び式（４）はあくまで一例であり、オクルージョンの影響を考慮して最終的なボケを滑らかにすることができればどのような条件式を用いても構わない。
【００７６】
ステップ１１０７において、係数算出部９０４は、周辺画素のタップ数σ(x',y')から係数cを算出する。ここで、係数ｃはガウシアンであるとし、以下の式を用いて算出するものとする。
【００７７】
【数５】
0005968107.tif 000006
【００７８】
なお、ボケを滑らかにするような係数であればよいので、ガウシアンには限られない。
【００７９】
ステップ１１０８において、演算部９０５は、着目画素のIblurと係数和sumを更新する。具体的には、それぞれ以下の式を用いて更新がなされる。
【００８０】
【数６】
0005968107.tif 000007
【００８１】
【数７】
0005968107.tif 000008
【００８２】
ステップ１１０９において、フィルタ作用部２０４は、着目画素の周辺画素(2S+1)×(2S+1)が全て処理されたかどうかを判定する。ここで作用させるフィルタサイズの最大値を(2S+1)×(2S+1)とする。着目画素の周辺の画素(2S+1)×(2S+1)が全て処理されている場合はステップ１１１１に進む。一方、全て処理されていない場合はステップ１１１０に進む。
【００８３】
ステップ１１１０において、フィルタ作用部２０４は、周辺画素の画素位置(x',y')を更新して、ステップ１１０５に戻る。周辺画素の画素位置(x',y')は、(x-S,y-S), (x-S+1,y-S),・・・(x+S,y-S),(x-S,y-S+1),・・・(x+S,y+S)の順に更新される。つまり、着目画素位置(x,y)を中心として、(2S+1)×(2S+1)のサイズの正方形を左上から右下に向かって更新される。但し、周辺画素の画素位置が画像をはみ出すときは画像内にクリッピングされる。フィルタサイズの最大値は予め決めておいても良いし、ピントから一番離れている被写体のフィルタのタップ数を元に決めてもよい。
【００８４】
ステップ１１１１において、演算部９０５は、I(x,y)をsumで徐算する。除算された結果のI(x,y)は画像バッファ９０１に格納される。
【００８５】
ステップ１１１２において、フィルタ作用部２０４は、着目画素の画素位置(x,y)が、全ての画素を網羅したかどうかを判定する。網羅している場合は、ステップ１１１３に進む。一方、網羅していない場合は、ステップ１１１４に進む。
【００８６】
ステップ１１１３において、フィルタ作用部２０４は、ボケ画像データをボケ画像バッファ２０５に渡す。すなわち、すべての画素についてステップ１１０３〜ステップ１１１０の処理を終えたI(x,y)からなるボケ画像データがボケ画像バッファ２０５に送られ、ボケ画像バッファ２０５に格納される。
【００８７】
ステップ１１１４において、フィルタ作用部２０４は、注目画素の画素位置(x,y)を更新し、ステップ１１０４に戻る。
【００８８】
ステップ１１１５において、m＝（M，M）であるかどうかを判定する。m＝（M，M）に達している場合は本処理を終える。一方、m＝（M，M）に達していない場合はステップ１１１６に進む。
【００８９】
ステップ１１１６において、フィルタ作用部２０４は、mを更新し、ステップ１１０２に戻り、m＝（M，M）となるまで、ステップ１１０２〜１１１４の処理を繰り返す。
【００９０】
以上がフィルタ作用部２０４における処理である。
【００９１】
図１２の（ａ）及び（ｂ）は、本実施例に係る画像処理を施した場合の効果を説明するための図（写真）である。図１２の（ａ）は、従来技術（重みをすべて均等にして各視点の画像を加算）の場合、図１２の（ｂ）は本発明を適用した場合をそれぞれ示している。（ａ）と（ｂ）共に、アルファベットの書かれた背景の前に市松模様の正方形が置かれて、正方形の手前でピントが合っている状態であるが、本発明を適用した（ｂ）の方が、ボケ部分が滑らかで高画質になっている。
【００９２】
以上のとおり、本実施例の場合、被写体のピント面からの距離に応じてタップ長の異なるフィルタを画像に作用させ、それらフィルタの作用した画像をピント位置に応じて位置合わせして加算する。このことにより特許文献２に比べて少ない演算量で滑らかなボケを再現することができ、形状の推定ミスに対してロバストな処理を実現できる。
【００９３】
［実施例２］
実施例１では、多眼方式の撮像部１０１として複数の小型カメラを用いたカメラアレイを採用した態様について説明した。しかし、本発明における撮像部１０１の構成としてはカメラアレイに限定されるものではない。例えば、メインレンズの後ろにマイクロレンズアレイを置いたPlenoptic カメラを採用することも可能である。そこで、実施例２として、Plenoptic カメラを撮像部１０１に採用した場合について説明する。なお、実施例１と共通する部分については説明を省略し、差異点を中心に説明することとする。
【００９４】
図１３は、実施例１における図１０の（ａ）に相当するPlenoptic カメラの場合の原理説明図である。図１３において、１３００は被写体、１３０２は被写体から出た光線、１３０１はメインレンズ、１３０３はマイクロレンズアレイを構成するマイクロレンズ、１３０４は撮像素子、１３０５は仮想センサである。Ｄは、隣り合うマイクロレンズ１３０３の間隔である。そして、１３０６はメインレンズ１３０１によって曲げられた光線１３０２の中で、マイクロレンズ１３０３の光軸中心を通る光線を表す。光線１３０６が結像する点が１３０８であり、１３０７は仮想センサ１３０５と光線１３０６との交点である。この場合において、結像点１３０８の座標を(X', σobj)、点１３０７の座標を(X, σvirtual)とし、σvirtual、σobjは正の値を取るものとする。
【００９５】
撮像部１０１としてPlenoptic カメラを採用した場合においても、高画質化処理部１０４の構成やその処理内容は実施例１と異なるところはないのでその説明は省略する。但し、本実施例に係るフィルタ径算出部９０２における処理においては、当然のことながら上記図１３で示したσvirtual及びσobjを用いて、フィルタのタップ数が算出される。
【００９６】
なお、撮像部１０１の構成として、実施例１に係るカメラアレイや実施例２のPlenoptic カメラ以外の態様でＬＦを取得するような撮像部を採用した場合においても、同様の方法で高画質化することが可能である。
【００９７】
［実施例３］
実施例１、２では撮像後にピント位置の調整（リフォーカス）を行う際にボケを滑らかにする方法について説明した。次に、ボケを滑らかにしつつ、撮像後にピント位置だけでなく被写界深度も調節する態様について実施例３として説明する。
【００９８】
図１５は、本実施例に係る撮像装置の主要な構成要素を示す図である。実施例１に係る図１と共通する部分については説明を省略し、差異点のみ説明することとする。
【００９９】
被写界深度決定部１５０１は、ユーザからの指示に基づいて所定の被写界深度（F値）を決定する。ユーザは、不図示の操作部（ユーザインタフェース）を介して、例えば特定の数値を直接入力したり、或いはスライドバーを用いる等により、所望のF値を指定する。
【０１００】
画像処理部１５０２は、A/D変換部１０２、撮像部１０１、被写体決定部１０３、被写界深度決定部１５０１から入力される情報を元に、合成画像データを表示部１０５に出力する。なお、画像処理部１５０２は、独立した画像処理装置として構成してもよい。
【０１０１】
図１６は、画像処理部１５０２の内部構成の一例を示す図である。ここでは、図２との差異のみ説明する。
【０１０２】
ピント位置合わせ部１６０１は、仮想センサ位置算出部２０３からの仮想センサ位置情報を用いて、ピント位置の被写体が各視点の画像内で同じ位置にくるように、画像全体をそれぞれシフトさせる。
【０１０３】
フィルタ作用部２０４は、仮想センサの位置、被写体までの距離、撮像部１０１の特性値（パラメータ）、指定された被写界深度（F値）を元にフィルタの係数を算出する。そして、各視点画像にフィルタを作用させ、フィルタを作用させた画像をボケ画像バッファ２０５に格納する。
【０１０４】
画像合成部２０６は、フィルタを作用させた画像群に、それぞれ重みづけして加算して合成画像データを生成する。生成された合成画像データは、合成画像データ出力端子（不図示）を介して表示部に１０５に出力される。
【０１０５】
続いて、画像処理部１５０２における処理の流れについて説明する。
【０１０６】
図１７は、画像処理部１５０２における処理の流れを示すフローチャートである。なお、実施例１の図６のフローチャートと共通する部分については詳しい説明を省略し、ここでは差異点を中心に説明することとする。
【０１０７】
入力された多視点画像データから距離マップを生成し、ピントを合わせたい被写体を決定して、当該被写体が結像する位置を算出すると（ステップ６０１〜ステップ６０４）、ステップ１７０１に進む。
【０１０８】
ステップ１７０１において、ピント位置合わせ部１６０５は、着目する小型カメラの番号mをm=(-M,-M)に設定し、画像全体をシフトする。図２２は、画像全体をシフトする様子を示す図である。ここではピントを合わせる被写体が３０８であるとする。図２２において、２２０１は(0,0)番目の小型カメラで撮影した画像であり、２２０２はm番目の小型カメラで撮影した画像である。画像２２０１と２２０２とでは、ピント位置にある被写体３０８において２２０３で示す分だけ視差があることが分かる。画像２２０４は、視差量２２０３に等しい量のベクトル２２０５の分だけ画像２２０２全体をシフトした状態を示している。ここでは横方向にシフトさせる場合について説明したが、m番目の小型カメラが(0,0)番目の小型カメラに対して斜めや縦方向にある場合は、その方向に画像をシフトさせればよい。このような一連の処理をm＝（M，M）に達するまで繰り返す。
【０１０９】
ステップ１７０２において、フィルタ作用部１６０７は、着目する小型カメラの番号mをm＝(-M，-M)に設定し、該小型カメラから見た被写体までの距離、仮想センサ位置、撮像部１０１の特性値、被写界深度（F値）を元にフィルタ係数を算出する。そして、設定されたm番目の小型カメラで撮像された画像にフィルタを作用させてボケ画像のデータを生成する。生成されたボケ画像のデータはボケ画像バッファ２０５に格納される。このような一連の処理をm＝（M，M）に達するまで繰り返す。
【０１１０】
そして、画像合成部２０６で各視点のボケ画像データに重みづけして加算し、合成画像データが生成され、生成された合成画像データは合成画像データ出力端子（不図示）を介して表示部１０５に出力される（ステップ６０６、ステップ６０７）。
【０１１１】
このように本実施例では、所望の被写界深度、被写体のピント位置からの距離及び撮像部１０１の特性値に応じて各視点画像にボケを与え、得られたボケ画像に重みづけし加算して合成画像データを得る。
【０１１２】
なお、本実施例では、多視点の画像データを、カメラアレイを用いた多眼方式の撮像部を有する撮像装置で撮像することで一度に得ている。しかし、実施例１で説明したように、一眼方式の撮像部を有する撮像装置１台のみを用い、視点をずらして複数回撮像することで、多視点の画像データを得るようにしても良い。また、実施例２で説明したようにPlenopticカメラを用いて画像データを取得しても良い。
【０１１３】
（フィルタ作用部２０４における処理）
次に、本実施例に係るフィルタ作用部２０４における処理を詳しく説明する。
【０１１４】
図１８は、本実施例に係るフィルタ作用部２０４の内部構成を示すブロック図である。ここでは、実施例１に係るフィルタ作用部２０４の内部構成を説明した図９との差異のみ説明することとする。
【０１１５】
（フィルタ径算出部９０２について）
本実施例に係るフィルタ径算出部９０２は、出力したい被写界深度（F値）、距離マップ、仮想センサ位置情報を用いて、着目画素のフィルタのタップ（セル）の数と、その周辺画素におけるフィルタのタップの数をそれぞれ算出する。実施例１で説明したように、Ｄを小型カメラの間隔とすると、撮像素子１００４上での点像１００７〜１００９の間隔ΔD'（図１０参照。）は、式（２）で表される。
【０１１６】
【数８】
0005968107.tif 000009
【０１１７】
合成画像のボケの大きさは小型カメラの間隔Ｄに比例するので、被写界深度を調節することは仮想的にＤを調節することとみなすことができる。ここで、被写界深度はフルサイズセンサ(36mmx24mm)に換算した場合の値であるとする。出力画像のフルサイズ換算の焦点距離をfとすると、単純に合成した場合の出力画像の被写界深度（F値）は、式（８）で表すことができる。
【０１１８】
【数９】
0005968107.tif 000010
【０１１９】
ここでＭは、カメラアレイの１辺に存する小型カメラの台数が２Ｍ＋１とした場合の数値である。例えば、カメラアレイの一辺が３台の小型カメラで構成される場合には、Ｍの値は１である。
【０１２０】
よって、出力したい被写界深度（F値）をFoutとすると、対応する仮想的な小型カメラの間隔Dvirtualは以下の式（９）のようになる。
【０１２１】
【数１０】
0005968107.tif 000011
【０１２２】
そして、この場合の撮像素子上での点像の間隔ΔDvirtual’は式（９）より、式（１０）のようになる。
【０１２３】
【数１１】
0005968107.tif 000012
【０１２４】
本実施例におけるフィルタ径算出部９０２は、A、εを適当な定数として、以下の場合分けを行ってフィルタのタップ数σを算出する。場合分けの仕方は実施例１の場合と同様、以下のとおりである。
1) | α-αobj(x,y)|Dvirtual<εの場合
σ(x,y)=0に設定
2)ε≦| α-αobj(x,y)|Dvritualの場合
σ(x,y)= A| α-αobj(x,y)| Dvritualに設定
1)はピント位置近傍にある被写体に対してはフィルタを作用させないことを意味しており、2)はピント位置から外れている被写体にフィルタを作用させることを意味している。
【０１２５】
ただし、ピント面の被写体が十分解像し、ピント以外の被写体のボケが滑らかになるのであれば、フィルタのタップ数の決め方は1)、2)の場合に限られない。
【０１２６】
以上のようにして、本実施例に係るフィルタ径算出部９０２は、出力したい被写界深度、被写体までの距離、仮想センサの位置を参照し、フィルタのタップ数を算出する。
【０１２７】
（ずれ算出部１８０１について）
ずれ算出部１８０１は、フィルタの中心をずらして作用させる場合のずれ量を計算する。ピント位置合わせ部１６０１が位置合わせした状態では、ピント位置以外の被写体は各画像間で以下の式（１１）で表される間隔ΔD’の視差がついている。
【０１２８】
【数１２】
0005968107.tif 000013
【０１２９】
ここで、指定された被写界深度（F値）でFoutを出力するためには、ピント位置以外の被写体の各画像間の視差を式（１２）のように変更する必要がある。
【０１３０】
【数１３】
0005968107.tif 000014
【０１３１】
カメラアレイの全小型カメラで撮像された個々の画像をすべて合成する場合のF値であるFcamは、式（１３）で表すことができる。
【０１３２】
【数１４】
0005968107.tif 000015
【０１３３】
したがって、(m,m')番目の撮像部の場合、フィルタの中心を式（１４）で表される量だけずらして画像に作用させる。
【０１３４】
【数１５】
0005968107.tif 000016
【０１３５】
ここで、Δrealは画素ピッチであり、式変形に式（２）、式（１２）、式（８）、式（１３）を用いた。フィルタをずらして作用させることは、被写体を式（１４）の量だけずらしてボケを与えることに相当し、各画像間の被写体の視差をΔDvirtual’にすることができる。このことで、出力画像のF値をFoutになるように調節する。
【０１３６】
このようにして、ずれ算出部１８０１では、式（１４）の値が算出される。
【０１３７】
図１９は、フィルタの中心をずらして作用させる様子を説明する図である。図１９の(ａ）は、ずれがない場合のフィルタである。図１９の（ｂ）は、図１９の(ａ）で示すフィルタの中心を（１，１）画素ずらしたフィルタである。太字で記載されたセル（（ａ）では0.06、（ｂ）では0.048）が、着目画素の位置である。図１９の（ｂ）のようにフィルタをずらして作用させることで、この場合は（１，１）画素だけ被写体の像をずらすことができる。
【０１３８】
以上をまとめると、本実施例では、フィルタの中心をずらして作用させることにより、
画像上の被写体の像の位置をずらし、視差量を調節する。そのことで、図１０において、小型カメラの間隔を仮想的にＤからDvirtualに変更した効果を得る。また、フィルタ径もDvirtualの間隔に応じたフィルタ径にすることで、小型カメラの間隔がDvirtualの場合のボケを再現することが可能になる。
【０１３９】
図２０は、本実施例に係るフィルタ作用部２０４における処理の流れを示すフローチャートである。ここでは、実施例１に係るフィルタ作用部２０４における処理の流れを説明した図９のフローチャートとの差異のみ説明することとする。
【０１４０】
ステップ２００１において、フィルタ径算出部９０２は、着目画素及び周辺画素のフィルタ径、すなわち、着目画素のフィルタのタップ数σ(x,y)と、周辺画素のフィルタのタップ数σ(x',y')を算出する。
【０１４１】
続くステップ２００２において、ずれ算出部１８０１は、式（１４）に基づいて周辺画素におけるフィルタのずれ量(m,m')×δ(x',y')を算出する。
【０１４２】
ステップ２００３において、係数算出部９０４は、周辺画素のタップ数σ(x',y')、フィルタのずれ量(m,m')×δ(x',y')から係数cを算出する。ここでは、係数ｃはガウシアンであるとし、以下の式を用いて算出するものとする。
【０１４３】
【数１６】
0005968107.tif 000017
【０１４４】
なお、係数ｃはボケを滑らかにするような係数であればよいので、ガウシアンには限らない。
【０１４５】
図２１の（ａ）及び（ｂ）は、本実施例に係る画像処理を施した場合の効果を説明するための図（写真）である。図１２と同じシーンを撮像したもので、市松模様の正方形にピントが合っている。図２１の（ａ）と（ｂ）は共に画像取得後に被写界深度を調節した一例で、（ａ）は被写界深度が浅く、（ｂ）は被写界深度が深いことが分かる。被写界深度の調節は、撮像部が並んでいる範囲を入射瞳とみなした場合のF値であるFcamまでの任意のF値に調節することが可能である。
【０１４６】
以上のとおり、本実施例の場合、出力したい被写界深度に応じてフィルタ径を調節し、フィルタをずらして作用させることで、ボケを滑らかにしつつ撮像後の連続的な被写界深度調節が可能になる。
【０１４７】
（その他の実施形態）
また、本発明の目的は、以下の処理を実行することによっても達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出す処理である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【図１】
0005968107.tif 000018
【図２】
0005968107.tif 000019
【図３】
0005968107.tif 000020
【図４】
0005968107.tif 000021
【図５】
0005968107.tif 000022
【図６】
0005968107.tif 000023
【図７】
0005968107.tif 000024
【図８】
0005968107.tif 000025
【図９】
0005968107.tif 000026
【図１０】
0005968107.tif 000027
【図１１】
0005968107.tif 000028
【図１３】
0005968107.tif 000029
【図１４】
0005968107.tif 000030
【図１５】
0005968107.tif 000031
【図１６】
0005968107.tif 000032
【図１７】
0005968107.tif 000033
【図１８】
0005968107.tif 000034
【図１９】
0005968107.tif 000035
【図２０】
0005968107.tif 000036
【図２２】
0005968107.tif 000037
【図２３】
0005968107.tif 000038
【図１２】
0005968107.tif 000039
【図２１】
0005968107.tif 000040