(57)【要約】【課題】  ぼけ状態が異なる画像同士で、対応点を精度良く探索する。【解決手段】  画像処理装置が、第一の視点から被写体を見た場合の第一の画像と、前記第一の視点とは異なる第二の視点から前記被写体を見た場合の画像であり、前記第一の画像とぼけ状態が異なる画像である第二の画像とを取得する取得手段と、  前記第一の画像と前記第二の画像のうちの少なくとも一方のぼけ状態を変化させる処理手段と、  前記処理手段によりぼけ状態が変化された後の、前記第一の画像と前記第二の画像とを比較することで、前記第一の画像と前記第二の画像との間で同一の被写体に対応する画像領域を決定する決定手段とを有する。【選択図】  図７
2015135661.tif 000002
【特許請求の範囲】
【請求項１】
第一の視点から被写体を見た場合の第一の画像と、前記第一の視点とは異なる第二の視点から前記被写体を見た場合の画像であり、前記第一の画像とぼけ状態が異なる画像である第二の画像とを取得する取得手段と、
前記第一の画像と前記第二の画像のうちの少なくとも一方のぼけ状態を変化させる処理手段と、
前記処理手段によりぼけ状態が変化された後の、前記第一の画像と前記第二の画像とを比較することで、前記第一の画像と前記第二の画像との間で同一の被写体に対応する画像領域を決定する決定手段とを有することを特徴とする画像処理装置。
【請求項２】
前記処理手段は、前記第一の画像と前記第二の画像のぼけ状態を合わせるように、前記第一の画像と前記第二の画像のうちの少なくとも一方のぼけ状態を変化させることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記処理手段による前記ぼけ状態の変化の度合いは、前記ぼけ状態を変化させる画像において、画像領域ごとに、前記画像領域の位置に基づいて決定されることを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記第一の画像および前記第二の画像に作用させるぼけフィルタと前記画像領域の位置との対応関係を示すデータベースを更に有し、
前記処理手段は、前記データベースを参照して、前記ぼけ状態の変化の度合いを決定することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記処理手段は、前記対応する画像領域の候補である、前記第一の画像における第一の画像領域と、前記第二の画像における第二の画像領域のうちの少なくとも一方のぼけ状態を、前記第一の画像領域および前記第二の画像領域の位置関係に基づいて決定された変化の度合いによって変化させ、
前記決定手段は、前記第一の画像領域および前記第二の画像領域の間の、少なくとも一方のぼけ状態が変化された後の類似度に基づいて、前記第一の画像領域および前記第二の画像領域が対応する画像領域であるかどうかを決定することを特徴とする請求項１乃至４のいずれか一項に記載の画像処理装置。
【請求項６】
前記変化の度合いは、前記第一の画像に対応する視点と前記第二の画像に対応する視点との間の距離と、前記第一の画像領域の前記第一の画像における位置と、前記第二の画像領域の前記第二の画像における位置とに基づいて決定されることを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記決定手段により決定された、前記第一の画像および前記第二の画像の間で対応する画像領域に基づいて、前記被写体の距離情報を導出する導出手段を更に有することを特徴とする請求項１乃至６のいずれか一項に記載の画像処理装置。
【請求項８】
ユーザ指示に基づいて画像の視点位置とぼけ状態とを示す画像情報を入力する入力手段と、
前記決定手段により決定された、前記第一の画像および前記第二の画像の間で対応する画像領域と、前記入力手段により入力された前記画像情報とに基づいて、前記画像情報が示す視点位置およびぼけ状態に対応する仮想視点画像を生成する生成手段とを更に有することを特徴とする請求項１乃至７のいずれか一項に記載の画像処理装置。
【請求項９】
前記取得手段は、前記第一の画像および前記第二の画像と同一の被写体を含む第三の画像を更に取得し、
前記第一の画像および前記第三の画像は、それぞれ前記第二の画像よりも前記仮想視点画像のぼけ状態に近いぼけ状態の画像であり、
前記第二の画像は、前記第一および第三の画像よりも前記仮想視点画像の視点位置に近い視点位置の画像であり、
前記処理手段は、前記第二の画像および前記第三の画像のうちの少なくとも一方のぼけ状態を更に変化させ、
前記決定手段は、前記変化したぼけ状態に基づいて、前記第二の画像および前記第三の画像の間で対応する画像領域を更に決定し、
前記生成手段は、前記第一の画像および前記第二の画像の間で決定された対応する画像領域と、前記第二の画像および前記第三の画像の間で決定された対応する画像領域とに基づいて、前記第一の画像および前記第三の画像を用いて前記仮想視点画像を生成することを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
前記決定手段は、前記第一の画像と前記第二の画像と前記第三の画像とを用いて、前記第一の画像と前記第二の画像と前記第三の画像との間で対応する画像領域を決定し、
前記決定手段により決定された、前記第一の画像と前記第二の画像と前記第三の画像との間で対応する画像領域に基づいて、前記第二の画像を用いずに、前記第一の画像と前記第三の画像とを用いて、前記第一の画像と前記第三の画像との間で対応する画像領域を新たに決定する再決定部を更に有することを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
前記ぼけ状態は、ぼけの大きさであることを特徴とする請求項１乃至１０のいずれか一項に記載の画像処理装置。
【請求項１２】
請求項１乃至１０のいずれか一項に記載の画像処理装置と、
前記第一の画像および前記第二の画像を撮像により取得する撮像手段とを有することを特徴とする撮像装置。
【請求項１３】
前記撮像手段は、同一の被写体を複数の視点から撮像する複数の撮像部を有することを特徴とする請求項１２に記載の撮像装置。
【請求項１４】
前記撮像手段は、Ｐｌｅｎｏｐｔｉｃ撮像部を有することを特徴とする請求項１２に記載の撮像装置。
【請求項１５】
前記撮像手段は、前記Ｐｌｅｎｏｐｔｉｃ撮像部の開口の大きさを変化させて撮像することで、前記第一の画像および前記第二の画像を取得することを特徴とする請求項１４に記載の撮像装置。
【請求項１６】
Ｐｌｅｎｏｐｔｉｃ撮像部を有する撮像手段と、
ユーザ指示に基づいて画像の視点位置とぼけ状態とを示す画像情報を入力する入力手段と、
前記画像情報が示す視点位置の画像である第一の画像と、前記第一の画像と同一の被写体を含み、前記画像情報が示すぼけ状態の画像である第二の画像とを、それぞれ撮像により取得するように、前記Ｐｌｅｎｏｐｔｉｃ撮像部の開口の大きさを制御する制御手段と、
前記第一の画像および前記第二の画像のうちの少なくとも一方のぼけ状態を変化させる処理を行う処理手段と、
前記処理手段によりぼけ状態が変化された後の、前記第一の画像と前記第二の画像とを比較することで、前記第一の画像および前記第二の画像の間で対応する画像領域を決定する決定手段と、
前記決定手段により決定された、前記第一の画像および前記第二の画像の間で対応する画像領域と、前記入力手段により入力された前記画像情報とに基づいて、前記画像情報が示す視点位置およびぼけ状態に対応する仮想視点画像を生成する生成手段とを有することを特徴とする撮像装置。
【請求項１７】
第一の視点から被写体を見た場合の第一の画像と、前記第一の視点とは異なる第二の視点から前記被写体を見た場合の画像であり、前記第一の画像とぼけ状態が異なる第二の画像とを取得するステップと、
前記第一の画像および前記第二の画像のうちの少なくとも一方のぼけ状態を変化させる処理を行うステップと、
前記変化手段によりぼけ状態が変化された後の、前記第一の画像と前記第二の画像とを比較することで、前記第一の画像と前記第二の画像との間で同一の被写体に対応する画像領域を決定するステップとを含むことを特徴とする画像処理方法。
【請求項１８】
Ｐｌｅｎｏｐｔｉｃ撮像部を有する撮像装置で撮像された画像を処理する方法であって、
ユーザ指示に基づいて画像の視点位置とぼけ状態とを示す画像情報を入力するステップと、
前記画像情報が示す視点位置の画像である第一の画像と、前記第一の画像と同一の被写体を含み、前記画像情報が示すぼけ状態の画像である第二の画像とを、それぞれ撮像により取得するように、前記Ｐｌｅｎｏｐｔｉｃ撮像部の開口の大きさを制御するステップと、
前記第一の画像および第二の画像のうちの少なくとも一方のぼけ状態を変化させる処理を行うステップと、
前記処理によりぼけ状態が変化された後の、前記第一の画像と前記第二の画像とを比較することで、前記第一の画像および前記第二の画像の間で対応する画像領域を決定するステップと、前記決定された、前記第一の画像および前記第二の画像の間で対応する画像領域と、前記入力手段により入力された前記画像情報とに基づいて、前記画像情報が示す視点位置およびぼけ状態に対応する仮想視点画像を生成するステップとを含むことを特徴とする画像処理方法。
【請求項１９】
コンピュータを、請求項１乃至１１のいずれか一項に記載の画像処理装置の各手段として機能させるプログラム。
【請求項２０】
コンピュータを、請求項１２乃至１６のいずれか一項に記載の撮像装置の各手段として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はぼけ状態の異なる画像間で対応する画像領域を探索する技術に関する。
【背景技術】
【０００２】
異なる撮影条件で撮影された２枚以上の画像を用いて、被写体までの距離を求めたり、求めた被写体距離を用いて、実際に撮影を行った条件とは異なる条件で撮影されたかのような画像を新たに生成する手法が知られている。その中の代表的なものとしては、同一の被写体を異なる視点から撮影した２枚以上の画像の間で、対応する画素である対応点を探索し、各画像の間の視差を求めるブロックマッチングが挙げられる。ブロックマッチングにより各画像の間の視差を求めると、各画像を撮影した視点の位置が既知である場合、視点の位置情報と求められた視差を用いて、三角法により被写体の距離を求めることができる。ブロックマッチングを改良した方法としては、対応点を探索するブロックサイズを、探索ブロックが画像中のエッジ領域を含むか否かに応じて適応的に変えることで、対応点の探索精度を向上させる手法が提案されている（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２９３９７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１の手法では、視点位置の他に、焦点距離やＦ値やピント位置の違いによってぼけ状態が更に異なる画像同士で対応点の探索を行う場合に、対応点探索の精度が低下してしまう可能性がある。なお、ここでぼけ状態は、合焦位置や被写界深度など、画像のぼけを決定するパラメータのことを意味する。そこで本発明は、ぼけ状態が異なる画像同士で、対応点を精度良く探索することを目的としている。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明に係る画像処理装置は、第一の画像と、前記第一の画像と同一の被写体を含み前記第一の画像とはぼけ状態が異なる第二の画像とを取得する取得手段と、前記第一の画像および前記第二の画像のぼけ状態を合わせるように、前記第一の画像および前記第二の画像のうちの少なくとも一方のぼけ状態を変化させる処理を行う処理手段と、前記変化手段により変化されたぼけ状態に基づいて、前記第一の画像および前記第二の画像の間で対応する画像領域を決定する決定手段とを有する。
【発明の効果】
【０００６】
本発明によれば、ぼけ状態が異なる画像同士で、対応点を精度良く探索することが可能となる。
【図面の簡単な説明】
【０００７】
【図１】実施例１のカメラの外観を示す図。
【図２】実施例１のカメラの構成を示す図。
【図３】実施例１の画像処理部の構成を示す図。
【図４】実施例１の画像処理部で行われる処理を示すフローチャート。
【図５】実施例１の解像度変換処理を説明する図。
【図６】実施例１の対応領域決定部の構成を示す図。
【図７】実施例１の対応領域決定部で行われる処理の流れを示すフローチャート。
【図８】実施例２のカメラの外観を示す図。
【図９】実施例２の画像処理部の構成を示す図。
【図１０】実施例２の画像処理部で行われる処理を示すフローチャート。
【図１１】実施例２の視差算出処理を説明する図。
【図１２】実施例２のオクルージョン補正部の構成を示す図。
【図１３】実施例２のオクルージョン補正部で行われる処理を示すフローチャート。
【図１４】Ｐｌｅｎｏｐｔｉｃカメラの原理を説明する図。
【図１５】Ｐｌｅｎｏｐｔｉｃカメラにより得られる画像の例を示す図。
【図１６】実施例３の画像処理部の構成を示す図。
【図１７】実施例３の画像処理部で行われる処理を示すフローチャート。
【図１８】Ｐｌｅｎｏｐｔｉｃカメラにおけるぼけの直径と視差の関係を示す図。
【図１９】ぼけフィルタデータベースの例を表わす図。
【発明を実施するための形態】
【０００８】
＜実施例１＞
本実施例では、焦点距離の異なる２つの撮像部を備えたステレオカメラで取得された画像から、被写体の距離情報を取得する場合について述べる。
【０００９】
図１は、本実施例におけるステレオカメラ１００（以下、カメラ１００とする）の外観を示す図である。カメラ１００は、２つの撮像部１０１および１０２を有しており、２つの撮像部は筺体の同一平面上に配置されている。撮像部１０１と１０２の光軸は平行であり、配置された平面に垂直である。各撮像部はズームレンズ、フォーカスレンズ、ぶれ補正レンズ、絞り、シャッター、光学ローパスフィルタ、ＩＲカットフィルタ、カラーフィルタ、およびＣＭＯＳやＣＣＤなどの撮像素子から構成され、被写体の光量を検知してデジタルデータとして出力する。撮像部１０１および１０２の構成は基本的には同様であるが、撮像部１０１は広角撮像部、撮像部１０２は撮像部１０１よりも焦点距離が大きい望遠撮像部となっている。
【００１０】
図２は、カメラ１００の内部構成を示す図である。ＣＰＵ２０１は、以下に述べる各構成部を統括的に制御するプロセッサである。ＲＡＭ２０２は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能するメモリであり、ＲＯＭ２０３は、ＣＰＵ２０１で実行される制御プログラム等を格納するメモリである。ＣＰＵ２０１は、ＲＡＭ２０２をワークメモリとしてＲＯＭ２０３に格納されたプログラムを実行し、バス２０４を介して多眼カメラ１００の各構成部を制御する。
【００１１】
バス２０４は、各種データの転送経路であり、例えば撮像部１０１および１０２から出力された画像データはこのバス２０４を介して各構成部へと送られる。表示制御部２０５は、液晶ディスプレイなどの表示部２１１に表示される画像や文字の表示制御を行う処理回路である。デジタル信号処理部２０６は、バス２０４を介して受け取った画像データに対し、ホワイトバランス処理、ガンマ処理、ノイズ低減処理などの各種処理を行う処理回路である。
【００１２】
エンコード部２０７は、バス２０４を介して受取った画像データをＪＰＥＧやＭＰＥＧなどのファイルフォーマットに変換する処理を行う処理回路である。外部メモリ制御部２０８は、カメラ１００を、ハードディスク、メモリカード、ＣＦカード、ＳＤカード、ＵＳＢメモリ等の外部メモリに接続するためのインタフェースである。入力部２０９は、カメラ１００に備えられたボタンやダイヤルなどの入力装置である。ユーザは、この入力部２０９を介して、撮像タイミングや撮像パラメータの設定などを行う。画像処理部２１０は、画像データからの距離算出など、画像データを用いた処理を行う処理回路である。図３に、画像処理部２１０の構成を示す。画像処理部２１０は、画像取得部３０１、パラメータ取得部３０２、解像度変換部３０３、対応領域決定部３０４、距離算出部３０５としての機能を備えている。
【００１３】
本実施例において、ＲＯＭ２０３には図４のフローチャートに示すプログラムが格納されており、ＣＰＵ２０１がＲＯＭ２０３に格納されたプログラムを実行することで、画像処理部２１０を図３に示す各構成部として機能させる。以下、画像処理部２１０で行われる処理について、図４に示すフローチャートを参照して説明する。
【００１４】
＜画像処理部での処理＞
まず、ステップＳ４０１では、画像取得部３０１が、撮像部１０１および１０２から出力された画像データを取得する。そして、画像取得部３０１は、取得した画像データを解像度変換部３０３に出力する。
【００１５】
次に、ステップＳ４０２では、パラメータ取得部３０２が、撮像部１０１および１０２の、撮像パラメータを取得する。撮像パラメータには、撮像時の焦点距離、Ｆ値、合焦位置、視点位置座標、センササイズなどが含まれる。パラメータ取得部３０２は、取得した撮像パラメータを、同じく解像度変換部３０３に出力する。
【００１６】
次に、ステップＳ４０３では、解像度変換部３０３が、ステップＳ４０２で取得した撮像パラメータに基づいて、ステップＳ４０１で取得した各画像の画角を求め、両者の画角と解像度が同じになるように、トリミングと解像度変換を行う。以下、その処理について説明する。
【００１７】
まず、解像度変換部３０３は、各画像の画角が同じになるように、撮像部１０１で撮像された広角画像のトリミングおよび拡大を行う。図５は、その概要を示す図である。画像５０１は撮像部１０１で撮影された広角画像であり、画像５０２は、撮像部１０２で撮影された望遠画像である。ここでは、解像度変換部３０３が、画像５０１の中心から、画像５０２の画角と同じ範囲を切り出し、画像５０２と同じ大きさになるように拡大して、画像５０３を生成する。
【００１８】
ここで、画像５０３は、画像５０２よりも解像度の低い画像となっている。そこで、両者の間のマッチングを取り易くするために、解像度の高い画像５０２にフィルタをかけて解像度を低下させ、両者の解像度が一致するようにする。本実施例では、画像５０２に以下の式で表わされるガウシアンフィルタを作用させる。
【００１９】
【数１】
2015135661.tif 000003
【００２０】
ここで、ｘ、ｙは画像中の画素位置であり、Ｄは適当な定数である。また、ｆｂａｓｅは解像度変換の基準となる画像５０３の焦点距離の値であり、ｆは解像度変換の対象となる画像５０２の焦点距離の値である。解像度変換が行われたら、解像度変換部３０３は、解像度変換後の画像データを対応領域決定部３０４に出力する。
【００２１】
次に、ステップＳ４０４では、対応領域決定部３０４が、解像度変換部３０３から出力された解像度変換後の画像データが示す、撮像部１０１および撮像部１０２に対応する画像の間で、対応する画像領域を決定する。この処理の詳細については後述する。
【００２２】
次に、ステップＳ４０５では、距離算出部３０５が、ステップＳ４０４で決定された対応画像領域に基づいて、被写体の距離情報を算出する。ステップＳ４０４では、各画素に対応する、基準画像と参照画像の間の視差が算出される。この視差をｄとすると、ｄ［ｐｉｘｅｌ］は以下の式で表わされる。
【００２３】
【数２】
2015135661.tif 000004
【００２４】
ここで、Ｌは撮像部１０１と撮像部１０２の間の基線長、ｆＲは撮像部１０２の焦点距離、ｓはカメラ１００から被写体までの距離、Δは撮像部１０１および１０２の画素ピッチである。距離算出部３０５は、パラメータ取得部３０２から出力された撮像パラメータと、対応領域決定部３０４から出力された視差ｄを式２に代入することで、各画素に対応する被写体距離を算出する。
【００２５】
最後に、ステップＳ４０６では、距離算出部３０５が、ステップＳ４０５で算出された距離情報をバス２０４へ出力する。なお、ここで出力される距離情報は、各画素位置に対応する被写体の距離情報を二次元に並べた画像データである、距離マップである。出力された距離マップは、外部メモリに保存されたり、表示部２１１に表示されたりする。
【００２６】
以上が、画像処理部２１０で行われる処理の概要である。次に、対応領域決定部３０４で行われる処理について説明する。
【００２７】
＜対応領域決定部での処理＞
対応領域決定部３０４では、焦点距離の異なる２枚の画像の間でブロックマッチングを行うことにより、２枚の画像の間で同一の被写体に対応する画像領域を決定する。本実施例では上記２枚の画像を撮像した撮像部の焦点距離が異なるため、各画像において被写界深度が異なる。被写界深度が異なる画像に、そのままブロックマッチングを行うと、ぼけ状態の違いのためにマッチングの誤対応が発生してしまう可能性がある。そこで、本実施例では、被写界深度が深いほうの画像に、もう一方の画像と同様のぼけを付加しながらブロックマッチングを行うことで、より正確なマッチングを行う。
【００２８】
以下、本実施例で行うブロックマッチングの方法について述べる。ブロックマッチングでは、一方の画像を対応領域導出の基準画像とし、基準画像のある画像領域に対応する画像領域を、もう一方の参照画像中で探索する。本実施例では、望遠撮像部１０２で撮像された画像を基準画像、広角撮像部１０１で撮像された画像を参照画像とする。基準画像の視点位置を（０，０）、参照画像の視点位置を（Ｌ，０）とし、基準画像における着目画素の座標を（ｘ，ｙ）、参照画像における探索対象画素の座標を（ｘ＋ｄ，ｙ）とする。この時、基準画像のブロックＢ＝［ｘ−Ｓ，ｘ＋Ｓ］×［ｙ−Ｓ，ｙ＋Ｓ］と、参照画像のブロックＢ’＝［ｘ＋ｄ−Ｓ，ｘ＋ｄ＋Ｓ］×［ｙ−Ｓ，ｙ＋Ｓ］のマッチングが行われる。
【００２９】
マッチングの際には、最も類似度の高いブロック同士が対応するブロックとして決定される。本実施例においては、以下の式の値が最小となるｄ［ｐｉｘｅｌ］が、対応画像領域を示すｄとして決定される。なおｄは、探索画素位置における、基準画像と参照画像の間の視差である。
【００３０】
【数３】
2015135661.tif 000005
【００３１】
ここで、｜Ｂ｜はブロックＢに含まれる画素数、ＩＲは基準画像の画素値、ＩＬは参照画像の画素値であり、Ｖは基準画像と参照画像間の分散値を表している。ブロックの類似度の基準として分散値を用いたが、単純に差分絶対値和や差分２乗和を用いてもよい。本実施例では、式３を用いたマッチングを行う際に、探索位置を示すｄの値に応じて参照画像にぼけを付加しながらマッチングを行う。以下、その方法について説明する。
【００３２】
本実施例において、撮像部１０１および撮像部１０２はどちらも同じ距離にピントが合っているとする。あるカメラからピント位置までの距離をｓｐｉｎｔとすると、そのカメラから見て距離ｓにある被写体のぼけの直径ｂ［ｐｉｘｅｌ］は、レンズの焦点距離をｆ、レンズのＦ値をＦ、画素ピッチをΔとしたときに、
【００３３】
【数４】
2015135661.tif 000006
【００３４】
と表わされる。ゆえに、撮像部１０２のレンズの焦点距離をｆＲ、Ｆ値をＦＲとし、撮像部１０１のレンズの焦点距離をｆＬ、Ｆ値をＦＬとすると、基準画像に対応するぼけの直径ｂＲおよび解像度変換後の参照画像に対応するぼけの直径ｂＬ’は以下のように表わされる。
【００３５】
【数５】
2015135661.tif 000007
【００３６】
ここで、式２に基づいて式５を変形すると、ｂＲ’およびｂＬは、ｄを用いて以下のように表わされる。
【００３７】
【数６】
2015135661.tif 000008
【００３８】
ｄｐｉｎｔは、式２のｓにｓｐｉｎｔを代入した値である。ｓｐｉｎｔは撮影時のセンサ位置などから求めることができる。
【００３９】
以上のことから、探索する視差ｄに応じて、以下のフィルタを参照画像の各ブロックに作用させることで、参照画像である望遠画像と同様のぼけを付加することができる。つまり、各ブロックにぼけを付加する度合いは、基準画像の参照ブロックと、参照画像の参照ブロックとの間の位置関係に基づいて決定される。
【００４０】
【数７】
2015135661.tif 000009
【００４１】
本実施例では、式７のフィルタを参照画像に作用させながらブロックマッチングを行うことで、より精度の高い対応点の探索を行うことができる。本実施例では、式７のフィルタを作用させた後の画素値を式３に代入し、式３で表わされるＶの値が最小となるｄを、正しいｄとして決定する。つまり、Ｖの値が最小となる探索位置を、対応画像領域として決定する。なお、ここで行われる処理はぼけの付加に限られず、デコンボリューション処理を行ってもよい。また、ここで行われるぼけ付加は、どちらか一方の画像にぼけを付加するだけではなく、両方の画像にぼけを付加する処理であっても良い。
【００４２】
以下、本実施例の対応領域決定部で実際に行われる処理について、図６に示すブロック図と図７に示すフローチャートを参照して説明する。
【００４３】
まず、ステップＳ７０１では、入力画像バッファ６０１が、解像度変換部３０３から出力された解像度変換後の画像データを取得する。
【００４４】
次に、ステップＳ７０２では、ぼけ付加部６０２が、入力画像バッファ６０１が取得した画像データから、処理対象となる画像ブロックを読み出す。ここでは、ＲＡＭ２０２に格納された、マッチングの基準となる基準画像上の基準画像ブロックを示す座標情報と、参照画像中で探索を行う参照画像ブロックに対応する探索視差ｄｓに基づいて読み出す画像ブロックを決定する。なお、初期状態では基準画像ブロックの中心画素（着目画素）座標は（０，０）が設定され、また、ｄｓ＝０と設定されている。
【００４５】
次に、ステップＳ７０３では、ぼけ付加部６０２が、パラメータ取得部３０２から取得した撮像パラメータおよび、参照画像ブロックに対応するｄｓを式７のｄに代入する。そして、算出されたフィルタを参照画像ブロックに適用することでぼけを付加し、ぼけを付加した画素値の情報を分散計算部６０３に出力する。
【００４６】
次に、ステップＳ７０４では、分散計算部６０３が、ぼけを付加した参照画像ブロックの画素値を式２に代入して、視差ｄｓに対応する画素値の分散Ｖを算出し、対応する視差ｄｓと共に分散値比較部６０４に出力する。
【００４７】
次に、ステップＳ７０５では、分散値比較部６０４が、分散値計算部６０３から出力されたＶを、ＲＡＭ２０２に保存されたＶと比較する。ＲＡＭ２０２に保存されたＶよりも、分散値計算部６０３から出力されたＶの方が小さい場合は、ＲＡＭ２０２に保存された対応視差ｄｃの値を、分散値計算部６０３から出力された探索視差ｄｓの値で置き換える。また、ＲＡＭ２０２に保存されたＶの値も同様に更新する。
【００４８】
ここで、対応視差ｄｃは、基準画像ブロックに対応する画像ブロックとして決定された参照画像ブロックの位置を示す視差情報である。初期状態ではＲＡＭ２０２にＶおよびｄｃは格納されておらず、その場合には、分散値計算部６０３から出力されたＶおよびｄｓが無条件でＲＡＭ２０２に格納される。全ての画素においてステップＳ７０５の処理を行うことで、最適なｄｃの値が最終的に決定される。
【００４９】
次に、ステップＳ７０６では、分散値比較部６０４が、全ての参照画素ブロックについて分散値Ｖの計算が行われたかどうかを判定する。全ての参照画素ブロックについて分散値Ｖの計算が行われたと判定された場合、ステップＳ７０８に進む。全ての参照画素ブロックについて分散値Ｖの計算が行われていないと判定された場合、ステップＳ７０７に進む。
【００５０】
ステップＳ７０７では、分散値比較部６０４が、ＲＡＭ２０２に格納されたｄｓの値を更新する。そして、ステップＳ７０２に戻り、ぼけ付加部６０２が新たなｄｓに基づいて処理を再開する。
【００５１】
ステップＳ７０８では、分散値比較部６０４が、その時点でＲＡＭ２０２に格納されたｄｃが正しいｄｃであると決定し、正しい値であると決定されたｄｃと、そのｄｃに対応する画素の座標を視差データバッファ６０５に出力する。つまり、ここで出力されるｄｃの値は、対応画像ブロックの位置を示すｄｃとして決定された値である。
【００５２】
次に、ステップＳ７０９では、分散値比較部６０４が、基準画像上の全ての画素について対応視差ｄｃの決定がなされたかどうかを判定する。基準画像上の全ての画素についてｄｃの決定がなされたと判定された場合、処理を終了する。全ての画素について被写体距離が算出されていないと判定された場合、ステップＳ７１０に進む。
【００５３】
ステップＳ７１０では、分散値比較部６０４が、ＲＡＭ２０２に格納された、着目画素の座標を更新し、ｄｓの値を０に更新する。そして、ステップＳ７０２に戻り、ぼけ付加部６０２が新たな着目画素について同様の処理を再開する。
【００５４】
以上が対応領域決定部３０４で行われる処理である。この処理により、ぼけ状態と視点の両方が異なる画像間で、対応点を精度よく決定することができる。そして、その結果、被写体の距離をより精度よく求めることができる。
【００５５】
なお、本実施例において、画像取得部３０１は、第一の視点から被写体を見た場合の第一の画像と、前記第一の視点とは異なる第二の視点から前記被写体を見た場合の画像であり、前記第一の画像とぼけ状態が異なる第二の画像とを取得する取得手段として機能する。また、ぼけ付加部６０２は、前記第一の画像と前記第二の画像のうちの少なくとも一方のぼけ状態を変化させる処理手段として機能する。また、分散値比較部６０４は、前記処理手段によりぼけ状態が変化された後の、前記第一の画像と前記第二の画像とを比較することで、前記第一の画像と前記第二の画像との間で同一の被写体に対応する画像領域を決定する決定手段として機能する。また、距離算出部３０５は、前記決定手段により決定された、前記第一の画像および前記第二の画像の間で対応する画像領域に基づいて、前記被写体の距離情報を導出する導出手段として機能する。
【００５６】
＜実施例２＞
実施例１では、ぼけを付加してブロックマッチングを行った結果を用いて、被写体距離を精度よく求める方法について説明した。実施例２では、ぼけを付加してブロックマッチングを行った結果を用いて、仮想視点画像の生成を行う場合について説明する。
【００５７】
図８は、本実施例における多眼カメラ８００（以下、カメラ８００とする）の外観を示す図である。カメラ８００は、５つの撮像部８０１〜８０５を有している。５つの撮像部は全て筺体の同一平面上に配置され、光軸は全て平行であり、配置された平面に垂直である。撮像部８０１〜８０５の構成は撮像１０１および１０２と基本的に同じであるが、本実施例では、撮像部８０１が広角撮像部、撮像部８０２〜８０５が望遠撮像部となっている。なお、４つの望遠撮像部のレンズの焦点距離は全て同じである。また、撮像部８０１の視点位置を（０，０）とすると、撮像部８０２〜８０５はそれぞれ視点位置が（Ｌ，Ｌ）、（−Ｌ，Ｌ）、（Ｌ，−Ｌ）、（−Ｌ，−Ｌ）となるように配置されている。
【００５８】
カメラ８００の内部構成は、図２に示したカメラ１００の内部構成と基本的には同じであるが、画像処理部２１０の構成が異なっている。図９に、本実施例における画像処理部２１０の構成を示す。
【００５９】
本実施例における画像処理部２１０は、新たに画像選択部９０１、粗精度視差算出部９０２、高精度視差算出部９０３、画像合成部９０４およびオクルージョン補正部９０５を備えている。
【００６０】
以下、本実施例における画像処理部２１０の処理について、図１０に示すフローチャートを参照して説明する。
【００６１】
実施例１と同様の処理については、図４と同様の符号を付し、説明を省略する。
【００６２】
ステップＳ１００１では、画像選択部９０１が、ユーザによって指定された仮想視点画像の視点位置および焦点距離に基づいて、以降の処理で使用する画像を選択し、選択した画像を解像度変換部３０３に出力する。本実施例においては、焦点距離の近い画像をシフト合成することで仮想視点画像の生成を行う。その際に、仮想視点と視点の近い画像をガイドにして、合成に用いる各画像のシフト量を決定するので、より実際のシーンに近い仮想視点画像の合成をおこなうことができる。
【００６３】
ここでは、画像選択部９０１が、仮想視点画像の合成に用いる合成用画像と、マッチングの際のガイドとして用いるガイド画像を選択する。本実施例では、撮像部８０１の視点から、撮像部８０２〜８０５と同じ焦点距離で撮像された画像が生成されるので、撮像部８０１で撮像された画像がガイド画像として、撮像部８０２〜８０５で撮像された画像が合成用画像として選択される。画像選択部９０１は、選択した画像を画像取得部３０１から取得して、解像度変換部３０３に出力する。
【００６４】
次に、ステップＳ４０３では、実施例１と同様に、広角画像と各望遠画像の解像度を合わせる処理が行われる。解像度を合わせた画像群は、粗精度視差算出部９０２に出力される。
【００６５】
次に、ステップＳ１００２では、粗精度視差算出部９０２が、ガイド画像を用いて、各合成用画像の仮想視点からの視差を粗精度に求める。この処理の詳細については後述する。そして、粗精度に求めた視差を高精度視差算出部９０３に出力する。
【００６６】
次に、ステップＳ１００３では、高精度視差算出部９０３が、ステップＳ１００２で粗精度に求められた視差に基づいて、各合成用画像のマッチングを行うことで、仮想視点からの視差を高精度に求める。この処理の詳細についても後述する。そして、高精度に求めた視差を画像合成部９０４に出力する。また、高精度視差算出部９０３は、ここで求めた視差およびそれに対応する分散値をオクルージョン補正部９０５に出力する。
【００６７】
次に、ステップＳ１００４では、画像合成部９０４が、ステップＳ１００３で求められた視差の値に基づいて、各合成用画像のシフト合成を行う。
【００６８】
次に、ステップＳ１００５では、オクルージョン補正部９０５が、ステップＳ９０４で生成された仮想視点画像のオクルージョン部の補正を行う。この処理の詳細についても後述する。
【００６９】
最後に、ステップＳ１００６では、生成した仮想視点画像を出力して処理を終了する。以上が、本実施例における画像処理部２１０の処理の流れである。以下、上記処理の各ステップの詳細について説明する。まず、粗精度視差算出部９０２で行われる処理（ステップＳ１００２）について説明する。
【００７０】
粗精度視差算出部９０２で行われる処理は、基本的には実施例１において対応領域決定部３０４で行われる処理と同じである。つまり、粗精度視差算出部９０２は対応領域決定部３０４と同様の構成要素を持つ。しかし、今回は視差の算出に用いられる画像の枚数が多いので、式（３）を以下のように拡張する。視点位置（Ｌ，Ｌ）における視差を（ｄ，ｄ）、各視点の位置をＬに対する比で表わした位置ベクトルを（ｖｘ，ｖｙ）とすると、本実施例で用いる分散を示す式は以下のように表わされる。
【００７１】
【数８】
2015135661.tif 000010
【００７２】
ここで、｜Ｂ｜はブロックに含まれる画素数、Ｊ（ｘ，ｙ）は解像度変換後のガイド画像も含めた各画像の画素値、ｉは各画像に対応する撮像部を表わす番号であり、Ｍはブロックマッチングに使用された画像の枚数である。ここでは、撮像部８０１〜７０５で撮像された全ての画像を用いるので、Ｍ＝５となる。
【００７３】
同様に、各画像に作用させるぼけフィルタも以下のように変形される。ブロックマッチングに用いる画像の中で最もぼけが大きい画像の焦点距離をｆｂａｓｅ、Ｆ値をＦｂａｓｅとすると、各画像に作用させるフィルタｇｉは以下の式で表わされる。
【００７４】
【数９】
2015135661.tif 000011
【００７５】
ここで、ｆｉおよびＦｉは、各画像の焦点距離およびＦ値である。
【００７６】
粗精度視差算出部では、式９に示すぼけフィルタｇｉを各画像に作用させ、その結果の画素値を式８に代入して求めた分散Ｖが最小になるようなｄを、算出した視差として高精度視差算出部９０３に出力する。
【００７７】
次に、高精度視差算出部９０３で行われる処理（ステップＳ１００３）について説明する。高精度視差算出部９０３で行われる処理は、基本的には粗精度視差算出部９０２で行われる処理と同じである。しかし、高精度視差算出部９０３では、ガイド画像を覗いた、高解像度の望遠画像のみでマッチングを行うため、より高精度な視差を算出することができる。また、この時、探索する視差は、粗精度視差算出部９０２で算出された視差の前後５ピクセルの範囲に限定する。これにより、他の極小値に落ち込んで誤った視差が算出されてしまう可能性を低減することができる。なお、この時の探索範囲の大きさは、画像のサイズなどに応じて自由に変更してよい。
【００７８】
図１１にこの処理の概要を示す。曲線１１０１は粗精度視差算出部９０２で計算された分散値を示す曲線、曲線１１０２は高精度視差算出部９０３で計算された分散値を示す曲線である。曲線１１０２は、望遠画像のみでマッチングを行った結果であるため、曲線１１０２に比べて横軸の画素位置の刻みが細かくなっている。
【００７９】
曲線１１０１を見ると、極小値を取る画素位置が二つあることが分かる。望遠画像のみでマッチングを行った場合には、正解とは異なる極小値に陥る可能性があり、その場合は画像が破たんしてしまう。本実施例では、曲線１１０１の結果を用いて、望遠画像でのマッチング範囲１１０３を限定してマッチングを行うことで、マッチングする画素位置をより高精度に求める。これにより、誤った極小値に陥ることなく、高精度なマッチングを行うことが可能になる。
【００８０】
次に、画像合成部９０４で行われる処理（ステップＳ１００４）について説明する。画像合成部９０４では、ステップＳ１００１で合成用画像として選択された４枚の望遠画像の、対応する画素の画素値の加算平均を取ることで仮想視点画像の生成を行う。画素（ｘ，ｙ）における仮想視点画像の画素値をＩｓｙｎｔｈ（ｘ，ｙ）とすると、Ｉｓｙｎｔｈ（ｘ，ｙ）は以下の式で表わされる。
【００８１】
【数１０】
2015135661.tif 000012
【００８２】
ここで、Ｉｉ（ｘ，ｙ）は各望遠画像の画素値であり、Ｗは望遠撮像部の集合を表わす。そして｜Ｗ｜は、Ｗに含まれる望遠撮像部の数である。なお、仮想視点画像の合成は対応する画素の画素値の加算平均を取る方法に限られず、画素値の重みづけ平均を用いたり特定の画像の画素値を抜き出して組み合わせることによって仮想視点画像の生成を行ってもよい。
【００８３】
次に、オクルージョン補正部９０５で行われる処理（ステップＳ１００５）について説明する。ある視点からは見えているが、他の視点からは見えていない被写体を示す画像領域を、オクルージョン領域と呼ぶ。オクルージョン領域では、各画像の間で対応する画像領域が存在しないため、マッチングにおける分散が大きくなり、そのまま画像の合成を行っても、生成された画像においてオクルージョン領域がぼけてしまう。
【００８４】
そこで、オクルージョン補正部９０５では、視差を求める際に求めた分散の値から、オクルージョン領域を特定し、合成画像中のオクルージョンに対応する領域の画素値を置き換える。以下、図１２に示すブロック図および図１３に示すフローチャートを参照して処理の詳細について説明する。
【００８５】
まず、ステップＳ１３０１では、オクルージョン領域判定部１２０１が、画像合成部９０４から出力された仮想視点画像を取得する。
【００８６】
次に、ステップＳ１３０２では、ＲＡＭ２０２に格納された着目画素の座標に基づいて、仮想視点画像の着目画素における、高精度視差算出部９０３から出力された分散の値が閾値以上であるかどうかを判定する。なお、初期状態では、着目画素の座標として（０，０）が格納されている。分散の値が閾値以上であった場合は、その着目画素で示される画像ブロックがオクルージョン領域であると判断し、ステップＳ１３０４に進む。分散の値が閾値以下であった場合は、その着目画素で示される画像ブロックがオクルージョン領域でないと判断し、ステップＳ１３０３に進む。本実施例においては、画素値の範囲を０〜２５５としたときに、Ｖ＝１５２＝２５５を閾値としてオクルージョン領域の判定を行う。なお、この閾値の大きさも、撮影環境などに応じて自由に変更してよい。
【００８７】
ステップＳ１３０３では、オクルージョン領域判定部１２０１が、ＲＡＭ２０２に格納された着目画素情報を更新し、ステップＳ１３０２に戻る。
【００８８】
ステップＳ１３０４では、対応領域決定部１２０２が、粗精度視差算出部での処理に用いたガイド画像を基準画像、合成に用いた望遠画像のうちの一枚を参照画像として、対応画像領域の探索を行う。ここで行われる処理は基本的には実施例１のステップＳ４０４で行われる処理と同じであるが、今回は広角画像が基準画像となるので、基準画像にぼけを付与しながらマッチングを行う点が異なる。ここでマッチングの参照画像として選択する画像は、ＲＡＭ２０２に格納された、参照画像に対応するカメラ番号に基づいて決定される。初期状態では、合成用画像として選択された画像のうちの１つの番号が格納されており、本実施例においては撮像部８０２を示す番号が格納されている。マッチングの結果、算出された対応視差ｄｃと、そのｄｃに対応する分散Ｖを、分散値比較部１２０３に出力する。なお、ここでは２枚の画像間のマッチングが行われるので、ここで算出される分散Ｖは、式（３）と同様に、２枚の画像間の分散を表わす。
【００８９】
次に、ステップＳ１３０５では、対応領域決定部１２０２が、ガイド画像と全ての望遠画像とのマッチングを行ったかどうかを判定する。全ての望遠画像とのマッチングが行われていないと判定された場合、ステップＳ１３０６に進む。全ての望遠画像とのマッチングが行われたと判定された場合、ステップＳ１３０７に進む。
【００９０】
ステップＳ１３０６では、対応領域決定部１２０２が、ＲＡＭ２０２に格納された、参照画像を示すカメラ番号を更新し、ステップＳ１３０４に戻る。
【００９１】
ステップＳ１３０７では、分散値比較部１２０３が、対応領域決定部１２０２から出力された、全ての分散値Ｖを比較する。そして、比較を行ったＶの中で最小のＶを決定し、そのＶに対応する望遠画像を示す情報と、そのＶに対応するｄｃを画素値置き換え部１２０４に出力する。
【００９２】
次に、ステップＳ１３０８では、画素値置き換え部１２０４が、分散値比較部１２０３から出力された、望遠画像を示す情報とｄｃに基づいて、仮想視点画像におけるオクルージョン領域の画素値を置き換える。ここでは、画素値置き換え部１２０４が、仮想視点画像におけるオクルージョン領域の画素値を、分散値比較部１２０３から出力された情報で示される望遠画像の、視差ｄｃで示される画像ブロックの画素値で置き換える。ステップＳ１３０７から出力された情報は、複数の望遠画像に含まれる画像領域の中で、仮想視点画像のオクルージョン領域に対応する画像領域に近い画像領域を示す情報である。つまり、この領域の画素値でオクルージョン領域の画素値を置き換えることで、仮想視点画像がより理想に近い画像になる。
【００９３】
次に、ステップＳ１３０９では、画素値置き換え部１２０４が、仮想視点画像の全ての画素においてオクルージョン領域の判定が行われたかどうかを判定する。全ての画素においてオクルージョン領域の判定が行われたと判定された場合、ステップＳ１３１０に進む。全ての画素においてオクルージョン領域の判定が行われていないと判定された場合、ステップＳ１３０３に進む。
【００９４】
ステップＳ１３１０では、画素値置き換え部１２０４が、全てのオクルージョン領域の画素値置き換えが終了した画像を、出力部３０６に出力する。
【００９５】
以上が、オクルージョン補正部９０５で行われる処理である。上記の処理によれば、視点位置とぼけ状態の両方が異なる画像同士で、対応点を精度良く探索することができるため、仮想視点と視点の近い、焦点距離の異なる画像をガイドにして、仮想視点画像の合成を行うことができる。その結果、実際のシーンに即した画像合成を行うことができるので、仮想視点画像を精度よく生成することができるようになる。
【００９６】
なお、本実施例において、画像取得部３０１は、第一の視点から被写体を見た場合の第一の画像と、前記第一の視点とは異なる第二の視点から前記被写体を見た場合の画像であり、前記第一の画像とぼけ状態が異なる第二の画像とを取得する取得手段として機能する。また、ぼけ付加部６０２は、前記第一の画像と前記第二の画像のうちの少なくとも一方のぼけ状態を変化させる処理手段として機能する。また、粗精度視差算出部９０２は、前記処理手段によりぼけ状態が変化された後の、前記第一の画像と前記第二の画像とを比較することで、前記第一の画像と前記第二の画像との間で同一の被写体に対応する画像領域を決定する決定手段として機能する。また、粗精度視差算出部９０２は前記第一の画像と前記第二の画像と、前記第一の画像と前記第二の画像と同一の被写体を含む第三の画像とを用いて、上記三つの画像の間で対応する画像領域を決定する決定手段としても機能する。
【００９７】
また、高精度視差算出部９０３は、前記第二の画像を用いずに、前記第一の画像と前記第三の画像とを用いて、前記第一の画像と前記第三の画像との間で対応する画像領域を新たに決定する再決定部として機能する。このとき、前記第一の画像と前記第三の画像との間で対応する画像領域前記第一の画像と前記第二の画像と前記第三の画像との間で対応する画像領域に基づいて決定される。また、入力部２０９は、ユーザ指示に基づいて画像の視点位置とぼけ状態とを示す画像情報を入力する入力手段として機能する。また、画像合成部９０４は、前記第一の画像および前記第二の画像の間で対応する画像領域と、前記画像情報とに基づいて、前記画像情報が示す視点位置およびぼけ状態に対応する仮想視点画像を生成する生成手段として機能する。
【００９８】
＜実施例３＞
実施例２では、多眼カメラによって取得された画像において、ぼけを付加してブロックマッチングを行った結果を用いて、仮想視点画像の生成を行う場合について説明した。本実施例では、Ｐｌｅｎｏｐｔｉｃカメラで絞り径を変えて撮像した画像において、ぼけを付加してブロックマッチングを行った結果を用いて、仮想視点画像の生成を行う場合について説明する。
【００９９】
図１４（ａ）を用いてＰｌｅｎｏｐｔｉｃカメラの原理について説明する。Ｐｌｅｎｏｐｔｉｃカメラは、撮像レンズ１４０１と撮像センサ１４０４の間に、マイクロレンズアレイ１４０３が設けられたＰｌｅｎｏｐｔｉｃ撮像部を有している。ここで、マイクロレンズアレイ１４０３は、複数の微小な凸レンズ（マイクロレンズ）が二次元に並べられたものであり、各マイクロレンズは、一つのマイクロレンズを通過した光がそれぞれ撮像センサ１４０４の複数の画素に集光されるように配置されている。本実施例におけるマイクロレンズアレイ１４０３は、各マイクロレンズが撮像センサ１４０４の２×２＝４画素に対応するように構成されている。そのため、図１４（ａ）に示すように、撮像レンズ１４０１の異なる領域を通った光が、マイクロレンズ１４０３を介することで、それぞれ撮像センサ１４０４の異なる領域に入光することになる。つまり、マイクロレンズアレイ１４０３を介して撮像を行うことで、撮像レンズ１４０１の異なる領域を通過した光を分離することができる。もちろん、マイクロレンズアレイの構成はこれに限られず、各マイクロレンズの対応画素数などは自由に設定してよい。また、マイクロレンズアレイ１４０３は、撮像レンズ１４０１の焦点面に配置されている。
【０１００】
図１４（ａ）では、簡単のために水平方向のみを考えているので、撮像レンズ１４０１を通った光は、それぞれ撮像レンズ１４０１の右側領域１４１０を通った光と、撮像レンズ１４０１の左側領域１４２０を通った光とに分離されている。つまり、右側領域１４１０を通った光は全て、画素１４１１に代表されるＲ画素に入光し、左側領域１４２０を通った光は全て、画素１４２１に代表されるＬ画素に入光する。そのため、Ｒ画素とＬ画素とをそれぞれ抜き出すことで、あたかも右側領域１４１０だけを用いて撮像したかのようなＲ画像と、左側領域１４２０だけを用いて撮像したかのようなＬ画像とを得ることができる。この時、Ｒ画像およびＬ画像に対応する視点は、それぞれ点１４１２および点１４２２となる。図１４（ｂ）のように絞り１４０２の径を小さくすると、それに伴って右側領域１４１０と左側領域１４２０の中心点が変化するため、Ｒ画像とＬ画像の間の視差も小さくなる。
【０１０１】
図１５に本実施例のＰｌｅｎｏｐｔｉｃカメラによって得られたＲ画像およびＬ画像の例を示す。図１５（ａ）および（ｂ）は、図１８（ａ）のように絞りを開いた状態で撮像されたＬ画像およびＲ画像であり、図１５（ｃ）および（ｄ）は、図１８（ｂ）のように絞りを絞った状態で撮像されたＬ画像およびＲ画像である。図１５（ａ）および（ｂ）は、絞りを開いた状態で撮像された画像なので、Ｌ画像およびＲ画像の視点は撮像レンズ１４０１の外側に寄り、Ｌ画像の視点とＲ画像の視点の間で大きな基線長が得られている。また、大きな開口を用いて撮像された画像であるため、被写界深度は浅く、画像の遠景にはぼけが生じている。一方、図１５（ｃ）および（ｄ）は、絞りを絞った状態で撮像された画像なので、Ｌ画像およびＲ画像の視点は撮像レンズ１４０１の内側に寄り、２つの画像の視点の間の基線長は小さくなっている。また、小さな開口を用いて撮像された画像であるため、被写界深度が深い。
【０１０２】
このように、Ｐｌｅｎｏｐｔｉｃカメラによる撮像では１回の撮像で視点の異なる複数の画像を得ることができ、その複数の画像の視点間の基線長はＰｌｅｎｏｐｔｉｃカメラの絞りを調整することで変化させることができる。しかし、絞りを調整すると画像の被写界深度も開口の大きさに応じて変化してしまうため、所望の基線長と被写界深度の両方を持つ画像を得ることが難しかった。
【０１０３】
そこで、本実施例では、Ｐｌｅｎｏｐｔｉｃカメラの絞り径を変えて２回撮像を行うことで、所望の基線長で撮像された画像データと、所望の被写界深度で撮像された画像データとをそれぞれ取得し、両画像データの間でぼけを付加したマッチングを行う。そして、その結果を用いて、両画像データから、所望の基線長と被写界深度の両方を持つ仮想視点画像を生成する。
【０１０４】
以下、本実施例の構成について説明する。本実施例の画像処理装置は、図２に示す構成に、ユーザに入力された基線長と被写界深度に対応する撮像パラメータを算出するパラメータ算出部１６０１を追加したものとなっている。パラメータ算出部１６０１は、バス２０４に他の構成部と同様に接続されている。また、撮像部１０１〜１０２は、Ｐｌｅｎｏｐｔｉｃ撮像部１６０２に変更されている。
【０１０５】
以下、本実施例の処理について、図１６に示すブロック図および図１７に示すフローチャートを参照して説明する。実施例１または実施例２と同じ処理については、同様の符号を付して説明を省略する。
【０１０６】
まず、ステップＳ１７０１では、ユーザが入力部２０９を介して、仮想視点画像を生成する所望の基線長および被写界深度を入力する。入力された基線長および被写界深度は、パラメータ算出部１６０１に出力される。
【０１０７】
ステップＳ１７０２では、パラメータ算出部１６０１が、ステップＳ１７０１で入力された基線長および被写界深度に基づいて、２回撮像を行う際の撮像パラメータを計算する。ここで計算される撮像パラメータは、それぞれ、所望の被写界深度のＬ画像およびＲ画像が得られる絞り値と、所望の基線長を持つＬ画像およびＲ画像が得られる絞り値である。そして、計算した撮像パラメータを撮像部１６０２に出力する。
【０１０８】
ステップＳ１７０３では、撮像部１６０２が、ステップＳ１７０２で算出された撮像パラメータに基づいて２回撮像を行う。
【０１０９】
ステップＳ１７０４では、ステップＳ４０１と同様に、画像取得部３０１が撮像部１６０２から画像データを取得する。この時、画像取得部３０１は、撮像センサ１４０４の出力から、撮像レンズ１４０１の同じ領域に対応する画素をそれぞれ抜き出すことで、複数の画像を示す画像データを得る。
【０１１０】
以下、ステップＳ４０２〜Ｓ４０３および、ステップＳ１００２〜Ｓ１００５の処理を行って処理を終了する。各画像の基線長や開口の大きさなどは、各画像に対応する撮像レンズの領域を１つの異なるカメラとみなして実施例２と同様に処理を行う。上記の処理によれば、Ｐｌｅｎｏｐｔｉｃカメラを用いて撮像された画像データから、所望の基線長と被写界深度の両方を持つ仮想視点画像を生成することができる。
【０１１１】
なお、本実施例のようにＰｌｅｎｏｐｔｉｃカメラを用いて撮像された画像データを用いる場合、マッチング時のぼけ付加において異なる式を用いることもできる。以下、その式について説明する。
【０１１２】
Ｐｌｅｎｏｐｔｉｃカメラで取得されたＬ画像とＲ画像において、ある被写体のぼけの直径ｂ［ｐｉｘｅｌ］と、Ｌ画像およびＲ画像でその被写体に対応する点の視差ｄ’［ｐｉｘｅｌ］の大きさには相関関係がある。それを図１８（ａ）および（ｂ）を用いて説明する。
【０１１３】
図１８（ａ）は、Ｌ画像とＲ画像に対応する視点の間の基線長Ｌと、視差ｄ’の関係を示す図である。合焦位置からずれた被写体１８０１からの像について考える。被写体１８０１から射出された光は結像面１８０２で結像し、それぞれ撮像センサ１４０４上の異なる位置に入射される。この時、それぞれの光が入射するセンサ上の位置の間の距離は、視差ｄ’の２倍となる。結像面１８０２が撮像レンズ１４０１からａ１の距離にあり、また、撮像センサ１４０４からａ２の距離にあるとすると、撮像面を介した２つの三角形は相似関係にあるので、以下の式が成り立つ。
Ｌ：ａ１＝２ｄ’：ａ２    （１１）
次に、図１８（ｂ）を用いて、同じ被写体１８０１に対応するぼけの直径について考える。被写体１８０１から射出された光は、撮像レンズ１４０１の右側領域を通り、結像面１８０２で結像した後に撮像センサ１４０４上の上に広がって入射される。この入射される範囲の直径は、Ｌ画像およびＲ画像におけるぼけの直径ｂの２倍となる。この時、式１１と同様に考えると、以下の式が成り立つ。
Ｌ：ａ１＝２ｂ’：ａ２    （１２）
式１１および式１２から、以下の式が得られる。
ｂ＝ｄ’    （１３）
この式は、視点の分割数に限らず、常に成り立つ。
【０１１４】
次に、絞りを開いた時に撮像された開口大画像と、絞りを絞った時に撮像された開口小画像のぼけの直径および視差の差について考える。開口大画像におけるある被写体のぼけの直径をｂ１、開口小画像における同じ被写体のぼけの直径をｂ２とする。そして開口大画像においてＲ画像とＬ画像の間で同じ被写体に対応する視差の大きさをｄ’１、開口小画像においてＲ画像とＬ画像の間で同じ被写体に対応する視差の大きさをｄ’２とすると、式１３から、以下の式が成り立つ。
｜ｂ１−ｂ２｜＝｜ｄ’１−ｄ’２｜    （１４）
ここで、開口大画像のＲ画像と開口小画像のＲ画像の間の視差をｄ［ｐｉｘｅｌ］とすると、
【０１１５】
【数１１】
2015135661.tif 000013
【０１１６】
が成り立つので、式１４および１５から、
｜ｂ１−ｂ２｜＝２ｄ    （１６）
となる。つまり、開口大画像と開口小画像の間のぼけの大きさの差は、開口大画像と開口小画像の、それぞれ同じ視点に対応する画像の視差に依存することになる。つまり、被写界深度の深い開口小画像のぼけを被写界深度の浅い開口大画像のぼけに合わせるためには、探索する視差の値に応じて、開口小画像に以下のフィルタを作用させればよい。
【０１１７】
【数１２】
2015135661.tif 000014
【０１１８】
この式を用いれば、より単純な式を用いてぼけを付加したマッチングを行うことができる。もちろん、実施例１と同様で、被写界深度の深いほうの画像にぼけ付加の処理を行うのではなく、被写界深度の浅いほうの画像にデコンボリューション処理を行ってもよい。
【０１１９】
なお、本実施例において、画像取得部３０１は、第一の視点から被写体を見た場合の第一の画像と、前記第一の視点とは異なる第二の視点から前記被写体を見た場合の画像であり、前記第一の画像とぼけ状態が異なる第二の画像とを取得する取得手段として機能する。また、ぼけ付加部６０２は、前記第一の画像と前記第二の画像のうちの少なくとも一方のぼけ状態を変化させる処理手段として機能する。また、粗精度視差算出部９０２は、前記処理手段によりぼけ状態が変化された後の、前記第一の画像と前記第二の画像とを比較することで、前記第一の画像と前記第二の画像との間で同一の被写体に対応する画像領域を決定する決定手段として機能する。また、粗精度視差算出部９０２は前記第一の画像と前記第二の画像と、前記第一の画像と前記第二の画像と同一の被写体を含む第三の画像とを用いて、上記三つの画像の間で対応する画像領域を決定する決定手段としても機能する。
【０１２０】
また、高精度視差算出部９０３は、前記第二の画像を用いずに、前記第一の画像と前記第三の画像とを用いて、前記第一の画像と前記第三の画像との間で対応する画像領域を新たに決定する再決定部として機能する。このとき、前記第一の画像と前記第三の画像との間で対応する画像領域前記第一の画像と前記第二の画像と前記第三の画像との間で対応する画像領域に基づいて決定される。
【０１２１】
また、入力部２０９は、ユーザ指示に基づいて画像の視点位置とぼけ状態とを示す画像情報を入力する入力手段として機能する。パラメータ算出部１６０１は、前記画像情報が示す視点位置の画像である第一の画像と、前記画像情報が示すぼけ状態の画像である第二の画像とを、取得するように、Ｐｌｅｎｏｐｔｉｃ撮像部の開口の大きさを制御する制御手段として機能する。また、画像合成部９０４は、前記第一の画像および前記第二の画像の間で対応する画像領域と、前記画像情報とに基づいて、前記画像情報が示す視点位置およびぼけ状態に対応する仮想視点画像を生成する生成手段として機能する。
【０１２２】
＜実施例４＞
実施例１〜３では、画像にぼけを付加する際に、探索位置に応じてガウシアンフィルタの強度を変化させる例について説明した。本実施例では、ぼけの形状が撮像部ごとに異なる場合や、探索視差に対してぼけの形状が解析的に定義できない場合を想定した構成について説明する。本実施例における画像処理装置２１０の構成および処理は、基本的には実施例１と同様であるため、ここでは実施例１との差異についてのみ述べる。本実施例の画像処理装置では、ステップＳ７０３のぼけの付与処理において、探索位置に応じて異なった形状のぼけフィルタが適用される。その処理を実現するための構成例として、本実施例の画像処理装置２１０では、ＲＯＭに２０３に撮像部１０１〜１０２のレンズのぼけ特性を表わすぼけフィルタを示すぼけフィルタデータベースが格納されている。そして、ステップＳ７０３のぼけの付与処理において、そのぼけフィルタデータベースが参照され、画像中での探索位置に応じた形状のぼけフィルタが使用される。
【０１２３】
ぼけフィルタデータベースの例を図１９（ａ）に示す。ぼけフィルタデータベースには、撮像部１０１〜１０２のレンズを通して撮像された画像に含まれる被写体の、ピント位置からの距離に応じた適切なぼけフィルタを格納したルックアップテーブル１９０１が格納されている。ＬＵＴ１９０１は、例えば撮像部１０１および撮像部１０２のレンズの設計値に基づいて生成することができる。図１９（ｂ）は、ぼけフィルタデータベースに格納されているぼけフィルタの例である。フィルタ１９０２は、着目画素の画素値を周囲の画素の画素値の線型結合で置き換える３×３画素の大きさのぼけフィルタである。なお、フィルタの大きさはこれに限られない。各四角形領域はそれぞれ画素を示し、＊で示される画素が着目画素である。各画素に記載されている数字は、フィルタ処理において該画素の画素値にかけられる重みを示している。フィルタ１９０２は、ガウシアンフィルタとは異なり、重み値の分布が着目画素を中心として非対称となっている。ぼけ付加部６０２は、ステップＳ７０３において、式（２）に基づいて探索位置に対応する視差値を距離に変換し、ＬＵＴ１９０１が示すぼけフィルタを読み込んで使用する。なお、ＬＵＴ１９０１としては、距離とフィルタの対応関係を示したテーブル以外に、視差値（画素）とフィルタの対応関係を示したテーブルを用いてもよい。また、ＬＵＴを用いずに、対応領域の探索中に各探索位置に対応するフィルタをシミュレーションや理論式に基づいて導出してもよい。
【０１２４】
上記の構成によれば、ぼけの形状が撮像部ごとに異なる場合や、探索視差に対してぼけの形状が解析的に定義できない場合においても、高精度なマッチングを行うことができる。なお、実施例３のＰｌｅｎｏｐｔｉｃカメラに本構成を適用する場合には、メインレンズ１４０１の開口の大きさや形状が異なる場合それぞれに対し、ピント位置からの距離とぼけフィルタとの対応関係を保持しておけばよい。
【０１２５】
＜その他の実施形態＞
本発明の実施形態は、上記の実施例に限られるものではなく、上記の実施例を組み合わせたものであってもよい。例えば、実施例２または３において、距離の算出も同時に行えるようにしてもよい。
【０１２６】
なお、上記の実施例では、複数の撮像部を備えた多眼カメラによって撮像された画像を示す画像データまたはＰｌｅｎｏｐｔｉｃカメラによって取得された画像データを用いた処理を行ったが、別の形態で撮像された画像を示す画像データを用いてもよい。例えば、それぞれが独立した複数のカメラによって撮像された画像を用いてもよい。
【０１２７】
また、実施例は一つの画像処理装置に限られず上記実施例に示される画像処理装置の機能を、複数の画像処理装置で分担する画像処理システムであってもよい。例えば、画像の合成処理と、オクルージョン領域の補正処理を異なる画像処理装置で行うようにしてもよい。
【０１２８】
また、本発明の画像処理装置の構成は上記実施例に示したものに限られず、各ブロックの機能を複数のブロックに分けたり、複数のブロックの機能を持つブロックを含むような構成にしてもよい。また、上記実施例では、ＣＰＵ２０１が、ＲＯＭ２０３に記憶されたプログラムを実行して各処理回路を動作させることで処理を行ったが、全ての処理を制御部ＣＰＵ２０１だけで行うようにしてもよい。また、制御部２０１を用いずに、全ての処理を１つの処理回路で行うようにしてもよい。
【０１２９】
なお、本発明は例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。また、複数の機器から構成されるシステムに適用してもよいし、一つの機器からなる装置に適用してもよい。
【０１３０】
また、本発明は、上述した実施例の機能（例えば、上記のフローチャートにより示される工程）を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給することによっても実現できる。この場合、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ）が、コンピュータが読み取り可能に記憶媒体に格納されたプログラムコードを読み出し実行することにより、上述した実施例の機能を実現する。また、プログラムは、１つのコンピュータで実行させても、複数のコンピュータを連動させて実行させるようにしてもよい。
【符号の説明】
【０１３１】
３０１  画像取得部
３０４  対応領域決定部
６０２  ぼけ付加部
【図１】
2015135661.tif 000015
【図２】
2015135661.tif 000016
【図３】
2015135661.tif 000017
【図４】
2015135661.tif 000018
【図５】
2015135661.tif 000019
【図６】
2015135661.tif 000020
【図７】
2015135661.tif 000021
【図８】
2015135661.tif 000022
【図９】
2015135661.tif 000023
【図１０】
2015135661.tif 000024
【図１１】
2015135661.tif 000025
【図１２】
2015135661.tif 000026
【図１３】
2015135661.tif 000027
【図１４】
2015135661.tif 000028
【図１６】
2015135661.tif 000029
【図１７】
2015135661.tif 000030
【図１８】
2015135661.tif 000031
【図１９】
2015135661.tif 000032
【図１５】
2015135661.tif 000033