本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
<A.概要>
本発明の実施の形態に従う画像処理システムは、被写体を複数の視点でそれぞれ撮像することで得られる複数の入力画像から立体視表示を行なうためのステレオ画像を生成する。このステレオ画像の生成にあたって、画像処理システムは、それぞれの入力画像の周波数特性が取得し、取得された周波数特性に基づいて相対的に画質がよいと判断された入力画像を主体的に用いて、それぞれの入力画像から、被写体を立体視表示するためのステレオ画像が生成する。
これにより、一方の入力画像にぼけなどの欠陥が存在する場合であっても、立体視表示の品質を維持できる。
<B.システム構成>
まず、本発明の実施の形態に従う画像処理システムの構成について説明する。
(b1:基本的構成)
図1は、本発明の実施の形態に従う画像処理システム1の基本的構成を示すブロック図である。図1を参照して、画像処理システム1は、撮像部2と、画像処理部3と、3D画像出力部4とを含む。図1に示す画像処理システム1においては、撮像部2が被写体を撮像することで一対の入力画像(入力画像1および入力画像2)を取得し、画像処理部3がこの取得された一対の入力画像に対して後述するような画像処理を行なうことで、被写体を立体視表示するためのステレオ画像(左眼用画像および右眼用画像)を生成する。そして、3D画像出力部4は、このステレオ画像(左眼用画像および右眼用画像)を表示デバイスなどへ出力する。
撮像部2は、同一対象物(被写体)を異なる視点で撮像して一対の入力画像を生成する。より具体的には、第1カメラ21と、第2カメラ22と、第1カメラと接続されたA/D(Analog to Digital)変換部23と、第2カメラ22と接続されたA/D変換部24とを含む。A/D変換部23は、第1カメラ21により撮像された被写体を示す入力画像1を出力し、A/D変換部24は、第2カメラ22により撮像された被写体を示す入力画像2を出力する。
すなわち、第1カメラ21およびA/D変換部23は、被写体を撮像して第1の入力画像を取得する第1の撮像手段に相当し、第2カメラ22およびA/D変換部24は、第1の撮像手段とは異なる視点から被写体を撮像して第2の入力画像を取得する第2の撮像手段に相当する。
第1カメラ21は、被写体を撮像するための光学系であるレンズ21aと、レンズ21aにより集光された光を電気信号に変換するデバイスである撮像素子21bとを含む。A/D変換部23は、撮像素子21bから出力される被写体を示す映像信号(アナログ電気信号)をデジタル信号に変換して出力する。同様に、第2カメラ22は、被写体を撮像するための光学系であるレンズ22aと、レンズ22aにより集光された光を電気信号に変換するデバイスである撮像素子22bとを含む。A/D変換部24は、撮像素子22bから出力される被写体を示す映像信号(アナログ電気信号)をデジタル信号に変換して出力する。撮像部2はさらに、各部分を制御するための制御処理回路などを含み得る。
後述するように、本実施の形態に従う画像処理においては、一方のカメラで撮像された入力画像だけを用いても、ステレオ画像(左眼用画像および右眼用画像)を生成することができる。そのため、一方の入力画像の画質が劣化していても、画質が良好な他方の入力画像を用いることで、ステレオ画像を生成することができる。すなわち、第1カメラ21および第2カメラ22におけるオートフォーカス動作の違い、第1カメラ21および第2カメラ22にそれぞれ生じる手ぶれ量の違い、ユーザーが無意識に触ってしまうことによるレンズ21aまたはレンズ22aの汚れなどによって、一方のカメラによって撮像された入力画像のみがぼけてしまった場合であっても、品質が良好なステレオ画像を生成できる。
図2は、図1に示す撮像部2の具体的な構成例を示す図である。より具体的には、図2には、基本的なスペックを同一としたレンズ21aおよび22aからなる撮像部2の一例を示す。この撮像部2においては、いずれのレンズについても光学ズーム機能を搭載してもよい。
本実施の形態に従う画像処理方法においては、同一の被写体に対するそれぞれのカメラの視線方向(視点)が異なっていればよいので、撮像部2において、レンズ21aと22aとの配置(縦方向配列または横方向配列)は任意に設定できる。すなわち、図2(a)に示すように縦長方向に配置(縦ステレオ)して撮像してもよいし、図2(b)に示すように横長方向に配置(横ステレオ)して撮像してもよい。
本実施の形態に従う画像処理方法においては、入力画像1および入力画像2を必ずしも同時に取得する必要はない。すなわち、入力画像1および入力画像2を取得するための撮像タイミングにおいて、被写体に対する撮像部2の位置関係が実質的に同じであれば、入力画像1および入力画像2を異なるタイミングでそれぞれ取得してもよい。また、本実施の形態に従う画像処理方法においては、静止画だけではなく、動画としても立体視表示を行なうためのステレオ画像を生成することができる。この場合には、第1カメラ21および第2カメラ22の間で同期を取りつつ、時間的に連続して被写体を撮像することで、それぞれのカメラについての一連の画像をそれぞれ取得することができる。また、本実施の形態に従う画像処理方法においては、入力画像は、カラー画像であってもよいし、モノクロ画像であってもよい。
再度図1を参照して、画像処理部3は、撮像部2によって取得された一対の入力画像に対して、本実施の形態に従う画像処理方法を実施することで、被写体を立体視表示するためのステレオ画像(左眼用画像および右眼用画像)を生成する。より具体的には、画像処理部3は、エッジ抽出部30と、対応点探索部31と、距離画像生成部32と、スムージング処理部33と、視差調整部34と、3D画像生成部35とを含む。
エッジ抽出部30は、一対の入力画像(入力画像1および入力画像2)の周波数特性を取得する。より具体的には、エッジ抽出部30は、それぞれの入力画像に含まれるエッジ量を算出する。この算出されたエッジ量が多いほど、対象の入力画像に高周波成分が多いことを示す。すなわち、相対的に画質のよい入力画像は、周波数特性の高い方の入力画像に相当する。
本実施の形態においては、より多くの高周波成分を含む入力画像を相対的に画質がよいと判断するため、エッジ量がより多い入力画像ほど、高画質であると判断する。これは、入力画像がぼけた場合には、全体的に緩慢な絵になるので、エッジ量が少なく、その中に含まれる周波数成分が相対的に低周波側へ移動することを利用したものである。
なお、入力画像の周波数特性を取得する方法としては、入力画像に含まれるエッジ量を抽出する方法に代えて、入力画像に対して各種の周波数分析を行ない、この周波数分析の結果に基づいて、対象の入力画像の画質を評価してもよい。すなわち、周波数特性は、典型的には、エッジ量または周波数分析により判定される。
対応点探索部31は、一対の入力画像(入力画像1および入力画像2)に対して対応点探索の処理を行なう。この対応点探索の処理は、典型的には、POC(Phase-Only Correlation)演算法、SAD(Sum of Absolute Difference)演算法、SSD(Sum of Squared Difference)演算法、NCC(Normalized Cross Correlation)演算法などを用いることができる。すなわち、対応点探索部31は、入力画像1と入力画像2との間における被写体の各点についての対応関係を探索する。
距離画像生成部32は、2つの入力画像についての距離情報を取得する。この距離情報は、同一の被写体についての情報の相違に基づいて算出される。典型的には、距離画像生成部32は、対応点探索部31によって探索された被写体の各点についての入力画像の間での対応関係から距離情報を算出する。撮像部2では、異なる視点からそれぞれ被写体を撮像する。そのため、2つの入力画像の間では、被写体のある点(注目点)を表現する画素は、撮像部2と当該被写体の点との距離に応じた距離だけずれることになる。本明細書においては、入力画像1の注目点に対応する画素の画像座標系上の座標と、入力画像2の注目点に対応する画素の画像座標系上の座標との差を「視差」と称する。距離画像生成部32は、対応点探索部31によって探索された被写体の注目点の各々について、視差を算出する。
この視差は、撮像部2から被写体の対応する注目点までの距離を示す指標値である。視差が大きいほど、撮像部2から被写体の対応する注目点までの距離が短い、すなわち撮像部2により近接していることを意味する。本明細書においては、視差、および、視差によって示される被写体の各点の撮像部2からの距離を、総称して「距離情報」という用語を用いる。
なお、入力画像間で視差が生じる方向は、撮像部2における第1カメラ21と第2カメラ22との間の位置関係に依存する。例えば、第1カメラ21と第2カメラ22とを縦方向に所定間隔だけ離して配置した場合には、入力画像1と入力画像2との間での視差は縦方向に生じることになる。
距離画像生成部32は、被写体の各点についての距離情報として算出し、算出したそれぞれの距離情報を画像座標系上の座標に関連付けて表現した距離画像(視差画像)を生成する。
スムージング処理部33は、距離画像生成部32によって生成された距離画像に対してスムージング処理する。
視差調整部34は、許容される視差範囲(最大飛び出し位置から最大奥行き位置までの範囲)に適合するように、生成された距離画像を調整する。この視差調整部34による調整処理の詳細については後述する。
3D画像生成部35は、視差調整部34による調整後の距離画像に基づいて、入力画像を構成する各画素を対応する距離情報(画素数)だけずらすことで、被写体を立体視表示するためのステレオ画像(左眼用画像および右眼用画像)を生成する。このように、距離情報に基づいて、入力画像に含まれる画素を横方向にずらすことで被写体を立体視表示するためのステレオ画像が生成される。左眼用画像と右眼用画像との間について見れば、被写体の各点は、距離画像によって示される距離情報(画素数)に応じた距離だけ離れて、すなわち距離情報(画素数)に応じた視差が与えられて表現される。これにより、被写体を立体視表示することができる。
本実施の形態においては、3D画像生成部35は、エッジ抽出部30などによって取得された周波数特性に基づいていずれの入力画像の画質が相対的によいかを判断し、そして、相対的に画質がよいと判断された入力画像を主体的に用いて、入力画像1および2から、被写体を立体視表示するためのステレオ画像を生成する。すなわち、本実施の形態においては、少なくとも2つの撮像系により撮像されたそれぞれの入力画像に対し、それぞれの画像についての周波数特性を検出し、その検出結果に基づいて、画質のよい方を優先的に用いてステレオ画像を生成する。
例えば、3D画像生成部35は、入力画像1の画質が相対的によい場合には、入力画像1をそれぞれの画素について対応する距離情報(画素数)だけ横方向にずらした一対の画像(左眼用画像および右眼用画像)を生成する。なお、入力画像1をそのまま左眼用画像または右眼用画像として用いるとともに、入力画像1の各画素を対応する距離情報(画素数)だけ横方向にずらすことで他方の右眼用画像または左眼用画像を生成してもよい。
これに対して、3D画像生成部35は、入力画像2の画質が相対的によい場合には、入力画像2をそれぞれの画素について対応する距離情報(画素数)だけ横方向にずらした一対の画像(左眼用画像および右眼用画像)を生成する。上述と同様に、入力画像2をそのまま左眼用画像または右眼用画像として用いるとともに、入力画像2の各画素を対応する距離情報(画素数)だけ横方向にずらすことで他方の右眼用画像または左眼用画像を生成してもよい。
このとき、相対的に画質が悪い入力画像については、距離画像の生成にのみ利用されるので、ステレオ画像には、一方の入力画像における画質の劣化部分が含まれることはない。これにより、一方の入力画像にぼけなどの欠陥が存在する場合であっても、立体視表示の品質を維持できる。
3D画像出力部4は、画像処理部3によって生成されるステレオ画像(左眼用画像および右眼用画像)を表示デバイスなどへ出力する。
各部の処理動作の詳細については、後述する。
図1に示す画像処理システム1は、各部を独立に構成することもできるが、汎用的には、以下に説明するデジタルカメラやパーソナルコンピューターなどとして具現化される場合が多い。そこで、本実施の形態に従う画像処理システム1の具現化例について説明する。
(b2:具現化例1)
図3は、図1に示す画像処理システム1を具現化したデジタルカメラ100の構成を示すブロック図である。図3に示すデジタルカメラ100は、2つのカメラ(第1カメラ121および第2カメラ122)を搭載しており、被写体を立体視表示するためのステレオ画像を撮像することができる。図3において、図1に示す画像処理システム1を構成するそれぞれのブロックに対応するコンポーネントには、図1と同一の参照符号を付している。
デジタルカメラ100では、第1カメラ121で被写体を撮像することで取得される入力画像が記憶および出力され、第2カメラ122で当該被写体を撮像することで取得される入力画像については、主として、上述の対応点探索処理および距離画像生成処理に用いられる。そのため、第1カメラ121についてのみ光学ズーム機能が搭載されているとする。
図3を参照して、デジタルカメラ100は、CPU(Central Processing Unit)102と、デジタル処理回路104と、画像表示部108と、カードインターフェイス(I/F)110と、記憶部112と、ズーム機構114と、加速度センサー116と、第1カメラ121と、第2カメラ122とを含む。
CPU102は、予め格納されたプログラム(画像処理プログラムを含む)などを実行することで、デジタルカメラ100の全体を制御する。デジタル処理回路104は、本実施の形態に従う画像処理を含む各種のデジタル処理を実行する。デジタル処理回路104は、典型的には、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、LSI(Large Scale Integration)、FPGA(Field-Programmable Gate Array)などによって構成される。このデジタル処理回路104は、図1に示す画像処理部3が提供する機能を実現するための画像処理回路106を含む。
画像表示部108は、第1カメラ121および/または第2カメラ122により提供される画像、デジタル処理回路104(画像処理回路106)によって生成される画像、デジタルカメラ100に係る各種設定情報、および、制御用GUI(Graphical User Interface)画面などを表示する。画像表示部108は、画像処理回路106によって生成されるステレオ画像を用いて、被写体を立体視表示できることが好ましい。この場合、画像表示部108は、3次元表示方式に対応した任意の表示デバイス(3次元表示用の液晶表示装置)によって構成される。このような3次元表示方式としては、パララックスバリア方式などを採用することができる。このパララックスバリア方式では、液晶表示面にパララックスバリアを設けることで、ユーザーの右眼で右眼用画像を視認させ、ユーザーの左眼で左眼用画像を視認させることができる。あるいは、シャッタメガネ方式を採用してもよい。このシャッタメガネ方式では、左眼用画像および右眼用画像を交互に高速で切り替えて表示するとともに、この画像の切り替えに同期して開閉するシャッターが搭載された専用メガネをユーザーが装着することで、立体視表示を楽しむことができる。
カードインターフェイス(I/F)110は、画像処理回路106によって生成された画像データを記憶部112へ書き込み、あるいは、記憶部112から画像データなどを読み出すためのインターフェイスである。記憶部112は、画像処理回路106によって生成された画像データや各種情報(デジタルカメラ100の制御パラメータや動作モードなどの設定値)を格納する記憶デバイスである。この記憶部112は、フラッシュメモリ、光学ディスク、磁気ディスクなどからなり、データを不揮発的に記憶する。
ズーム機構114は、ユーザー操作などに応じて、第1カメラ121の撮像倍率を変更する機構である。ズーム機構114は、典型的には、サーボモーターなどを含み、第1カメラ121を構成するレンズ群を駆動することで、焦点距離を変化させる。
加速度センサー116は、重力加速度を検出することで、デジタルカメラ100の姿勢を判断する。
第1カメラ121は、被写体を撮像することでステレオ画像を生成するための入力画像を生成する。第1カメラ121は、ズーム機構114によって駆動される複数のレンズ群からなる。第2カメラ122は、後述するような対応点探索処理や距離画像生成処理に用いられ、第1カメラ121によって撮像される同一の被写体を別の視点から撮像する。
このように、図3に示すデジタルカメラ100は、本実施の形態に従う画像処理システム1の全体を単体の装置として実装したものである。すなわち、ユーザーは、デジタルカメラ100を用いて被写体を撮像することで、画像表示部108において当該被写体を立体的に視認することができる。
(b3:具現化例2)
図4は、図1に示す画像処理システム1を具現化したパーソナルコンピューター200の構成を示すブロック図である。図4に示すパーソナルコンピューター200では、一対の入力画像を取得するための撮像部2が搭載されておらず、任意の撮像部2によって取得された一対の入力画像(入力画像1および入力画像2)が外部から入力される構成となっている。このような構成であっても、実施の形態に従う画像処理システム1に含まれ得る。なお、図4においても、図1に示す画像処理システム1を構成するそれぞれのブロックに対応するコンポーネントには、図1と同一の参照符号を付している。
図4を参照して、パーソナルコンピューター200は、パーソナルコンピューター本体202と、モニター206と、マウス208と、キーボード210と、外部記憶装置212とを含む。
パーソナルコンピューター本体202は、典型的には、汎用的なアーキテクチャーに従う汎用コンピューターであり、基本的な構成要素として、CPU、RAM(Random Access Memory)、ROM(Read Only Memory)などを含む。パーソナルコンピューター本体202は、図1に示す画像処理部3が提供する機能を実現するための画像処理プログラム204が実行可能になっている。このような画像処理プログラム204は、CD−ROM(Compact Disk-Read Only Memory)などの記憶媒体に格納されて流通し、あるいは、ネットワークを介してサーバー装置から配信される。そして、画像処理プログラム204は、パーソナルコンピューター本体202のハードディスクなどの記憶領域内に格納される。
このような画像処理プログラム204は、パーソナルコンピューター本体202で実行されるオペレーティングシステム(OS)の一部として提供されるプログラムモジュールのうち必要なモジュールを、所定のタイミングおよび順序で呼出して処理を実現するように構成されてもよい。この場合、画像処理プログラム204自体には、OSが提供するモジュールは含まれず、OSと協働して画像処理が実現される。また、画像処理プログラム204は、単体のプログラムではなく、何らかのプログラムの一部に組込まれて提供されてもよい。このような場合にも、画像処理プログラム204自体には、当該何らかのプログラムにおいて共通に利用されるようなモジュールは含まれず、当該何らかのプログラムと協働して画像処理が実現される。このような一部のモジュールを含まない画像処理プログラム204であっても、本実施の形態に従う画像処理システム1の趣旨を逸脱するものではない。
もちろん、画像処理プログラム204によって提供される機能の一部または全部を専用のハードウェアによって実現してもよい。
モニター206は、オペレーティングシステム(OS)が提供するGUI画面、画像処理プログラム204によって生成される画像などを表示する。モニター206は、図3に示す画像表示部108と同様に、画像処理プログラム204によって生成されるステレオ画像を用いて、被写体を立体視表示できることが好ましい。この場合、モニター206としては、画像表示部108において説明したのと同様に、パララックスバリア方式やシャッタメガネ方式などの表示デバイスによって構成される。
マウス208およびキーボード210は、それぞれユーザー操作を受付け、その受付けたユーザー操作の内容をパーソナルコンピューター本体202へ出力する。
外部記憶装置212は、何らかの方法で取得された一対の入力画像(入力画像1および入力画像2)を格納しており、この一対の入力画像をパーソナルコンピューター本体202へ出力する。外部記憶装置212としては、フラッシュメモリ、光学ディスク、磁気ディスクなどのデータを不揮発的に記憶するデバイスが用いられる。
このように、図4に示すパーソナルコンピューター200は、本実施の形態に従う画像処理システム1の一部を単体の装置として実装したものである。このようなパーソナルコンピューター200を用いることで、ユーザーは、任意の撮像部(ステレオカメラ)を用いて異なる視点で被写体を撮像することで取得された一対の入力画像から、当該被写体を立体視表示するためのステレオ画像(左眼用画像および右眼用画像)を生成することができる。さらに、この生成したステレオ画像をモニター206で表示することで、立体視表示を楽しむこともできる。
(b4:具現化例3)
図5は、図1に示す画像処理システム1を具現化した携帯電話300の外観図である。図5を参照して、レンズ21aおよび撮像素子21bからなる撮像部2は、携帯電話300の一方面に実装されることになる。なお、携帯電話300のステレオ画像生成に係る構成は、図3に示すデジタルカメラ100の構成と同様であるので、詳細な説明は繰り返さない。
<C.第1の実施の形態(縦ステレオ)>
まず、第1の実施の形態に従う画像処理方法として、上述した図2(a)に示すように、同一種類のレンズ(光学ズーム機能無し)を縦方向に所定間隔だけ離して2つ配置した構成(ステレオカメラ)を想定する。
上述したように、市販されているステレオ画像を生成可能なデジタルカメラや携帯電話などは、撮像された画像をそのままステレオ画像として出力するため、片側だけぼけた画像が撮像され、立体視として見づらいことがある。これは、オートフォーカスがばらばらに動作することで合焦位置(ピント位置)が異なってしまったり、特に、携帯電話の場合にレンズ面がむき出しになっている(露出している)ため、片側のレンズを触って汚してしまったりすることに起因する。本実施の形態においては、このような場合であっても、高画質なステレオ画像を生成する。
図6は、第1の実施の形態に従う画像処理方法の手順を示す図である。図6を参照して、第1の実施の形態に従う画像処理方法は、第1カメラ21および第2カメラ22が同一の被写体を撮像することでそれぞれ取得される入力画像1および入力画像2に対して、それぞれエッジ抽出処理が実行される(ステップS1およびS2)。それぞれの入力画像から抽出されたエッジ量に基づいてエッジ量比較処理が実行される(ステップS3)。そして、このエッジ量比較処理の結果に基づいて、出力用画像決定処理が実行される(ステップS4)。この出力用画像決定処理によって、ステレオ画像を生成するために用いる入力画像が決定される。
また、ステレオ画像を生成するために用いる入力画像が決定されると、対応点探索処理(ステップS10A,S10B)、視差画像生成処理(ステップS11A,S11B)、スムージング処理(ステップS12A,S12B)、視差調整処理(ステップS13A,S13B)、ステレオ画像生成処理(ステップS14A,S14B)が順次実行され、ステレオ画像が生成される。以下、各ステップについて詳述する。
(c1:入力画像)
図7は、図1に示す撮像部2によって撮像された一対の入力画像の一例を示す図である。図7(a)は、第1カメラ21によって撮像された入力画像1を示し、図7(b)は、第2カメラ22によって撮像された入力画像2を示す。図7(a)に示す入力画像1は、最終的に出力されるステレオ画像の一方の画像(この例では、左眼用画像)としてそのまま用いることができ、図7(b)に示す入力画像2は、最終的に出力されるステレオ画像の他方の画像(この例では、右眼用画像)としてそのまま用いることができるものとする。但し、図7の例では、レンズを縦方向に所定間隔だけ離して2つ配置した構成において撮像したものであり、入力画像1および入力画像2の両方を出力しただけでは、ステレオ画像にはならない。
図7には、説明を容易にするために、画像座標系を便宜的に定義している。より具体的には、入力画像の横方向をX軸とし、入力画像の縦方向をY軸とする直交座標系を採用する。このX軸およびY軸の原点は、便宜上、入力画像の左上端であるとする。また、撮像部2(図1)の視線方向をZ軸とする。この直交座標系は、本明細書中の他の図面についての説明においても利用する場合がある。
上述したように、第1カメラ121および第2カメラ122を縦方向に配列した撮像部2を用いているので、図7(a)に示す入力画像1と図7(b)に示す入力画像2との間には、Y軸方向に沿って視差が生じている。
(c2:エッジ抽出処理)
まず、図6に示すエッジ抽出処理(ステップS1およびS2)の詳細について説明する。図8は、図6に示すエッジ抽出処理(ステップS1およびS2)の処理手順を示すフローチャートである。図9は、図8のスムージング処理(ステップS2)において用いられるエッジ抽出用の平均化フィルタの一例を示す図である。このエッジ抽出処理は、図1に示すエッジ抽出部30によって実行される。このエッジ抽出処理では、入力画像1および入力画像2のそれぞれの周波数特性が取得される。
図8を参照して、エッジ抽出部30は、入力画像に対してスムージング処理を行なう(ステップS101)。このスムージング処理では、図9に示すようなエッジ抽出用の平均化フィルタを用いて、入力画像の各画素についての平均化処理後の値が算出される。本実施の形態においては、1つの対象画素を中心とする9画素×9画素の大きさのスムージングフィルタが用いられる。平均化処理後の画素からなる画像をスムージング画像と称す。
続いて、エッジ抽出部30は、元の入力画像とスムージング画像との間で差分処理を行なう(ステップS102)。より具体的には、エッジ抽出部30は、元の入力画像とスムージング画像との間で、各画素について画素値の差分を算出し、算出した各画素の差分の絶対値をすべての画素について積算する。
入力画像がぼけている場合には、平均化フィルタを用いてスムージング処理を実行したとしても、元の入力画像からの変化が小さい。この原理を利用して、元の入力画像とスムージング画像との間の差分の絶対値が大きい方が、より多く高周波成分が含まれる入力画像であると判断できる。
最終的に、エッジ抽出部30は、算出した差分の絶対値(エッジ量)を出力する(ステップS103)。このエッジ量が多いほど、より多くの高周波成分が含まれることを意味する。
(c3:エッジ量比較処理および出力用画像決定処理)
続いて、図6に示すエッジ量比較処理(ステップS3)および出力用画像決定処理(ステップS4)の詳細について説明する。
エッジ量比較処理においては、入力画像1に対するエッジ抽出処理(ステップS1)によって算出されたエッジ量と、入力画像2に対するエッジ抽出処理(ステップS2)によって算出されたエッジ量とが比較される。すなわち、エッジ量比較処理は、エッジ量がより多い、すなわちより多くの高周波成分を含む入力画像がいずれであるかを判断する。このエッジ量の大小関係の判断により、より多くの高周波成分を含む入力画像を決定できる。
出力用画像決定処理(ステップS4)においては、エッジ量(差分の絶対値)がより大きい入力画像を出力用画像として選択する。図7に示す例では、入力画像1の方が、相対的に画質がよいと判断されたものとする。この出力用画像決定処理(ステップS4)による判断結果に応じて、入力画像1を主体的に用いてステレオ画像が生成するための処理(ステップS10A〜S14A)、または、入力画像2を主体的に用いてステレオ画像が生成するための処理(ステップS10B〜S14B)が実行される。
(c4:対応点探索処理および距離画像生成処理)
次に、対応点探索処理(ステップS10A,S10B)および距離画像生成処理(ステップS11A,S11B)について説明する。なお、後述の説明においては、入力画像1を主体的に用いる場合について例示的に説明するが、入力画像2を主体的に用いる場合も同様の処理を行なうことができる。
対応点探索処理においては、一対の入力画像(入力画像1および入力画像2)の間の位置関係の対応付けが探索される。この対応点探索処理は、図1に示す対応点探索部31によって実行される。より具体的には、対応点探索処理では、一方の入力画像の注目点にそれぞれ対応する他方の入力画像の画素(座標値)を特定する。このような対応点探索処理は、POC演算法、SAD演算法、SSD演算法、NCC演算法などを用いたマッチング処理が利用される。
対応点探索処理においては、一方の入力画像を基準画像に設定するとともに、他方の入力画像を参照画像に設定して、両画像間の対応付けが行なわれる。いずれの入力画像を主体的に用いるかに応じて、この基準画像に設定される入力画像が変更されることになる。
続いて、対応点探索処理によって特定された注目点と対応点との間の対応関係に基づいて、被写体の各点の座標に関連付けられた距離情報を示す距離画像を生成するための距離画像生成処理が実行される。この距離画像生成処理は、図1に示す距離画像生成部32によって実行される。この距離画像生成処理では、注目点の各々について、入力画像1の画像座標系における当該注目点の座標と、入力画像2の画像座標系における対応点の座標との差(視差)が算出される。
算出される視差は、入力画像1を主体的に用いる場合には、対応する入力画像1の注目点の座標に関連付けて記憶され、入力画像2を主体的に用いる場合には、対応する入力画像2の注目点の座標に関連付けて記憶される。距離情報としては、対応点探索処理によって探索されたそれぞれの注目点について、入力画像1または入力画像2上の座標および対応する視差が関連付けられる。この距離情報を入力画像1または入力画像2の画素配列に対応付けて配列することで、入力画像1または入力画像2の画像座標系に対応して各点の視差を表す距離画像が生成される。
なお、このような対応点探索処理および距離画像生成処理としては、特開2008−216127号公報に記載された方法を採用してもよい。特開2008−216127号公報には、サブピクセルの粒度で視差(距離情報)を算出するための方法が開示されているが、ピクセルの粒度で視差(距離情報)を算出するようにしてもよい。
なお、入力画像がRGBなどのカラー画像である場合には、グレイ画像に変換した後に対応点探索処理を行なってもよい。
図10は、第1の実施の形態に従う画像処理方法に従って図7に示す一対の入力画像から生成された距離画像の一例を示す図である。すなわち、図10(a)には、図7(a)に示す入力画像1を基準画像に設定し、図7(b)に示す入力画像2を参照画像に設定した上で、対応点探索処理を行なうことで得られた距離画像(視差画像)の一例を示す。なお、図10(b)には、後述するスムージング処理後の距離画像の一例を示す。図10に示すように、入力画像1の各点の各点に関連付けられた視差(距離情報)の大きさは、対応する点の濃淡によって表現される。
上述した対応点探索処理および距離画像生成処理において、相関演算を行なうことで注目点およびその対応点を特定するので、所定の画素サイズを有する単位領域毎に対応点が探索される。図10には、32画素×32画素の単位領域毎に対応点探索が実行された一例を示す。すなわち、図7に示す例では、X軸(横方向)およびY軸(縦方向)のいずれも32画素間隔で規定された単位領域毎に対応点が探索され、その探索された対応点との間の距離が算出される。この探索された対応点との間の距離を示す距離画像は、入力画像の画素サイズと一致するように生成される。例えば、入力画像1が3456画素×2592画素のサイズを有している場合には、108点×81点の探索点において距離が算出され、この算出されたそれぞれの距離から入力画像の画素サイズに対応する距離画像が生成される。
なお、入力画像の最外周にある32画素分の領域(探索ウィンドウ)については、対応点が存在しないと誤って判断される可能性があるため、対応点探索処理を行なわず、最も近接した位置にある画素の距離(視差)データで代用した。すなわち、入力画像の最外周にある32画素分の領域については、最外周から32画素だけ内側に入った位置にある画素の値を用いた。
(c5:スムージング処理)
距離画像が取得されると、当該取得された距離画像に対して、スムージング処理(図6のステップS12A,S12B)が実行される。このスムージング処理は、図1に示すスムージング処理部33によって実行される。このスムージング処理では、距離画像の全体が平均化される。
このようなスムージング処理の具現化例として、所定サイズの二次元フィルタを用いる方法がある。
図11は、図6のスムージング処理(ステップS12A,S12B)において用いられる平均化フィルタの一例を示す図である。距離画像に対するスムージング処理では、例えば、図11に示すような81画素×81画素の平均化フィルタが適用される。平均化フィルタでは、対象画素を中心とする縦方向81画素および横方向81画素の範囲に含まれる距離画像の画素値(視差)の平均値が当該対象画素の新たな画素値として算出される。より具体的には、フィルタ内に含まれる画素が有する画素値の総和をフィルタの画素サイズで除算することで、対象画素の新たな画素値が算出される。
なお、フィルタ内に含まれるすべての画素の操作をとるのではなく、所定間隔毎(例えば、9画素)に間引いて抽出した画素の平均値を用いてもよい。このような間引き処理を行なった場合であっても、全画素の平均値を用いた場合と同様の平滑化結果が得られる場合があり、そのような場合には、間引き処理を行なうことで処理量を低減できる。
図10(b)は、図10(a)に示す距離画像に対してスムージング処理を行なった結果を示す図である。図10(b)に示すスムージング処理後の距離画像では、隣接する画素間で画素値(視差)が大きく変化しないようになっていることがわかる。
なお、スムージング処理によって得られた距離画像の画素サイズは、入力画像と同一の画素サイズであることが好ましい。画素サイズを同一にすることで、後述するステレオ画像生成処理において、各画素の距離を一対一で決定することができる。
(c6:視差調整処理)
スムージング処理後の距離画像が取得されると、より快適な視差量で立体視表示できるように、視差調整処理が実行される。この視差調整処理は、スムージング処理後の距離画像の画素値(視差)が予め定められた視差範囲(ターゲット視差レンジ)内に存在するように、スケーリングを行なう。
図12は、図6に示す視差調整処理(ステップS13A,A13B)の処理内容を説明するための図である。図12には、スムージング処理後の距離画像における視差(距離)量を横軸とし、視差調整処理後の視差(距離)量を縦軸としている。視差調整処理では、図12における視差調整関数を決定する。
より具体的な手順としては、まず、ターゲット視差レンジrの大きさを決定する。このターゲット視差レンジrは、入力画像の横幅を基準として経験的に決定される。例えば、1920画素×1080画素の入力画像であれば、49画素に決定される。このターゲット視差レンジrは、動的に決定してもよいし、予め設定された固定値を用いるようにしてもよい。
また、スムージング処理後の距離画像に含まれる視差(距離)量の最大値を最大視差Pmaxとし、最小値を最小視差Pminとする。すなわち、最大視差Pmaxを有する画素の画像は最も飛び出して立体視表示され、最小視差Pminを有する画素の画像は最も奥行きに存在するように立体視表示される。視差調整処理においては、最大視差Pmax(表示面に直交する方向に最も飛び出した位置)と、最小視差Pmin(表示面に直交する方向(Z軸方向)における最も奥行き側の位置)との間のレンジが、ターゲット視差レンジrと一致するように、視差調整関数の傾きである視差増減係数cと、視差調整関数の切片であるオフセットoとが算出される。より具体的には、以下の式に従って、視差増減係数cおよびオフセットoが算出される。
視差増減係数c=ターゲット視差レンジr/(最大視差Pmax−最小視差Pmin)
オフセットo=(最大視差Pmax+最小視差Pmin)/2
調整後視差(距離)量=視差増減係数c×(調整前視差(距離)量−オフセットo)
(c7:ステレオ画像生成処理)
スムージング処理後の距離画像が取得されると、当該取得された距離画像を用いて、ステレオ画像生成処理(図6のステップS14A,S14B)が実行される。このステレオ画像生成処理は、図1に示す3D画像生成部35によって実行される。
ステレオ画像生成処理では、入力画像1が主体的に用いられる場合には、入力画像1をそのまま左眼用画像として出力するとともに、入力画像1の各画素を対応する距離(視差)に応じて位置をずらすことで、右眼用画像を生成する。一方、入力画像2が主体的に用いられる場合には、入力画像2をそのまま右眼用画像として出力するとともに、入力画像2の各画素を対応する距離(視差)に応じて位置をずらすことで、左眼用画像を生成する。
なお、被写体を立体視表示するためには、左眼用画像および右眼用画像との間で、対応する画素が指定された距離(視差)だけ離れていればよいので、入力画像から左眼用画像および右眼用画像をそれぞれ生成してもよい。
図13は、図6のステレオ画像生成処理(ステップS14A,S14B)における処理手順を説明するための図である。図13には、入力画像1を主体的に用いる場合の処理例を示す。図14は、図13に示すステレオ画像生成処理の処理手順を示すフローチャートである。
図13を参照して、ステレオ画像生成処理においては、距離画像に基づいて、主体的に用いられる入力画像からステレオ画像(左眼用画像および右眼用画像)が生成される。より具体的には、主体的に用いられる入力画像を構成するライン単位で画素の位置をずらすことで、他方の右眼用画像または左眼用画像が生成される。図13には、入力画像1をそのまま左眼用画像として用いるとともに、入力画像2を右眼用画像として用いる一例を示す。図13には、左眼用画像として用いる入力画像1のあるラインについて、画素位置(座標)が「101」,「102」,・・・,「110」である10個の画素が示されている。各画素位置の画素に対応する距離(視差)がそれぞれ「40」,「40」,「41」,「41」,「41」,「42」,「42」,「41」,「40」,「40」であるとする。これらの情報を用いて、各画素について、ずらし後の画素位置(右眼用画像における座標)が算出される。より具体的には、(ずらし後の画素位置)=(左眼用画像における座標)−(対応する距離(視差))に従って、1ライン分の各画素についてのずらし後の画素位置が算出される。
そして、それぞれの画素値と対応するずらし後の画素位置とに基づいて、右眼用画像の対応する1ライン分の画像が生成される。このとき、距離(視差)の値によっては、対応する画素が存在しない場合がある。図13に示す例では、右眼用画像の画素位置「66」および「68」の画素の情報が存在しない。このような場合には、隣接する画素からの情報を用いて、不足する画素の画素値が補間される。
このような処理を入力画像に含まれるすべてのライン分だけ繰り返すことで、右眼用画像が生成される。
なお、この画素位置をずらす方向は、視差を生じさせるべき方向であり、具体的には、ユーザーに向けて表示した場合に、水平方向となる方向に相当する。
このような処理手順を示すと、図14のようになる。すなわち、図14を参照して、3D画像生成部35(図1)は、入力画像1の1ライン分の画素について、それぞれのずらし後の画素位置を算出する(ステップS1401)。続いて、3D画像生成部35は、ステップS1において算出されたずらし後の画素位置から1ライン分の画像(右眼用画像)を生成する(ステップS1402)。
その後、3D画像生成部35(図1)は、入力画像に処理を行なっていないラインが存在するか否かを判断する(ステップS1403)。入力画像に処理を行なっていないラインが存在していれば(ステップS1403においてNO)、次のラインが選択され、ステップS1401およびS1402の処理が繰り返される。
入力画像のすべてのラインについて処理が完了していれば(ステップS1403においてYES)、3D画像生成部35は、入力画像1(左眼用画像)とともに、生成した右眼用画像を出力する。そして、処理は終了する。
図13および図14には、入力画像1が出力画像として決定された場合、すなわち入力画像1が主体的に用いられる場合の処理について説明したが、入力画像2が出力画像として決定された場合、すなわち入力画像2が主体的に用いられる場合の処理についても同様である。但し、上述の対応点探索処理においては、基準画像と参照画像との関係が入れ替わる。
図15は、第1の実施の形態に従う画像処理方法に従って図7に示す一対の入力画像から生成されたステレオ画像の一例を示す図である。図7と図15とを比較すると分かるように、ぼけのないクリアなステレオ画像が得られていることがわかる。
すなわち、上述したような一連の処理を採用することで、相対的に画質のよい(ぼけていない)入力画像を用いて、出力されるステレオ画像が生成されるので、一方の入力画像にぼけなどの欠陥が存在する場合であっても、立体視表示の品質を維持できる。
(c8:変形例)
上述の画像処理方法においては、入力画像の周波数特性に基づいて、入力画像に含まれるぼけなどの欠陥を検出する場合を想定したが、入力画像の周波数特性に基づいて、入力画像における露出オーバーなどを検出することもできる。例えば、一方の入力画像だけについて部分的に白く飛んでしまっていると、高周波成分が存在しない。そのため、上述と同様の方法によって、露出オーバーなどを検出できる。また、強い光がレンズに入射したときにレンズ内部での反射などにより、フレアやゴーストと呼ばれる輪や玉状のにじみなどが片側だけで撮影される場合がある。この場合にも、にじむことで高周波成分が少なくなっているため、上述と同様の方法によって、これらのフレアやゴーストを検出できる。
このような露出オーバー、フレア、ゴーストなどの生じていない入力画像からステレオ画像を生成することが可能である。
<D.第2の実施の形態(縦ステレオ/横ステレオ)>
上述した第1の実施の形態においては、図2(a)に示す縦ステレオを利用できる場合に、入力画像1を主体的に用いる処理モードと、入力画像2を主体的に用いる処理モードとを選択的に実行する例を示した。ここで、図2(b)に示す横ステレオについても利用できる場合には、入力画像1および入力画像2をそのままステレオ画像として用いることができる。典型的には、図5に示すように、撮像部2を搭載した携帯電話300では、ユーザーの持ち方(携帯電話300の姿勢方向)に依存して、縦ステレオおよび横ステレオのいずれにもなる。
そこで、第2の実施の形態においては、このような3つの処理モードを選択可能な構成について例示する。すなわち、ステレオ画像を生成する際に、1つの入力画像を用いるか、2つの入力画像を用いるかを切り替える。
図16は、第2の実施の形態に従う画像処理方法の手順を示す図である。図16においては、図6に示す画像処理方法と同様の処理を同一のステップ番号を付して示す。図16に示す画像処理方法は、図6に示す第1の実施の形態に従う画像処理方法に比較して、出力用モード決定処理(ステップS5)およびステレオ画像出力処理(ステップS7)が新たに追加されたものであり、その他の処理については、第1の実施の形態と同様であるので、詳細な説明は繰り返さない。
本実施の形態に従う画像処理方法においては、入力画像1および入力画像2の一方を主体的に用いてステレオ画像を生成する処理モードと、入力画像1および入力画像2の両方を用いて記テレオ画像を生成する処理モードとを切り替える。この処理モードの切り替えは、入力画像1および入力画像2から取得された周波数特性、および、撮像時における第1カメラ21および第2カメラ22の位置関係に基づいて行なわれる。
より具体的には、入力画像1および入力画像2から取得された周波数特性としては、エッジ抽出処理によって算出されるそれぞれの入力画像のエッジ量についての絶対値および相対差が用いられる。また、撮像時における第1カメラ21および第2カメラ22の位置関係は、加速度センサー116(図3)により取得される姿勢情報が用いられる。すなわち、撮像部2が縦ステレオの状態で撮像されたものであるか、横ステレオの状態で撮像されたものであるかが判断される。
図16を参照して、入力画像1および入力画像2が取得されると、これらの入力画像に対して、エッジ抽出処理(ステップS1およびS2)が実行され、それぞれの入力画像についてのエッジ量が算出される。このエッジ抽出処理(エッジ量の算出)は、上述の第1の実施の形態と同様であるので、詳細な説明は繰り返さない。
続いて、算出されたそれぞれのエッジ量に基づいて、エッジ量比較処理(ステップS3)が実行される。このエッジ量比較処理においては、入力画像1および入力画像2の一方のみに、ぼけなどの欠陥が存在するか否かが判断される。より具体的には、入力画像1のエッジ量と入力画像2のエッジ量との差分が予め定められたしきい値以下であるか否かが判断される。エッジ量の差分がしきい値以下である場合には、入力画像1と入力画像2との間でぼけ度合いに有意な相違はないと判断できるので、入力画像1および入力画像2をそのままステレオ画像として出力する。
但し、エッジ量比較処理(ステップS3)は、姿勢情報によって、第1カメラ21および第2カメラ22が横ステレオになっていると判断できる場合に実行される。第1カメラ21および第2カメラ22が縦ステレオになっている場合には、入力画像1および入力画像2をそのままステレオ画像として用いることができないからである。
すなわち、第1カメラ21および第2カメラ22が横ステレオになっており、かつ、入力画像1のエッジ量と入力画像2のエッジ量との差分がしきい値以下である場合に限って、ステレオ画像出力処理(ステップS7)が実行される。このステレオ画像出力処理(ステップS7)では、入力画像1および入力画像2がそのままステレオ画像として出力される。
これに対して、入力画像1のエッジ量と入力画像2のエッジ量との差分がしきい値を超えている場合には、入力画像の一方がぼけた状態であると判断できるので、上述した第1の実施の形態と同様に、出力用画像決定処理が実行される(ステップS4)。
また、第1カメラ21および第2カメラ22が縦ステレオになっている場合にも、入力画像1および入力画像2をそのままステレオ画像として使用することができないので、出力用画像決定処理が実行される(ステップS4)。
出力用画像決定処理において、よりエッジ量の多い入力画像が選択され、この選択された入力画像を主体としてステレオ画像が生成される。この出力用画像決定処理の実行後の処理については、上述した第1の実施の形態と同様であるので、詳細な説明は繰り返さない。
<E.第1の変形例(動画)>
上述した第1および第2の実施の形態に従う画像処理方法については、静止画および動画のいずれについても適用できるが、動画に適用する場合には、以下に述べるような処理を付加してもよい。
すなわち、本変形例に従う画像処理方法においては、第1カメラ21および第2カメラ22が被写体を動画撮像する場合に、複数フレームごとに、ステレオ画像を生成するために適用する処理モードを決定する。動画は、時間的に連続した一連のフレームで構成される。このような動画撮像において、フレームごとに処理モード((1)入力画像1を主体的に用いたステレオ画像の生成、(2)入力画像2を主体的に用いたステレオ画像の生成、(3)入力画像1および入力画像2をそのまま用いたステレオ画像の生成)が異なると、ステレオ画像の生成規則が短時間で切り替わることになる。これによって、出力されるステレオ画像の連続性が損なわれ、ユーザーに違和感を与える可能性がある。
そこで、本変形例に従う画像処理方法においては、第1カメラ21および第2カメラ22が被写体を動画撮像する場合に、一旦決定した処理モードを所定期間(典型的には、複数フレーム)に亘って維持する。このような処理モードを維持する典型例としては、ある区間の先頭フレームに基づいて、処理モード(ステレオ画像の生成規則)を決定する方法がある。すなわち、本変形例に従う画像処理方法においては、第1カメラ21および第2カメラ22が被写体を動画撮像する場合に、先頭フレームに対応する入力画像1および入力画像2に基づいて処理モードを決定する。
より具体的には、動画を構成する所定区間(複数のフレームを含む)のうち、先頭フレームに相当する入力画像1および入力画像2について、それぞれエッジ抽出処理を行なうことで、周波数特性を取得する。そして、取得された周波数特性(エッジ量)を利用して、上述した第1の実施の形態または第2の実施の形態に従う画像処理方法に従って、ステレオ画像の処理モードが決定される。一旦、処理モードが決定されると、当該決定された処理モードに従って、後続のフレーム(2フレーム以降)に相当する入力画像1および入力画像2から順次ステレオ画像を生成する。一連のフレーム群に対して、入力画像1を主体とするステレオ画像の生成処理(ステップS11A〜S14A)、入力画像2を主体とするステレオ画像の生成処理(ステップS11B〜S14B)、入力画像1および入力画像2をステレオ画像として出力する処理(ステップS7)が繰り返し実行される。
このように、一連のフレーム群に対して、同一の生成規則を適用することにより、出力画像の連続性を保ち、ユーザーに対して自然な立体視表示(動画)を提供できる。
なお、1つの動画に含まれるすべてのフレームに対して、先頭フレームの基づいて決定した処理モードを適用するようにしてもよいが、人間の視覚を利用して、動画に含まれるシーンの単位で、生成規則を変更できるようにしてもよい。例えば、特開2002−152669号公報に開示されるような技術を用いて、動画内のシーンチェンジを検出することでシーンに区別し、各シーンの先頭フレーム(シーンの切り替わりタイミング)で処理モード(生成規則)を決定(変更)してもよい。あるいは、一定時間(例えば、30fpsで600フレーム)ごとに処理モード(生成規則)を決定(変更)してもよい。
上述したように、本変形例においては、静止画と動画との間で、生成規則の判定条件を切り替えて、動画は、静止画に比較して頻繁に切り替えないようにする。すなわち、動画の場合には、一定時間に亘って、生成規則を維持する。より具体的には、動画の場合には、先頭フレームでのみ生成規則の判定が行なわれることが好ましい。
<F.第2の変形例(部分画像ごとの評価)>
上述の第1および第2の実施の形態においては、入力画像の全体の画質を評価する構成について例示したが、入力画像の部分画像について画質を評価してもよい。そして、部分画像ごとにステレオ画像を生成する処理モードを切り替えてもよい。すなわち、入力画像の部分領域ごとに、処理を切り替える。
基本的には、この部分画像ごとに画質を評価して処理モードを切り替える構成は、横ステレオ、すなわち、第1カメラ21および第2カメラ22でそれぞれ取得される入力画像1および入力画像2をそのままステレオ画像として用いることができる場合に好適である。もちろん、本変形例の方法を縦ステレオにおいて入力画像に対する前処理として適用することもできる。
図17は、第2の変形例に従う部分画像ごとに画質を評価する処理例を示す図である。図18および図19は、第2の変形例に従ってステレオ画像を生成する処理を説明するための図である。
図17(a)に示すように、入力画像を複数の部分領域に区分し、各部分領域に対応する部分画像について周波数特性を評価してもよい。図17(a)に示す例では、入力画像の長い方の辺を4分割し、短い方の辺を3分割した、計12個の部分画像が設定される。このように部分画像ごとに周波数特性を評価することで、部分的に発生する、露出オーバーによる白飛び、フレア、ゴーストなどの欠陥の判定精度を向上させることができる。
部分領域ごとの周波数特性を評価するより具体的な方法としては、まず、上述の第1および第2の実施の形態と同様の手順に従って、図17(a)に示す部分画像ごとのエッジ量が算出される。そして、部分画像ごとにエッジ量に基づいて、中間判定が行なわれる。より具体的には、入力画像1および入力画像2の間で、同一の部分画像についてのエッジ量についての差分の絶対値が予め定められたしきい値以下であるか否かが判断される。すなわち、対応する部分画像について見た場合に、入力画像1と入力画像2との間で同様の傾向を示すか否かが判断される。同様の傾向を示す場合には、他の部分画像についての差分の絶対値を基準として、その差分の絶対値を評価することで、当該部分画像が信頼できるか否かを判断する。
一方、入力画像1と入力画像2との間で対応する部分画像についてのみエッジ量が大きく異なっている場合には、エッジ量が相対的に大きい部分画像が選択される。差分の絶対値が相対的に大きい場合には、入力画像1と入力画像2との間で互いに相反する傾向を有することになり、このときには、より大きなエッジ量を示す部分画像がステレオ画像の生成に用いられる。
なお、第1カメラ21と第2カメラ22との間で、被写体に対する視点が異なっているので、両カメラの間における視野範囲の相違、すなわち、オクルージョンが発生している場合には、入力画像1と入力画像2との間では映り込んでいる被写体が異なっていることがある。このような悪影響を防止するため、図18に示すように、パターンマッチングなどの手法を用いて、入力画像1と入力画像2との間での対応関係を予め取得しておき、各対応する部分画像の間で周波数特性を評価するようにしてもよい。
すなわち、第1カメラ21および第2カメラ22が互いに異なる視点が被写体を撮像する場合には、図18に示すように、入力画像1に設定される部分画像と入力画像2に設定される部分画像とが一致するとは限らないので、一方の入力画像に対して複数の部分画像を設定した上で、各部分画像に対応する領域を他の入力画像から探索してもよい。
上述のように各部分画像について、周波数特性に基づいて画質を評価した後、ステレオ画像を生成する手順としては、図19に示すようになる。この例では、横ステレオの構成において、第1カメラ21が被写体を撮像することで取得される入力画像1をそのまま左眼用画像として用いるとともに、第2カメラ22が被写体を撮像することで取得される入力画像2を適宜修正しつつ、右眼用画像として用いる。図19には、入力画像2に含まれる部分画像を入力画像1の対応する部分画像を用いて補間する処理例を示す。すなわち、入力画像2の特定の部分画像にのみフレアやゴーストといった欠陥が存在していると判定された場合には、その問題がと判定された部分画像(領域)についてのみ、フレアやゴーストが存在しない方の入力画像の部分画像を用いて補間する。すなわち、入力画像2に対して、部分的に入力画像1の部分画像を移植することで、右眼用画像が生成される。
このように部分画像ごとに画質を評価することで、部分的に発生すフレアやゴーストといった欠陥を修復しつつ、高画質なステレオ画像を生成できる。
<G.第3の変形例(ユーザーインターフェイス)>
上述の画像処理方法を実装した画像処理システム/装置において、以下に示すようなユーザーインターフェイスを搭載することが好ましい。
図20は、第3の変形例において提供されるユーザーインターフェイスの一例を示す図である。
(g1:ユーザーへの警告)
上述したように、本実施の形態に従う画像処理方法では、入力画像についての画質を評価できるので、画質が劣化している入力画像に対応するカメラ(レンズ)を特定できる。そこで、特定のカメラ(撮像手段)からの入力画像に対して画質が劣化していると複数回にわたって判断されたときに、対応するカメラについてレンズの汚れをユーザーに警告するための警告手段を搭載してもよい。すなわち、複数回続けて、一方のカメラ(レンズ)からの入力画像の品質が常に悪い(算出されるエッジ量が少ない)と判定された場合には、片側のレンズ面が汚れている可能性があるため、ユーザーにレンズを拭くように促す警告メッセージを提示してもよい。言い換えれば、(少なくとも2回以上の)連続した撮像において、同じレンズからの入力画像のみの品質が悪い場合には、当該レンズ面が汚れている可能性ありとの警告を提示する。
このような警告メッセージとしては、図20(a)に示すような内容が考えられる。
(g2:撮像動作のユーザーへの喚起)
上述のような第1カメラ21および第2カメラ22の評価を行なうためには、第1カメラ21および第2カメラ22を用いて被写体を実際に撮像する必要がある。そこで、入力画像1および入力画像2に対する周波数特性を評価するために、第1カメラ21および第2カメラ22を用いた撮像の実行をユーザーに促す撮像喚起手段を搭載してもよい。すなわち、第1カメラ21および第2カメラ22(両レンズ)を判定するために入力画像を撮像させるようにユーザーに促す。
このような喚起メッセージとしては、図20(b)に示すような内容が考えられる。なお、判定用チャートとしては、特定のエッジが画像の全面に存在するサンプル(例えば、草一面の画像など)が用いられる。
なお、必ずしもチャートを用いる必要はなく、現実の何らかの被写体をユーザーに撮像してもらい、当該被写体を撮像して得られる入力画像についてのエッジ量が予め定められたしきい値以上であるか否かを判断する。そして、エッジ量が予め定められたしきい値以上である場合には、第1カメラ21および第2カメラ22の評価自体に適合した入力画像(被写体)と判断し、チャートの代用としてもよい。この場合には、チャートの代用として、いずれの被写体を用いて第1カメラ21および第2カメラ22を評価したのかが一見して把握できるように、撮像装置上のモニターなどにこの被写体についても表示することが好ましい。
(g3:デフォルト設定)
上述のような第1カメラ21および第2カメラ22の評価については、初期設定時、電源投入時、撮像直前の合焦動作時のいずれかにおいて取得された入力画像1および入力画像2に基づいて行なわれることが好ましい。
初期設定時に取得された入力画像1および入力画像2についての周波数特性を取得することで、レンズ製造時に片側のレンズ面が少し傾いて製造されているといった初期不具合を容易に発見することができる。また、片側のレンズの品質が良好ではなく、常に少しぼけている場合などについても容易に発見できる。このような初期設定時に加えて、電源投入時や撮像直前の合焦動作時(シャッター半押し状態)といった定常的にも、第1カメラ21および第2カメラ22を評価してもよい。
さらに、このような第1カメラ21および第2カメラ22を評価の結果に基づいて、デフォルトのカメラ(レンズ)を決定してもよい。このようにデフォルトのカメラ(レンズ)を決定しておいた場合には、撮像ごとに第1カメラ21および第2カメラ22を評価する必要はなく、予め設定したデフォルトのカメラ(レンズ)で取得された入力画像を主体的に用いて、ステレオ画像を生成することになる。
すなわち、より多くの高周波成分を含む入力画像に対応するカメラ(レンズ)を、ステレオ画像を生成する際に主体的に用いられる撮像手段としてデフォルト設定される。そして、デフォルト設定されているカメラ(レンズ)からの入力画像を主体的に用いて、ステレオ画像が生成される。
<H.周波数特性の取得方法についての変形例)>
上述したように、本実施の形態に従う画像処理方法においては、入力画像の周波数特性に基づいて画質を評価する。そのため、上述したようなエッジ抽出処理に限られず、周波数特性を取得するための各種の方法を採用できる。
このような周波数特性を取得する処理としては、特開2011−128926号公報に開示されるようなフーリエ変換を利用する方法を採用してもよい。あるいは、Sobelなどの1次微分フィルタや2次微分フィルタを利用してもよい。
また、入力画像に含まれる周波数特性についての判定精度を向上するために、ノイズ除去用にメディアン等を利用する処理を含ませてもよい。あるいは、入力画像の画素成分を周波数特性に変換した後、最も高周波の領域などノイズが多い周波数帯域を無視した上で、画質を評価してもよい。
<I.利点>
本発明の実施の形態によれば、入力画像にぼけなどの欠陥がある状態であっても、その欠陥をユーザーに見せないように、画質のよい方の入力画像を主体的(優先的)に用いてステレオ画像を生成する。そのため、何らかの原因によって、一方の入力画像の撮像に失敗していても、画質のよい方からステレオ画像を生成することで、立体視表示の品質を維持できる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。