(57)【要約】【課題】より高品質な立体画像を簡単に得ることができるようにする。【解決手段】画像処理装置は、入力画像と、その入力画像の奥行き情報を示す奥行きマップとが入力されると、これから生成しようとする出力画像の画素を順番に処理対象の画素とし、奥行きマップに基づいて、処理対象の画素のシフト量を算出する。そして、画像処理装置は、処理対象の画素のシフト量と、その画素に隣接する画素のシフト量との差が０未満である場合、処理対象の画素のシフト量を修正し、修正後のシフト量により示される入力画像の画素の画素値を、処理対象の画素の画素値とすることで、出力画像を生成する。本技術は、画像処理装置に適用することができる。【選択図】図３
2013196620.tif 000002
【特許請求の範囲】
【請求項１】
入力画像の画素を参照して出力画像を生成する画像処理装置であって、
前記入力画像の各画素の奥行きを示す奥行きマップに基づいて、これから生成しようとする前記出力画像の注目画素について、前記注目画素と、前記入力画像における前記注目画素の参照先の画素との位置関係を示すシフト量を算出するシフト量算出部と、
前記注目画素の前記シフト量と、前記出力画像上の前記注目画素に隣接する隣接画素の前記シフト量とに基づいて、前記注目画素の前記シフト量を修正するシフト量修正部と、
修正された前記シフト量により定まる前記入力画像上の参照先の画素に基づいて前記注目画素の画素値を求めることで、前記出力画像を生成するシフト処理部と
を備える画像処理装置。
【請求項２】
前記シフト処理部は、前記出力画像対を生成することで前記入力画像から立体画像を生成する
請求項１に記載の画像処理装置。
【請求項３】
前記シフト量修正部は、前記注目画素の前記シフト量と前記隣接画素の前記シフト量の差または積に基づいて、前記注目画素の前記シフト量を修正する
請求項２に記載の画像処理装置。
【請求項４】
前記シフト量修正部は、前記差が負である場合、または前記積が負である場合、前記注目画素の前記シフト量を修正する
請求項３に記載の画像処理装置。
【請求項５】
前記シフト量修正部は、前記隣接画素の前記シフト量に所定の値を加算して得られる値を、前記注目画素の修正後の前記シフト量とする
請求項４に記載の画像処理装置。
【請求項６】
入力画像の画素を参照して出力画像を生成する画像処理方法であって、
前記入力画像の各画素の奥行きを示す奥行きマップに基づいて、これから生成しようとする前記出力画像の注目画素について、前記注目画素と、前記入力画像における前記注目画素の参照先の画素との位置関係を示すシフト量を算出し、
前記注目画素の前記シフト量と、前記出力画像上の前記注目画素に隣接する隣接画素の前記シフト量とに基づいて、前記注目画素の前記シフト量を修正し、
修正された前記シフト量により定まる前記入力画像上の参照先の画素に基づいて前記注目画素の画素値を求めることで、前記出力画像を生成する
ステップを含む画像処理方法。
【請求項７】
入力画像の画素を参照して出力画像を生成する画像処理用のプログラムであって、
前記入力画像の各画素の奥行きを示す奥行きマップに基づいて、これから生成しようとする前記出力画像の注目画素について、前記注目画素と、前記入力画像における前記注目画素の参照先の画素との位置関係を示すシフト量を算出し、
前記注目画素の前記シフト量と、前記出力画像上の前記注目画素に隣接する隣接画素の前記シフト量とに基づいて、前記注目画素の前記シフト量を修正し、
修正された前記シフト量により定まる前記入力画像上の参照先の画素に基づいて前記注目画素の画素値を求めることで、前記出力画像を生成する
ステップを含む処理をコンピュータに実行させるプログラム。
【請求項８】
入力画像の画素を参照して出力画像を生成する画像処理装置であって、
前記入力画像の各画素の奥行きを示す奥行きマップの奥行きの値の最大値、および前記出力画像の視点位置に基づいて、これから生成しようとする前記出力画像の注目画素についての参照先となり得る前記入力画像の探索範囲を決定する探索範囲算出部と、
前記探索範囲内の各位置を処理対象位置として、仮想空間上の所定の奥行き位置に前記出力画像を配置したときの前記視点位置と前記注目画素とを結ぶ直線の前記処理対象位置における奥行きの値と、前記奥行きマップにより示される前記処理対象位置における奥行きの値とを比較する比較部と、
奥行きの値の比較結果に基づいて、前記注目画素と、前記入力画像における前記注目画素の参照先の画素との位置関係を示すシフト量を算出するシフト量算出部と、
前記シフト量により定まる前記入力画像上の参照先の画素に基づいて前記注目画素の画素値を求めることで、前記出力画像を生成するシフト処理部と
を備える画像処理装置。
【請求項９】
前記シフト処理部は、前記出力画像対を生成することで前記入力画像から立体画像を生成する
請求項８に記載の画像処理装置。
【請求項１０】
前記比較部は、前記直線の前記処理対象位置における奥行きの値と、前記奥行きマップにより示される前記処理対象位置における奥行きの値との差分を算出し、
前記シフト量算出部は、前記処理対象位置に隣接する前記探索範囲内の位置の前記差分と、前記処理対象位置の前記差分との積が負の値となる前記処理対象位置における、前記直線の奥行きの値に基づいて前記注目画素の前記シフト量を算出する
請求項９に記載の画像処理装置。
【請求項１１】
前記比較部は、前記直線の前記処理対象位置における奥行きの値と、前記奥行きマップにより示される前記処理対象位置における奥行きの値とを比較して、前記処理対象位置を２つのクラスのうちの何れかに分類し、
前記シフト量算出部は、前記探索範囲内の各位置における前記クラスの分類結果に基づいて前記注目画素の前記シフト量を算出する
請求項９に記載の画像処理装置。
【請求項１２】
前記シフト量算出部は、前記探索範囲内の隣接する位置の前記クラスとは異なるクラスに分類された位置を、前記入力画像上の参照先の画素の位置として前記注目画素の前記シフト量を算出する
請求項１１に記載の画像処理装置。
【請求項１３】
前記シフト処理部は、前記入力画像上の参照先の画素と、前記入力画像上の前記隣接する位置の画素とに基づいて補間処理を行なうことで、前記注目画素の画素値を求める
請求項１２に記載の画像処理装置。
【請求項１４】
入力画像の画素を参照して出力画像を生成する画像処理方法であって、
前記入力画像の各画素の奥行きを示す奥行きマップの奥行きの値の最大値、および前記出力画像の視点位置に基づいて、これから生成しようとする前記出力画像の注目画素についての参照先となり得る前記入力画像の探索範囲を決定し、
前記探索範囲内の各位置を処理対象位置として、仮想空間上の所定の奥行き位置に前記出力画像を配置したときの前記視点位置と前記注目画素とを結ぶ直線の前記処理対象位置における奥行きの値と、前記奥行きマップにより示される前記処理対象位置における奥行きの値とを比較し、
奥行きの値の比較結果に基づいて、前記注目画素と、前記入力画像における前記注目画素の参照先の画素との位置関係を示すシフト量を算出し、
前記シフト量により定まる前記入力画像上の参照先の画素に基づいて前記注目画素の画素値を求めることで、前記出力画像を生成する
ステップを含む画像処理方法。
【請求項１５】
入力画像の画素を参照して出力画像を生成する画像処理用のプログラムであって、
前記入力画像の各画素の奥行きを示す奥行きマップの奥行きの値の最大値、および前記出力画像の視点位置に基づいて、これから生成しようとする前記出力画像の注目画素についての参照先となり得る前記入力画像の探索範囲を決定し、
前記探索範囲内の各位置を処理対象位置として、仮想空間上の所定の奥行き位置に前記出力画像を配置したときの前記視点位置と前記注目画素とを結ぶ直線の前記処理対象位置における奥行きの値と、前記奥行きマップにより示される前記処理対象位置における奥行きの値とを比較し、
奥行きの値の比較結果に基づいて、前記注目画素と、前記入力画像における前記注目画素の参照先の画素との位置関係を示すシフト量を算出し、
前記シフト量により定まる前記入力画像上の参照先の画素に基づいて前記注目画素の画素値を求めることで、前記出力画像を生成する
ステップを含む処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は画像処理装置および方法、並びにプログラムに関し、特に、より高品質な立体画像を簡単に得ることができるようにした画像処理装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
従来、２次元の画像から、互いに視差を有する画像対からなる３次元の画像（立体画像）を生成する技術が知られている。このような技術では、２次元の画像の各位置についての奥行き情報からなる奥行きマップや、２次元の画像の各位置についての視差情報からなる視差マップなどが用いられている。
【０００３】
具体的には、例えば２次元の画像を３次元の画像に変換する技術として、奥行き情報と、ユーザの視距離や両眼間隔とを用いて、各視点から見える立体画像を再現する技術が提案されている（例えば、非特許文献１および非特許文献２参照）。
【０００４】
また、解像度を低くした視差マップを用いることで、オクルージョン領域と呼ばれる、３次元の画像上の画素に射影する２次元の画像上の画素が存在しない領域の発生を防止する技術も提案されている（例えば、非特許文献３参照）。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】三田雄志,「2Dto3Dコンテンツ変換技術」,2010年映像情報メディア学会年次大会
【非特許文献２】Larry F. Hodges,「Tutorial:Time-Multiplexed Stereoscopic Computer Graphics」, Computer Graphics and Applications, IEEE, 1992
【非特許文献３】Liang Zhang and Wa James Tam,「Stereoscopic Image Generation Based on Depth Images for 3D TV」, IEEE TRANSACTIONS ON BROADCASTING, VOL. 51, NO. 2, JUNE 2005
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した技術では、高品質な立体画像を簡単に得ることが困難であった。
【０００７】
例えば、非特許文献１および非特許文献２に記載の技術では、オクルージョン領域が生じてしまうため、後段においてインペインティングのような、オクルージョン領域の穴埋め処理を行う必要があり、その分だけ処理コストがかかってしまう。
【０００８】
また、非特許文献３に記載の技術では、オクルージョン領域の発生を防止することはできるが、解像度を低下させた視差マップ、つまりぼけた視差マップが用いられるため、垂直方向に長いオブジェクトの歪みが目立ち易くなってしまう。また、ぼけた視差マップが用いられるので、前景と背景の全ての境界部分の奥行きが連続的に変化し、得られた立体画像の立体感が低下してしまう。
【０００９】
本技術は、このような状況に鑑みてなされたものであり、より高品質な立体画像を簡単に得ることができるようにするものである。
【課題を解決するための手段】
【００１０】
本技術の第１の側面の画像処理装置は、入力画像の画素を参照して出力画像を生成する画像処理装置であって、前記入力画像の各画素の奥行きを示す奥行きマップに基づいて、これから生成しようとする前記出力画像の注目画素について、前記注目画素と、前記入力画像における前記注目画素の参照先の画素との位置関係を示すシフト量を算出するシフト量算出部と、前記注目画素の前記シフト量と、前記出力画像上の前記注目画素に隣接する隣接画素の前記シフト量とに基づいて、前記注目画素の前記シフト量を修正するシフト量修正部と、修正された前記シフト量により定まる前記入力画像上の参照先の画素に基づいて前記注目画素の画素値を求めることで、前記出力画像を生成するシフト処理部とを備える。
【００１１】
前記シフト処理部には、前記出力画像対を生成することで前記入力画像から立体画像を生成させることができる。
【００１２】
前記シフト量修正部には、前記注目画素の前記シフト量と前記隣接画素の前記シフト量の差または積に基づいて、前記注目画素の前記シフト量を修正させることができる。
【００１３】
前記シフト量修正部には、前記差が負である場合、または前記積が負である場合、前記注目画素の前記シフト量を修正させることができる。
【００１４】
前記シフト量修正部には、前記隣接画素の前記シフト量に所定の値を加算して得られる値を、前記注目画素の修正後の前記シフト量とさせることができる。
【００１５】
本技術の第１の側面の画像処理方法またはプログラムは、入力画像の画素を参照して出力画像を生成する画像処理方法またはプログラムであって、前記入力画像の各画素の奥行きを示す奥行きマップに基づいて、これから生成しようとする前記出力画像の注目画素について、前記注目画素と、前記入力画像における前記注目画素の参照先の画素との位置関係を示すシフト量を算出し、前記注目画素の前記シフト量と、前記出力画像上の前記注目画素に隣接する隣接画素の前記シフト量とに基づいて、前記注目画素の前記シフト量を修正し、修正された前記シフト量により定まる前記入力画像上の参照先の画素に基づいて前記注目画素の画素値を求めることで、前記出力画像を生成するステップを含む。
【００１６】
本技術の第１の側面においては、入力画像の画素を参照して出力画像を生成する画像処理において、前記入力画像の各画素の奥行きを示す奥行きマップに基づいて、これから生成しようとする前記出力画像の注目画素について、前記注目画素と、前記入力画像における前記注目画素の参照先の画素との位置関係を示すシフト量が算出され、前記注目画素の前記シフト量と、前記出力画像上の前記注目画素に隣接する隣接画素の前記シフト量とに基づいて、前記注目画素の前記シフト量が修正され、修正された前記シフト量により定まる前記入力画像上の参照先の画素に基づいて前記注目画素の画素値を求めることで、前記出力画像が生成される。
【００１７】
本技術の第２の側面の画像処理装置は、入力画像の画素を参照して出力画像を生成する画像処理装置であって、前記入力画像の各画素の奥行きを示す奥行きマップの奥行きの値の最大値、および前記出力画像の視点位置に基づいて、これから生成しようとする前記出力画像の注目画素についての参照先となり得る前記入力画像の探索範囲を決定する探索範囲算出部と、前記探索範囲内の各位置を処理対象位置として、仮想空間上の所定の奥行き位置に前記出力画像を配置したときの前記視点位置と前記注目画素とを結ぶ直線の前記処理対象位置における奥行きの値と、前記奥行きマップにより示される前記処理対象位置における奥行きの値とを比較する比較部と、奥行きの値の比較結果に基づいて、前記注目画素と、前記入力画像における前記注目画素の参照先の画素との位置関係を示すシフト量を算出するシフト量算出部と、前記シフト量により定まる前記入力画像上の参照先の画素に基づいて前記注目画素の画素値を求めることで、前記出力画像を生成するシフト処理部とを備える。
【００１８】
前記シフト処理部には、前記出力画像対を生成することで前記入力画像から立体画像を生成させることができる。
【００１９】
前記比較部には、前記直線の前記処理対象位置における奥行きの値と、前記奥行きマップにより示される前記処理対象位置における奥行きの値との差分を算出させ、前記シフト量算出部には、前記処理対象位置に隣接する前記探索範囲内の位置の前記差分と、前記処理対象位置の前記差分との積が負の値となる前記処理対象位置における、前記直線の奥行きの値に基づいて前記注目画素の前記シフト量を算出させることができる。
【００２０】
前記比較部には、前記直線の前記処理対象位置における奥行きの値と、前記奥行きマップにより示される前記処理対象位置における奥行きの値とを比較させて、前記処理対象位置を２つのクラスのうちの何れかに分類させ、前記シフト量算出部には、前記探索範囲内の各位置における前記クラスの分類結果に基づいて前記注目画素の前記シフト量を算出させることができる。
【００２１】
前記シフト量算出部には、前記探索範囲内の隣接する位置の前記クラスとは異なるクラスに分類された位置を、前記入力画像上の参照先の画素の位置として前記注目画素の前記シフト量を算出させることができる。
【００２２】
前記シフト処理部には、前記入力画像上の参照先の画素と、前記入力画像上の前記隣接する位置の画素とに基づいて補間処理を行なうことで、前記注目画素の画素値を求めさせることができる。
【００２３】
本技術の第２の側面の画像処理方法またはプログラムは、入力画像の画素を参照して出力画像を生成する画像処理方法またはプログラムであって、前記入力画像の各画素の奥行きを示す奥行きマップの奥行きの値の最大値、および前記出力画像の視点位置に基づいて、これから生成しようとする前記出力画像の注目画素についての参照先となり得る前記入力画像の探索範囲を決定し、前記探索範囲内の各位置を処理対象位置として、仮想空間上の所定の奥行き位置に前記出力画像を配置したときの前記視点位置と前記注目画素とを結ぶ直線の前記処理対象位置における奥行きの値と、前記奥行きマップにより示される前記処理対象位置における奥行きの値とを比較し、奥行きの値の比較結果に基づいて、前記注目画素と、前記入力画像における前記注目画素の参照先の画素との位置関係を示すシフト量を算出し、前記シフト量により定まる前記入力画像上の参照先の画素に基づいて前記注目画素の画素値を求めることで、前記出力画像を生成するステップを含む。
【００２４】
本技術の第２の側面においては、入力画像の画素を参照して出力画像を生成する画像処理において、前記入力画像の各画素の奥行きを示す奥行きマップの奥行きの値の最大値、および前記出力画像の視点位置に基づいて、これから生成しようとする前記出力画像の注目画素についての参照先となり得る前記入力画像の探索範囲が決定され、前記探索範囲内の各位置を処理対象位置として、仮想空間上の所定の奥行き位置に前記出力画像を配置したときの前記視点位置と前記注目画素とを結ぶ直線の前記処理対象位置における奥行きの値と、前記奥行きマップにより示される前記処理対象位置における奥行きの値とが比較され、奥行きの値の比較結果に基づいて、前記注目画素と、前記入力画像における前記注目画素の参照先の画素との位置関係を示すシフト量が算出され、前記シフト量により定まる前記入力画像上の参照先の画素に基づいて前記注目画素の画素値を求めることで、前記出力画像が生成される。
【発明の効果】
【００２５】
本技術の第１の側面および第２の側面によれば、より高品質な立体画像を簡単に得ることができる。
【図面の簡単な説明】
【００２６】
【図１】出力画像の生成について説明する図である。
【図２】出力画像の生成について説明する図である。
【図３】出力画像の生成について説明する図である。
【図４】画像処理装置の構成例を示す図である。
【図５】立体画像生成処理を説明するフローチャートである。
【図６】画像処理装置の構成例を示す図である。
【図７】出力画像の生成について説明する図である。
【図８】出力画像の生成について説明する図である。
【図９】出力画像の生成について説明する図である。
【図１０】出力画像の生成について説明する図である。
【図１１】出力画像の生成について説明する図である。
【図１２】画像処理装置の構成例を示す図である。
【図１３】立体画像生成処理を説明するフローチャートである。
【図１４】奥行き情報のパターン分類について説明する図である。
【図１５】画像処理装置の構成例を示す図である。
【図１６】立体画像生成処理を説明するフローチャートである。
【図１７】立体画像生成処理を説明するフローチャートである。
【図１８】補間処理について説明する図である。
【図１９】補間処理について説明する図である。
【図２０】学習について説明する図である。
【図２１】画像処理装置への係数の供給について説明する図である。
【図２２】コンピュータの構成例を示す図である。
【発明を実施するための形態】
【００２７】
以下、図面を参照して、本技術を適用した実施の形態について説明する。
【００２８】
〈第１の実施の形態〉
［本技術の概要について］
まず、本技術の概要について説明する。なお、本技術により得ようとする立体画像は、複数の異なる視点の画像からなる多視点立体画像であれば、その視点数はいくつであってもよいが、以下では、立体画像を構成する画像の視点数は２視点であるものとする。すなわち、３次元の立体画像は、ユーザの左眼で観察される左眼出力画像と、ユーザの右眼で観察される右眼出力画像とからなるものとして説明を続ける。
【００２９】
さらに、以下においては、立体画像を生成するのに用いられる２次元の画像を入力画像と呼ぶこととし、左眼出力画像と右眼出力画像を特に区別する必要のない場合、それらの画像を単に出力画像とも呼ぶこととする。
【００３０】
例えば、図１に示すように、矢印Ｑ１１に示す入力画像を用いて、矢印Ｑ１２に示す出力画像を生成するとする。なお、図１において、横方向は、入力画像と出力画像上の水平方向（以下、ｘ方向とも称する）、つまり左眼出力画像と右眼出力画像の視差の方向を示している。また、図中、縦方向は、入力画像や出力画像の奥行き方向、つまり出力画像が表示されるディスプレイの表示面に対して垂直な方向（以下、奥行き方向とも称する）を示している。
【００３１】
例えば、図１の例では、矢印Ｑ１２に示される出力画像は、奥行き方向において出力画像が表示されるディスプレイの表示面の位置に配置されており、この出力画像上の各円は１つの画素を表している。
【００３２】
また、矢印Ｑ１１に示される入力画像上の各円も１つの画素を表しており、入力画像上の各画素は、出力画像を得るために用いられる奥行きマップにより示される奥行き方向の位置に配置されている。
【００３３】
例えばユーザの視点が視点位置Ｖ１１にあるとすると、入力画像における領域ＦＧ１１にある画素の被写体は前景となり、入力画像における領域ＲＧ１１にある画素の被写体は背景となる。ここで、視点位置Ｖ１１は、ユーザの右眼または左眼の位置である。なお、図１において視点位置Ｖ１１と、入力画像上の各画素とを結ぶ点線は、それらの画素に表示される被写体を観察するユーザの視線を表している。
【００３４】
したがって、矢印Ｑ１１に示す入力画像上の各画素を、その画素を通る視線と出力画像との交点の位置に投影（射影）すれば、矢印Ｑ１２に示す出力画像を得ることができる。具体的には、例えば入力画像上の画素Ｇ１１は、出力画像上の画素Ｇ１２に射影される。
【００３５】
このようにして出力画像を生成すると、例えば入力画像上の背景を構成する画素Ｇ１３は、前景の領域ＦＧ１１に隠れてしまい、出力画像上には射影されなくなる。つまり、入力画像上では観察されていた画素Ｇ１３にある被写体は、出力画像上では隠れて見えなくなってしまう。
【００３６】
また、例えば出力画像上の画素Ｇ１４の位置では、入力画像上の各画素の位置と視点位置Ｖ１１とを結ぶ直線（視線）は交差せず、入力画像には画素Ｇ１４に射影される画素が存在しないことになる。つまり、画素Ｇ１４の領域は、いわゆるオクルージョン領域となってしまい、実質的に画素が欠乏してしまう。この場合、例えば画素Ｇ１４は、補間などの穴埋め処理により生成されることになる。
【００３７】
立体画像の生成時には、２つの異なる位置を視点位置Ｖ１１として出力画像対を生成すれば、右眼出力画像と左眼出力画像からなる立体画像が得られることになる。この場合、入力画像上の同じ画素が射影された、右眼出力画像上の画素と左眼出力画像上の画素との水平方向の距離が視差となる。
【００３８】
ここで、右眼出力画像と左眼出力画像の視差ｄは、入力画像上の画素の奥行きをｚとし、ユーザの左右の眼の間隔をＢとし、ユーザの視点位置から出力画像が表示されるディスプレイまでの奥行き方向の距離（視距離）をＶとすると次式（１）により求まる。
【００３９】
【数１】
2013196620.tif 000003
【００４０】
なお、図１に示した立体画像の生成手法は、上述した非特許文献１および非特許文献２に記載されている手法である。このようにして立体画像を生成すると、画素Ｇ１４のようなオクルージョン領域が生じてしまう。
【００４１】
そこで、例えば図２に示すように、解像度を低下させ、ぼかされた奥行きマップを用いて出力画像を生成すれば、オクルージョン領域の発生を抑制することができる。なお、図２において、横方向は、入力画像と出力画像上の水平方向（ｘ方向）を示しており、縦方向は、入力画像や出力画像の奥行き方向を示している。また、図２において図１における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【００４２】
図２では、矢印Ｑ２１に示される入力画像上の各円は１つの画素を表しており、入力画像上の各画素は、奥行きマップにより示される奥行き方向の位置に配置されている。また、矢印Ｑ２２に示される出力画像は、奥行き方向において出力画像が表示されるディスプレイの表示面の位置に配置されており、出力画像上の各円も１つの画素を表している。そして、視点位置Ｖ１１と入力画像上の各画素とを結ぶ点線は、ユーザの視線を表している。
【００４３】
この例では、入力画像上の領域ＦＧ２１にある画素の被写体は前景となっており、入力画像における領域ＲＧ２１にある画素の被写体は背景となっている。この例では、立体画像の生成には、解像度を落とした奥行きマップが用いられるため、入力画像上の前景から背景まで各位置の奥行きが緩やかに変化していることが分かる。
【００４４】
そのため、図２の例では、図１の例における場合のように、入力画像の前景に隠れてしまう背景の画素や、オクルージョン領域となる画素は発生しにくくなり、画素の補間処理が不要になる。しかし、入力画像における前景と背景の境界部分において、奥行きが連続的に変化するため、立体画像（３次元の画像）を観察したときに物体の境界部分、つまり前景と背景の境界部分の立体感が低下してしまう。
【００４５】
そこで、本技術では出力画像の画素ごとに奥行きマップからシフト量が算出され、そのシフト量により定まる入力画像上の画素が出力画像に射影されるとともに、必要に応じてシフト量に修正が加えられる。これにより、オクルージョン領域の発生が防止されるとともに立体感の低下が抑制され、より高品質な立体画像が得られる。
【００４６】
具体的には、例えば図３に示すように入力画像ＩＰ１１と奥行きマップＤＭ１１とから、出力画像ＯＰ１１が生成されるとする。なお、図３において、横方向は、入力画像ＩＰ１１と出力画像ＯＰ１１上の水平方向（ｘ方向）を示しており、縦方向は、入力画像ＩＰ１１や出力画像ＯＰ１１の奥行き方向を示している。
【００４７】
図３の左側に示すように、点線の位置ＤＳ１１は出力画像ＯＰ１１が表示されるディスプレイの位置を示している。また、奥行きマップＤＭ１１を表す折れ線の縦方向の位置は、ディスプレイの位置ＤＳ１１を基準とした、奥行きマップＤＭ１１により示される水平方向の各位置の奥行き位置となっている。
【００４８】
例えば、入力画像ＩＰ１１における領域ＦＧ３１と、領域ＲＧ３１および領域ＲＧ３２とは、それぞれ前景の領域と背景の領域である。そのため、奥行きマップＤＭ１１における領域ＦＧ３１と同じ領域の奥行き位置は、奥行きマップＤＭ１１における領域ＲＧ３１および領域ＲＧ３２と同じ領域の奥行き位置よりも図中、下側、つまりディスプレイの表示面から、よりユーザ側（ユーザから見て手前側）の位置となっている。
【００４９】
本技術では、これから生成しようとする出力画像ＯＰ１１の画素が順番に注目画素として選択されていき、図中、左側に示すように注目画素と同じ位置にある奥行きマップＤＭ１１の画素の画素値、つまり奥行きの値に基づいて注目画素に対するシフト量が求められる。
【００５０】
そして、注目画素と同じ位置にある入力画像ＩＰ１１の画素から、シフト量だけ離れた位置にある画素が注目画素に対する参照先の画素（以下、参照画素とも称する）とされ、参照画素が注目画素に射影される。すなわち、入力画像ＩＰ１１上の参照画素の画素値が、出力画像ＯＰ１１の注目画素の画素値とされる。
【００５１】
例えば、図３において、出力画像ＯＰ１１の画素と、入力画像ＩＰ１１の画素とを結ぶ矢印は、その矢印の始点となる出力画像ＯＰ１１の画素の参照先の画素を示している。つまり、その矢印の終点にある入力画像ＩＰ１１上の画素が、矢印の始点にある出力画像ＯＰ１１の画素の参照先の画素とされる。
【００５２】
この例では、出力画像ＯＰ１１上の画素Ｇ３１と画素Ｇ３２のそれぞれの参照先の画素は、入力画像ＩＰ１１上の画素Ｇ４１および画素Ｇ４２となっている。
【００５３】
ここで、出力画像ＯＰ１１上における水平方向（ｘ方向）と垂直な方向を垂直方向（ｙ方向）と呼ぶこととし、ｘ方向およびｙ方向を軸とするｘｙ座標系における出力画像ＯＰ１１上の注目画素の位置を（ｘ，ｙ）とする。
【００５４】
そのような場合、位置（ｘ，ｙ）にある注目画素のシフト量shift(x,y)は、次式（２）により求まる。このシフト量shift(x,y)は、右眼出力画像と左眼出力画像の視差の半分の値に相当する。
【００５５】
【数２】
2013196620.tif 000004
【００５６】
なお、式（２）においてshift_maxはシフト量の取り得る値の最大値である最大シフト量を示しており、display_posはディスプレイの奥行き方向の位置ＤＳ１１を示している。また、depth_maxは奥行きの最大値を示しており、depth(x,y)は奥行きマップＤＭ１１上の位置（ｘ，ｙ）にある画素の画素値、つまり奥行きの値を示している。
【００５７】
したがって、入力画像ＩＰ１１上の位置（ｘ，ｙ）にある画素の画素値をimage(x,y)とすると、左眼出力画像の位置（ｘ，ｙ）にある画素の画素値left(x,y)と、右眼出力画像の位置（ｘ，ｙ）にある画素の画素値right(x,y)は、次式（３）により求まる。
【００５８】
【数３】
2013196620.tif 000005
【００５９】
なお、上述した式（２）および式（３）の計算によりシフト量や出力画像の画素の画素値を求めてもよいが、シフト量の計算とディスプレイ位置の設定を分離して、次のような計算によりシフト量と出力画像の画素の画素値を求めるようにしてもよい。
【００６０】
すなわち、基準となる所定の奥行き位置をｄｃとし、位置ｄｃとディスプレイの奥行き方向の位置ＤＳ１１との奥行き方向の差により生じる参照画素のｘ方向のずれ量、つまり水平方向のオフセット量（シフト量）をｄｐとする。
【００６１】
この場合、オフセット量ｄｐは基準となる奥行き位置ｄｃを用いて次式（４）により表され、シフト量shift(x,y)は、次式（５）により表される。なお、奥行き位置ｄｃは固定値とされる。
【００６２】
【数４】
2013196620.tif 000006
【００６３】
【数５】
2013196620.tif 000007
【００６４】
したがって、式（４）および式（５）から、左眼出力画像の画素の画素値left(x+dp,y)と、右眼出力画像の画素の画素値right(x+dp,y)は、次式（６）により求まる。
【００６５】
【数６】
2013196620.tif 000008
【００６６】
以上のように、式（２）および式（３）の計算か、または式（４）乃至式（６）の計算により、右眼出力画像と左眼出力画像を得ることができる。なお、以下では、式（２）および式（３）の計算により出力画像が求められるものとして説明を続ける。
【００６７】
ところで、図３の左側に示すように出力画像ＯＰ１１上の位置（ｘ，ｙ）にある画素のシフト量shift(x,y)を求めて、画素の参照により出力画像を生成すると、出力画像上の隣接する画素間のシフトが交差することがある。すなわち、出力画像上における隣接する画素の位置関係と、それらの画素に対する入力画像の参照画素の位置関係とに矛盾が生じる場合がある。
【００６８】
例えば、図３の左側の例では、出力画像ＯＰ１１上の画素Ｇ３１は、画素Ｇ３２よりも図中、左側に位置している。また、入力画像ＩＰ１１では、背景の領域ＲＧ３１は、前景の領域ＦＧ３１よりも図中、左側に位置している。
【００６９】
しかし、出力画像ＯＰ１１の画素Ｇ３１の参照先の画素Ｇ４１は、前景の領域ＦＧ３１内の画素であるにも関わらず、画素Ｇ３２の参照先の画素は背景の領域ＲＧ３１内の画素Ｇ４２となっている。そのため、出力画像ＯＰ１１上において領域ＲＧ３１に対応する背景の領域内の一部に、前景の一部の領域が表示されてしまう状態となり、出力画像ＯＰ１１に破綻が生じてしまう。
【００７０】
これは、互いに隣接する画素Ｇ３１と画素Ｇ３２のシフト、つまり参照画素を示す矢印が互いに交差し、出力画像ＯＰ１１上におけるそれらの画素の位置関係と、参照画素の位置関係とに矛盾が生じているからである。
【００７１】
具体的には、出力画像ＯＰ１１上の位置（ｘ，ｙ）の画素のシフト量shift(x,y)と、位置（ｘ−１，ｙ）の画素のシフト量shift(x-1,y)との差が０未満である場合、つまりshift(x,y)−shift(x-1,y)＜０である場合、シフトの交差が生じていることになる。
【００７２】
このようにシフトの交差が生じ、このままでは出力画像ＯＰ１１に破綻が生じてしまう場合、本技術では、シフトの交差が生じた画素のシフト量が修正される。つまり、次式（７）に示す計算が行なわれ、シフトの交差が生じないようにシフト量に位相が加えられる。
【００７３】
【数７】
2013196620.tif 000009
【００７４】
すなわち、式（７）の計算では、位置（ｘ−１，ｙ）の画素のシフト量が、位置（ｘ，ｙ）の画素のシフト量よりも大きい場合には、シフト量shift(x-1,y)に所定の定数である位相phaseが加算された値が、最終的なシフト量shift(x,y)とされる。
【００７５】
なお、位相phaseは０以上１以下の値に限らず、どのような値であってもよい。また、位相phaseは固定値でもよいし、可変値であってもよい。例えば位相phaseが可変値とされる場合には、入力画像や奥行きマップからエッジやテクスチャの情報を抽出し、その情報に応じて適応的に位相phaseの値を定めるようにすればよい。
【００７６】
また、式（７）では、隣接する画素のシフト量の差によりシフトの交差を検出しているが、隣接する画素のシフト量の積によりシフトの交差を検出するようにしてもよい。そのような場合、例えばシフト量shift(x,y)と、シフト量shift(x-1,y)との積が０未満であるとき、シフトの交差が生じているとされ、シフト量shift(x,y)が修正される。
【００７７】
さらに、シフト量の算出と、画素のシフト、つまり画素を参照する処理は、ｘｙ座標系におけるｘ座標の値が小さい画素から大きい画素まで順番に行なっていってもよいし、その逆の順番に行なうようにしてもよい。また、右眼出力画像と左眼出力画像とで、シフト量の算出と、画素のシフトの処理を行なっていく方向が異なるようにしてもよい。
【００７８】
以上のようなシフト量の修正により、例えば図３中、中央に示すように出力画像ＯＰ１１上の画素Ｇ３２の参照先の画素は、画素Ｇ４１と画素Ｇ４３の間の位置となる。その結果、隣接する画素Ｇ３１と画素Ｇ３２の位置関係と、それらの画素の参照先の画素の位置関係、つまり画素Ｇ４１と、画素Ｇ４１および画素Ｇ４３の間の位置の関係とに矛盾がなくなり、出力画像ＯＰ１１に破綻が生じなくなる。
【００７９】
なお、画素Ｇ３２のように、参照先が入力画像ＩＰ１１上の隣接する２つの画素Ｇ４１と画素Ｇ４３の間の位置となる場合には、それらの画素の補間により画素Ｇ３２の画素値を求めればよい。
【００８０】
このようなシフト量の修正を出力画像ＯＰ１１の各画素のシフト量に対して行なっていくと、図中、右側に示すように、破綻のない出力画像ＯＰ１１が得られる。図中、右側に示す出力画像ＯＰ１１では、図中、左側から右方向に背景領域、前景領域、および背景領域が順番に並んでおり、入力画像ＩＰ１１上の各領域の位置関係と同じとなっている。また、例えば出力画像ＯＰ１１の前景と背景の境界部分の領域ＥＧ１１では、シフト量の修正が行なわれないので、前景と背景の境界部分における画像の鮮鋭感が保たれている。
【００８１】
本技術のように画素のシフト量を修正すれば、出力画像ＯＰ１１上のシフトの交差が生じる領域のみ視差補正がされるので、図２を参照して説明した奥行きマップ全体の解像度を落とす場合と比べて、物体境界の先鋭度が必要以上に低下することはない。
【００８２】
すなわち、図２の例では、奥行きマップ全体に平滑化処理が施されることになるので、立体画像の各領域の視差が小さくなり、立体画像は全体において鮮鋭感のない画像となってしまう。これに対して、本技術では、必要な領域のみシフト量が修正されるので、立体画像全体の鮮鋭感が損なわれることがなく、適度に立体的な画像、つまり高品質な立体画像を得ることができる。
【００８３】
［画像処理装置の構成例］
次に、本技術を適用した具体的な実施の形態について説明する。図４は、本技術を適用した画像処理装置の一実施の形態の構成例を示す図である。
【００８４】
画像処理装置１１は、シフト量算出部２１、シフト量修正部２２、およびシフト処理部２３から構成される。
【００８５】
シフト量算出部２１は、供給された奥行きマップに基づいて、これから生成しようとする出力画像の各画素についてシフト量を算出し、シフト量修正部２２に供給する。ここで、奥行きマップの各画素の画素値である奥行きの値は、それらの画素と同じ位置にある入力画像の画素に関する奥行き情報を示している。
【００８６】
シフト量修正部２２は、シフト量算出部２１から供給されたシフト量を必要に応じて修正し、修正後のシフト量をシフト処理部２３に供給する。シフト処理部２３は、シフト量修正部２２から供給されたシフト量に基づいて、供給された入力画像の画素を参照画素として、右眼出力画像および左眼出力画像からなる立体画像を生成し、出力する。
【００８７】
［立体画像生成処理の説明］
続いて、図５のフローチャートを参照して、画像処理装置１１により行なわれる立体画像生成処理について説明する。
【００８８】
ステップＳ１１において、画像処理装置１１は、これから生成しようとする出力画像上の処理対象の画素のｘｙ座標系における位置（ｘ，ｙ）のｙ座標を０とする。
【００８９】
例えば、出力画像の水平方向（ｘ方向）の一方の端のｘ座標が０であり、出力画像の水平方向の他方の端のｘ座標がＳｘ−１であるとする。また、出力画像の垂直方向（ｙ方向）の一方の端のｙ座標が０であり、出力画像の垂直方向の他方の端のｙ座標がＳｙ−１であるとする。このとき、画像処理装置１１では、出力画像上の各画素が、位置（ｘ，ｙ）＝（０，０）の画素から位置（Ｓｘ−１，Ｓｙ−１）の画素まで順番に処理対象の画素として選択されていく。
【００９０】
ステップＳ１２において、画像処理装置１１は、出力画像上の処理対象の画素の位置（ｘ，ｙ）のｘ座標を０とする。したがって、ステップＳ１１およびステップＳ１２の処理により、位置（０，０）の画素が処理対象の画素とされたことになる。
【００９１】
ステップＳ１３において、シフト量算出部２１は、供給された奥行きマップに基づいて処理対象の画素のシフト量を算出する。
【００９２】
すなわち、シフト量算出部２１は、処理対象の画素の位置（ｘ，ｙ）と同じ位置にある奥行きマップの画素の画素値である奥行きの値depth(x,y)を式（２）に代入することで、出力画像の処理対象の画素のシフト量shift(x,y)を算出し、シフト量修正部２２に供給する。このようにして得られたシフト量shift(x,y)は、これから生成しようとする出力画像の画素と、その画素の入力画像における参照先の画素、つまり参照画素との位置関係を示している。
【００９３】
ステップＳ１４において、シフト量修正部２２は、シフト量算出部２１から供給された処理対象の画素のシフト量shift(x,y)と、その直前に算出された位置（ｘ−１，ｙ）の画素のシフト量shift(x-1,y)に基づいて、シフトが交差するか否かを判定する。
【００９４】
例えば、shift(x,y)−shift(x-1,y)＜０となる場合、シフトが交差すると判定される。なお、シフト量shift(x,y)と比較される位置（ｘ−１，ｙ）の画素のシフト量shift(x-1,y)は、シフト量修正部２２により必要に応じて修正されたシフト量である。
【００９５】
ステップＳ１４において、シフトが交差すると判定された場合、ステップＳ１５において、シフト量修正部２２は、処理対象の画素のシフト量shift(x,y)を修正し、修正後のシフト量をシフト処理部２３に供給する。すなわち、式（７）の計算が行なわれ、位置（ｘ−１，ｙ）の画素のシフト量shift(x-1,y)に位相phaseが加算された値が、処理対象の画素の修正後のシフト量shift(x,y)とされる。なお、式（７）の計算で用いられるシフト量shift(x-1,y)も、シフト量修正部２２により必要に応じて修正されたシフト量である。
【００９６】
ステップＳ１５において、シフト量が修正されると、その後、処理はステップＳ１６に進む。
【００９７】
一方、ステップＳ１４においてシフトが交差しないと判定された場合、シフト量の修正は不要であるので、シフト量修正部２２は、シフト量算出部２１から供給された処理対象の画素のシフト量shift(x,y)をそのままシフト処理部２３に供給し、処理はステップＳ１６に進む。
【００９８】
ステップＳ１５においてシフト量が修正されたか、またはステップＳ１４においてシフトが交差しないと判定されると、ステップＳ１６において、シフト処理部２３は、シフト量修正部２２からのシフト量と、供給された入力画像とからシフト処理を行なう。
【００９９】
すなわち、シフト処理部２３は、処理対象の画素のシフト量shift(x,y)に基づいて、入力画像上の参照すべき画素を特定し、特定された画素の画素値を、出力画像の処理対象の画素の画素値とすることで、出力画像を生成する。
【０１００】
ここで、入力画像上の参照すべき画素は、処理対象の画素と同じ位置にある入力画像上の画素から、水平方向にシフト量shift(x,y)だけ離れた位置にある画素である。したがって、ステップＳ１６では、上述した式（３）の計算が行なわれて、処理対象の画素の画素値が求められることになる。
【０１０１】
ステップＳ１７において、画像処理装置１１は処理対象の画素の位置（ｘ，ｙ）のｘ座標を１だけインクリメントする。これにより、現時点の処理対象の画素に対して水平方向に隣接する画素が、新たな処理対象の画素とされることになる。
【０１０２】
ステップＳ１８において、画像処理装置１１はｘ方向の端まで処理を行なったか否かを判定する。例えば、処理対象の画素の位置（ｘ，ｙ）のｘ座標がｘ＜Ｓｘである場合、ｘ方向の端まで処理を行なっていないと判定される。
【０１０３】
ステップＳ１８において、まだｘ方向の端まで処理を行なっていないと判定された場合、処理はステップＳ１３に戻り、上述した処理が繰り返される。すなわち、新たな処理対象の画素について、シフト量が求められ、そのシフト量が用いられてシフト処理が行なわれる。
【０１０４】
これに対して、ステップＳ１８において、ｘ方向の端まで処理を行なったと判定された場合、ステップＳ１９において、画像処理装置１１は処理対象の画素の位置（ｘ，ｙ）のｙ座標を１だけインクリメントする。
【０１０５】
ステップＳ２０において、画像処理装置１１はｙ方向の端まで処理を行なったか否かを判定する。例えば、処理対象の画素の位置（ｘ，ｙ）のｙ座標がｙ＜Ｓｙである場合、ｙ方向の端まで処理を行なっていないと判定される。
【０１０６】
ステップＳ２０において、まだｙ方向の端まで処理を行なっていないと判定された場合、処理はステップＳ１２に戻り、上述した処理が繰り返される。すなわち、これまで処理を行なった出力画像上の画素列に対して垂直方向に隣接する各画素が新たな処理対象の画素とされて、それらの画素に対するシフト処理が行なわれる。
【０１０７】
これに対して、ステップＳ２０において、ｙ方向の端まで処理を行なったと判定された場合、出力画像上の各画素が処理対象の画素とされ、それらの画素の画素値が求められたので、シフト処理部２３は得られた出力画像を出力し、立体画像生成処理は終了する。すなわち、シフト処理部２３からは、右眼出力画像と左眼出力画像からなる立体画像が出力される。
【０１０８】
以上のようにして、画像処理装置１１は、出力画像の各画素を処理対象の画素として、それらの画素のシフト量を算出する。そして、画像処理装置１１は、求めたシフト量を必要に応じて修正し、シフト量を用いて出力画像を生成する。
【０１０９】
このように、画像処理装置１１によれば、シフト量を必要に応じて修正するという簡単な処理で、鮮鋭感の劣化の少ない高品質な立体画像を得ることができる。
【０１１０】
〈第１の実施の形態の変形例１〉
［画像処理装置の構成例］
なお、以上においては、シフト量算出部２１に奥行きマップが供給されると説明したが、入力画像から奥行きマップが生成されるようにしてもよい。
【０１１１】
そのような場合、例えば図６に示すように、画像処理装置１１には、奥行き推定部３１が設けられる。なお、図６において図４における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【０１１２】
図６の画像処理装置１１は、奥行き推定部３１、シフト量算出部２１、シフト量修正部２２、およびシフト処理部２３から構成される。
【０１１３】
奥行き推定部３１は、供給された入力画像に基づいて奥行きマップを生成し、シフト量算出部２１に供給する。またシフト量算出部２１は、奥行き推定部３１から供給された奥行きマップに基づいてシフト量を算出し、シフト量修正部２２に供給する。
【０１１４】
さらに、図６の例において、入力画像が３次元の立体画像とされるようにしてもよい。そのような場合、立体画像を構成する各視点の画像ごとに奥行きマップの生成やシフト処理が行なわれ、３次元の立体画像が生成される。また、図４の画像処理装置１１に入力画像として３次元の立体画像が供給され、その立体画像を構成する各視点の画像についてシフト処理が行なわれ、新たな立体画像が生成されるようにしてもよい。
【０１１５】
〈第２の実施の形態〉
［本技術の概要について］
次に、本技術の第２の実施の形態について説明する。
【０１１６】
例えば、図７に示すように、入力画像ＩＰ３１に基づいて、立体画像を構成する左眼出力画像ＬＯＰ１１を生成することを考える。なお、図７において、図中、横方向および縦方向は水平方向（ｘ方向）および奥行き方向を示している。また、入力画像ＩＰ３１と左眼出力画像ＬＯＰ１１上の各円は、それらの画像上の画素を表している。
【０１１７】
例えば、位置ＤＳ３１は左眼出力画像ＬＯＰ１１が表示されるディスプレイの位置を示しており、このディスプレイがユーザの左眼ＥＬと右眼ＥＲにより観察されるとする。ここで、ユーザの左眼ＥＬと入力画像ＩＰ３１上の各画素とを結ぶ線分は、ユーザの左眼の視線を表している。
【０１１８】
また、図７では、入力画像ＩＰ３１の各画素は、入力画像ＩＰ３１について求められた奥行きマップの同じ位置にある画素の画素値、つまり奥行きの値により定まる位置に配置されている。より詳細には、奥行きマップにより示される奥行きの値が、物理的な奥行き情報に変換され、それらの奥行き情報から定まる、ディスプレイの位置ＤＳ３１を基準とした位置に、入力画像ＩＰ３１の各画素が配置されている。
【０１１９】
したがって、入力画像ＩＰ３１において、図中、下側に位置する画素は、ユーザには手前側に観察される被写体の画素であり、図中、上側に位置する画素は、ユーザには奥側に観察される被写体の画素である。
【０１２０】
ところで、奥行きマップのｘ方向（水平方向）の位置がｘである画素の画素値、つまり奥行きの値をdepth(x)とし、その奥行きdepth(x)から定まる物理的な奥行き情報をDepth(x)とすると、この奥行き情報Depth(x)（ｃｍ単位）は、次式（８）により求まる。
【０１２１】
【数８】
2013196620.tif 000010
【０１２２】
なお、式（８）において、display_posはディスプレイの奥行き方向の位置ＤＳ３１を示す物理的な奥行き情報であり、depth_maxは奥行きマップの画素の画素値（奥行きの値）の最大値を示している。そして、display_posとdepth_maxとの間には、０≦display_pos≦depth_maxの関係が成立する。
【０１２３】
さらに、式（８）において、Depth_Lengthは、奥行き情報Depth(x)が取り得る値の範囲の長さ（ｃｍ単位）を示している。
【０１２４】
また、ディスプレイ上の画像の水平方向に並ぶ画素の間隔を物理量、つまり物理的な画素間隔（ｃｍ単位）に変換するための変換係数pix_to_cmを、ディスプレイの水平方向の幅Display_Width（ｃｍ単位）と、ディスプレイの水平方向画素数display_width（画素単位）の比として、次式（９）により定義するとする。
【０１２５】
【数９】
2013196620.tif 000011
【０１２６】
いま、ユーザの左眼ＥＬと右眼ＥＲの間の距離を両眼間距離Baseline（ｃｍ単位）とし、ユーザの左眼ＥＬと右眼ＥＲを結ぶ基線から、ディスプレイの位置ＤＳ３１までの奥行き方向の長さを視距離Visual_Distance（ｃｍ単位）とする。
【０１２７】
このような場合に、ユーザの左眼ＥＬと右眼ＥＲから入力画像ＩＰ３１を見たときに観察される画像、すなわち左眼出力画像および右眼出力画像を生成することを考える。ここでは、例えば左眼出力画像ＬＯＰ１１を生成することを考える。
【０１２８】
例えば、入力画像ＩＰ３１の各位置、つまり奥行き情報Depth(x)の分布曲線の水平方向における各位置と、左眼ＥＬとを通る直線を直線ｔとすると、この直線ｔを用いて、直線ｔとディスプレイ（位置ＤＳ３１）との交点のｘ座標（以下、ｘ’とする）が得られる。この交点の位置、つまり座標ｘ’の位置に直線ｔと交わる入力画像ＩＰ３１上の画素を配置して左眼出力画像ＬＯＰ１１の画素とすれば、左眼出力画像ＬＯＰ１１が得られる。
【０１２９】
このとき、入力画像ＩＰ３１（奥行き情報Depth(x)の分布）における直線ｔとの交点位置のｘ座標（以下、位置ｘとも称する）と、座標ｘ’（以下、位置ｘ’とも称する）とからずれ量shiftL(x)＝ｘ’−ｘが得られ、このshiftL(x)がシフト量（画素単位）となる。すなわち、入力画像ＩＰ３１上の位置ｘにある画素を、シフト量shiftL(x)だけシフト（移動）させて、シフト先の位置ｘ’にある左眼出力画像ＬＯＰ１１の画素とすればよい。
【０１３０】
シフト量shiftL(x)は、平行視となるときの左眼ＥＬの光軸と、ｘ軸との交点位置のｘ座標をｘｌとすると、式（８）、式（９）、および視距離Visual_Distanceから、次式（１０）により表される。
【０１３１】
【数１０】
2013196620.tif 000012
【０１３２】
ここで、例えば、直線ｔとして、ユーザの左眼ＥＬと入力画像ＩＰ３１上の画素Ｇ６１とを通る直線ｔ１１を考えると、この直線ｔ１１は、ｘ座標がｘ１１である位置（以下、位置ｘ１１とも称する）においてディスプレイ（位置ＤＳ３１）と交差する。したがって、画素Ｇ６１の画素値を、左眼出力画像ＬＯＰ１１における位置ｘ１１にある画素の画素値とすればよいことになる。
【０１３３】
そして、位置ｘ１１から画素Ｇ６１のｘ方向の位置（座標ｘ）までの矢印ＳＦ１１が、式（１０）により求まるシフト量shiftL(x)となる。
【０１３４】
このような左眼出力画像のシフト量shiftL(x)と同様の処理を行なうことで、右眼出力画像についても次式（１１）の計算によりシフト量shiftR(x)を求めることができる。
【０１３５】
【数１１】
2013196620.tif 000013
【０１３６】
なお、式（１１）において、ｘ方向の座標ｘｒは、平行視となるときの右眼ＥＲの光軸と、ｘ軸との交点位置のｘ座標を示している。
【０１３７】
したがって、例えば図８に示すように、直線ｔとして、ユーザの右眼ＥＲと入力画像ＩＰ３１上の画素Ｇ６１とを通る直線ｔ２１を考えると、この直線ｔ２１は、ｘ座標がｘ２１である位置（以下、位置ｘ２１とも称する）においてディスプレイ（位置ＤＳ３１）と交差する。したがって、画素Ｇ６１の画素値を、右眼出力画像ＲＯＰ１１における位置ｘ２１にある画素の画素値とすればよいことになる。
【０１３８】
以上より、両眼間距離Baselineは、Baseline＝(xr-xl)×pix_to_cmと表すことができる。
【０１３９】
そして、位置ｘ２１から画素Ｇ６１のｘ方向の位置（座標ｘ）までの矢印ＳＦ２１が、式（１１）により求まるシフト量shiftR(x)となる。
【０１４０】
なお、図８において横方向および縦方向は、水平方向（ｘ方向）および奥行き方向を示しており、図８において図７における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。また、右眼出力画像ＲＯＰ１１上の各円は１つの画素を表している。
【０１４１】
図８の例では、画素Ｇ６１は、左眼ＥＬの視線上にあるとともに右眼ＥＲの視線上にもあるので、ユーザにより画素Ｇ６１に表示された被写体が立体視されている状態となっている。このとき、シフト量shiftL(x)とシフト量shiftR(x)から、左眼出力画像ＬＯＰ１１と右眼出力画像ＲＯＰ１１の視差disparity(x)（画素単位）が得られる。
【０１４２】
具体的には、左右のシフト量の符号が逆になることと、視差を０および正数で表すことを考慮して、視差disparity(x)＝｜shiftL(x)−shiftR(x)｜とされる。さらに、この視差disparity(x)を変形していくと、次式（１２）が得られる。
【０１４３】
【数１２】
2013196620.tif 000014
【０１４４】
この式（１２）は、奥行きマップを視差に変換するときの一般的な手法で、Depth Image Based Renderingと呼ばれている。式（１２）から求まる視差disparity(x)を２で除算した値をシフト量として、参照先の画素を左右にシフトさせることで、出力画像を求めることができる。
【０１４５】
ところで、図７および図８を参照して説明した立体画像の生成手法は、入力画像の座標系を処理の基準としたものであるが、このような生成手法では、オクルージョンのような、もともと情報を有していない領域が、いわゆる穴として出力画像内に生じてしまう。
【０１４６】
そのため、Image Inpaintingのような穴埋め処理を適用することが一般的に行なわれる。しかし、Image Inpaintingの効果は画像の絵柄（被写体）に依存し、またImage Inpaintingの処理コストも少なくない。
【０１４７】
そこで、図９に示すように、出力画像の座標系を処理の基準とすることで、すなわち出力画像の全ての画素について、奥行きマップに基づき入力画像の画素を参照することで、オクルージョン領域のない出力画像を得ることができる。
【０１４８】
なお、図９において横方向および縦方向は、水平方向（ｘ方向）および奥行き方向を示しており、図９において図７における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。また、左眼出力画像ＬＯＰ２１上の各円は１つの画素を表している。
【０１４９】
図９の例では、ディスプレイが仮想空間上の所定の奥行き位置に配置されており、入力画像ＩＰ３１と左眼出力画像ＬＯＰ２１は、仮想空間上のディスプレイの位置ＤＳ３１に配置されている。
【０１５０】
出力画像の座標系を処理の基準として、出力画像の各画素について入力画像上の参照画素を求める手法では、入力画像の座標系で表現される奥行きマップを出力画像の座標系から参照することができれば、任意の視点の画像を１枚の奥行きマップから直接生成することができる。図９では、出力画像として、左眼出力画像ＬＯＰ２１を生成する例について説明する。
【０１５１】
まず、奥行きマップの各画素の奥行きdepth(x)から定まる、物理的な奥行き情報Depth(x)が取り得る値の範囲の長さDepth_Length（ｃｍ単位）と、ディスプレイの位置ＤＳ３１を示す物理的な奥行き情報display_posから、次式（１３）と式（１４）が計算される。
【０１５２】
【数１３】
2013196620.tif 000015
【０１５３】
【数１４】
2013196620.tif 000016
【０１５４】
ここで、式（１３）の計算により求まる奥行き位置Depthback（ｃｍ単位）は、奥行き情報Depth(x)が、ディスプレイの位置ＤＳ３１の奥側に対して取り得る値の範囲の奥側の端の位置を示しており、図９では位置ＤＢ１１である。
【０１５５】
また、式（１４）の計算により求まる奥行き位置Depthfront（ｃｍ単位）は、奥行き情報Depth(x)が、ディスプレイの位置ＤＳ３１の手前側に対して取り得る値の範囲の手前側の端の位置を示しており、図９では位置ＤＦ１１である。
【０１５６】
このようにして求めた奥行き位置Depthback（位置ＤＢ１１）および奥行き位置Depthfront（位置ＤＦ１１）と、左眼出力画像ＬＯＰ２１の座標ｘにある画素Ｇ８１および左眼ＥＬとを通る直線を直線ｔ３１とすると、画素Ｇ８１のシフト量の最大値と最小値が求まる。
【０１５７】
すなわち、次式（１５）を計算することにより、画素Ｇ８１のシフト量の最大値である最大シフト量shiftL max(x)と、シフト量の最小値である最小シフト量shiftL min(x)とが求まる。なお、式（１５）の計算では、画素Ｇ８１の位置のｘ座標と、平行視となるときの左眼ＥＬの光軸とｘ軸との交点位置のｘ方向の座標ｘｌとの大小関係により場合分けが行なわれる。
【０１５８】
【数１５】
2013196620.tif 000017
【０１５９】
例えば、図９において直線ｔ３１と位置ＤＦ１１との交点位置を位置ＯＲ１１とすると、位置ＯＲ１１から座標ｘ（位置ｘ）、つまり画素Ｇ８１までの長さがシフト量shiftL min(x)の大きさである。また、直線ｔ３１と位置ＤＢ１１との交点位置を位置ＯＲ１２とすると、位置ＯＲ１２から座標ｘ（位置ｘ）までの長さがシフト量shiftL max(x)であり、位置ＯＲ１１から位置ＯＲ１２までの長さがshiftL max(x)−shiftL min(x)である。
【０１６０】
この例では、左眼出力画像ＬＯＰ２１の画素Ｇ８１から、入力画像ＩＰ３１上の直線ｔ３１と交わる位置にある画素Ｇ８２までの距離が、画素Ｇ８１のシフト量shiftL(x)（画素単位）となることが分かる。つまり、画素Ｇ８１の参照画素が画素Ｇ８２であることが分かる。
【０１６１】
以上のことから、左眼出力画像ＬＯＰ２１の座標ｘの画素の参照画素は、入力画像ＩＰ３１における座標ｘの位置から最小シフト量shiftL min(x)だけ離れた位置から、座標ｘの位置から最大シフト量shiftL max(x)だけ離れた位置までの間の領域（区間）に存在することになる。
【０１６２】
すなわち、Ｚを整数として左眼出力画像ＬＯＰ２１の画素のｘ座標をｘとすると、左眼出力画像ＬＯＰ２１上の各画素の座標ｘの集合Ｘは、次式（１６）に示すようになる。また、ｘ方向のある座標ｘに対して、最小シフト量shiftL min(x)だけ離れた位置から、最大シフト量shiftL max(x)だけ離れた位置までの間の区間で取り得るｘ方向の座標ｓの集合Ｓは、次式（１７）に示すようになる。
【０１６３】
【数１６】
2013196620.tif 000018
【０１６４】
【数１７】
2013196620.tif 000019
【０１６５】
これらの式から、左眼出力画像ＬＯＰ２１上の座標ｘにある画素が参照すべき入力画像ＩＰ３１の画素の座標ｓは、必ず集合Ｓに含まれることになる。したがって、参照先となる入力画像ＩＰ３１の画素は、集合Ｓの各要素である座標ｓを評価することで、求めることができる。なお、座標ｓは整数精度であってもよいし、小数精度であってもよい。
【０１６６】
例えば、座標ｓの評価を行なうと、図１０に示すように、左眼出力画像ＬＯＰ２１上の各画素に対して参照画素が求まる。なお、図１０において横方向および縦方向は、それぞれ水平方向（ｘ方向）および奥行き方向を示している。また、図１０において、図９における場合と対応する部分には同一の符号を付してあり、その説明は省略する。
【０１６７】
図１０の例では、入力画像ＩＰ３１上のばつ印が、左眼出力画像ＬＯＰ２１の各画素の参照画素を表している。
【０１６８】
すなわち、左眼出力画像ＬＯＰ２１上の所定の画素を注目画素とすると、ユーザの左眼ＥＬと注目画素を通る直線がユーザの左眼ＥＬの視線であり、この視線と入力画像ＩＰ３１との交点の位置が、ばつ印で表される参照画素の位置となっている。この例では、入力画像ＩＰ３１上の参照画素は、小数精度で求められている。
【０１６９】
次に、集合Ｓの各要素である座標ｓを評価することにより、入力画像ＩＰ３１上の参照画素を求める処理について、さらに詳細に説明する。
【０１７０】
例えば、入力画像ＩＰ３１上の参照画素の座標ｓを整数精度、つまり画素精度で求めるとする。そのような場合、ユーザの左眼ＥＬと左眼出力画像ＬＯＰ２１上の座標ｘにある画素とを通る直線をDepthcandidate(x)とすると、直線Depthcandidate(x)のｘ座標がｓであるときの値、つまり奥行き情報Depthcandidate(s)（ｃｍ単位）は次式（１８）により求まる。
【０１７１】
【数１８】
2013196620.tif 000020
【０１７２】
また、式（８）から、ｘ座標がｓである場合における物理的な奥行き情報Depth(s)（ｃｍ単位）を得ることができる。この奥行き情報Depth(s)は、奥行きマップの座標ｓの位置にある画素の画素値から求まる奥行き情報である。
【０１７３】
入力画像ＩＰ３１上の参照画素とすべき位置は、ユーザの左眼ＥＬおよび左眼出力画像ＬＯＰ２１の画素を通る直線と、入力画像ＩＰ３１との交点の位置であるから、そのような位置では、奥行き情報Depthcandidate(s)と奥行き情報Depth(s)は等しいはずである。
【０１７４】
そこで、奥行き情報Depthcandidate(s)と奥行き情報Depth(s)の差分絶対値が最小となる座標ｓの位置を、参照すべき入力画像ＩＰ３１上の位置とすればよいことになる。
【０１７５】
しかし、この場合、各座標ｓについて差分絶対値を求め、それらの差分絶対値を比較しなければならないので、集合Ｓが大きくなると参照画素を求めるのに必要な計算量が多くなってしまう。
【０１７６】
そこで、本技術では入力画像ＩＰ３１（奥行き情報Depth(x)）と直線Depthcandidate(x)との交点のなかから、最もユーザの左眼ＥＬに近い交点を求め、その交点近傍の座標ｓから参照画素のｘ座標を求めることとした。
【０１７７】
これは、例えば図１１に示すように、位置ＯＲ１１から位置ＯＲ１２までの間の区間内において、直線Depthcandidate(x)を示す直線ｔ３１と、入力画像ＩＰ３１（奥行き情報Depth(x)）とが、少なくとも１度は交わることを利用するものである。
【０１７８】
なお、図１１において横方向および縦方向は、それぞれ水平方向（ｘ方向）および奥行き方向を示しており、図１１において、図９における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【０１７９】
図１１の例では、直線ｔ３１と入力画像ＩＰ３１とは、矢印ＣＲ１１乃至矢印ＣＲ１３のそれぞれにより示される３つの位置で交差している。このうち、最もユーザの左眼ＥＬに近い交点は、矢印ＣＲ１１に示す交点であるから、この交点近傍にある座標ｓを参照画素のｘ座標とすればよい。
【０１８０】
これは、入力画像ＩＰ３１上の各交点位置にある被写体のうち、最もユーザの左眼ＥＬに近い被写体が、ユーザの左眼ＥＬから観察されるはずだからである。このように、適切に参照画素を定めることで画像の破綻を抑制し、高品質な立体画像を得ることができる。
【０１８１】
なお、直線Depthcandidate(x)と入力画像ＩＰ３１との正確な交点を求めるには、Depthcandidate(s)＝Depth(s)を解く必要がある。しかし、例えばDepth(s)−Depthcandidate(s)の符号が反転するｘ座標を探索することで、直線Depthcandidate(x)と入力画像ＩＰ３１の交点を求めるようにしてもよい。以下では、Depth(s)−Depthcandidate(s)の符号が反転するｘ座標を探索することにより、直線Depthcandidate(x)と入力画像ＩＰ３１の交点を求めることとして、説明を続ける。
【０１８２】
そのような場合、式（１７）に示した集合Ｓを、次式（１９）に示す集合Ｓ’に変更し、集合Ｓ’に属す座標ｓにおける奥行き情報Depth(s)と奥行き情報Depthcandidate(s)の差分diff(s)を次式（２０）で定義する。
【０１８３】
【数１９】
2013196620.tif 000021
【０１８４】
【数２０】
2013196620.tif 000022
【０１８５】
この差分diff(s)の符号が反転するｘ座標の集合Scandidate、つまり矢印ＣＲ１１乃至矢印ＣＲ１３に示される交点近傍のｘ座標は、次式（２１）により表すことができる。
【０１８６】
【数２１】
2013196620.tif 000023
【０１８７】
また、次式（２２）に示すように、直線Depthcandidate(x)と入力画像ＩＰ３１（奥行き情報Depth(x)）の交点近傍の座標ｓにおける奥行き情報Depthcandidate(s)を、座標ｓにおける評価値eval(s)とする。
【０１８８】
【数２２】
2013196620.tif 000024
【０１８９】
奥行き情報Depthcandidate(s)（ｃｍ単位）は、-Depthfront≦Depthcandidate(s)≦Depthbackを満たし、奥行き情報Depthcandidate(s)が小さいほど、座標ｓにおける直線Depthcandidate(x)上の位置は、ユーザの左眼ＥＬに近いことになる。
【０１９０】
そこで、本技術では、次式（２３）により、左眼出力画像ＬＯＰ２１上の座標ｘにある画素に対する、入力画像ＩＰ３１上の参照画素のｘ座標「ｘ＋shiftL(x)」が算出される。つまり、式（２３）で得られるshiftL(x)が、画像の破綻を抑制し、高品質な立体画像を得るための参照画素からのシフト量である。
【０１９１】
【数２３】
2013196620.tif 000025
【０１９２】
なお、式（２３）の計算では、座標ｘと、平行視となるときの左眼ＥＬの光軸とｘ軸との交点位置のｘ方向の座標ｘｌとの大小関係により場合分けが行なわれ、評価値eval(s)の最小値が「ｘ＋shiftL(x)」または「ｘ＋shiftL(x)＋１」とされる。
【０１９３】
本技術では、このようにして求められた入力画像ＩＰ３１上の座標「ｘ＋shiftL(x)」または「ｘ＋shiftL(x)＋１」の画素の画素値が、左眼出力画像ＬＯＰ２１上の座標ｘにある画素の画素値とされて左眼出力画像ＬＯＰ２１が生成される。また、右眼出力画像も、左眼出力画像と同様の処理により生成される。つまり、評価値eval(s)に基づいて右眼出力画像のシフト量shiftR(x)が求められる。
【０１９４】
［画像処理装置の構成例］
次に、以上において説明した本技術の具体的な実施の形態について説明する。
【０１９５】
図１２は、本技術を適用した画像処理装置の一実施の形態の構成例を示す図である。すなわち、図１２の画像処理装置６１は、探索範囲算出部７１、差分算出部７２、判定部７３、評価値算出部７４、シフト量算出部７５、およびシフト処理部７６から構成される。
【０１９６】
探索範囲算出部７１は、出力画像上の処理対象の画素に対して、その画素の参照画素を探索する範囲を探索範囲として定め、差分算出部７２に供給する。差分算出部７２は、探索範囲算出部７１から供給された探索範囲内の各位置について、供給された奥行きマップに基づいて差分diff(s)を算出し、判定部７３に供給する。
【０１９７】
判定部７３は、差分算出部７２から供給された差分diff(s)に基づいて、探索範囲内の各位置を処理対象の画素の参照先の候補とするか否かを判定し、その判定結果を評価値算出部７４に供給する。
【０１９８】
評価値算出部７４は、判定部７３からの判定結果に基づいて、探索範囲内の参照先の候補とされた位置について評価値eval(s)を算出し、シフト量算出部７５に供給する。シフト量算出部７５は、評価値算出部７４から供給された評価値eval(s)に基づいて、処理対象の画素のシフト量を算出し、シフト処理部７６に供給する。
【０１９９】
シフト処理部７６は、シフト量算出部７５から供給されたシフト量と、供給された入力画像とに基づいてシフト処理を行い、左眼出力画像および右眼出力画像からなる立体画像を生成し、出力する。
【０２００】
［立体画像生成処理の説明］
続いて、図１３のフローチャートを参照して、画像処理装置６１により行なわれる立体画像生成処理について説明する。
【０２０１】
ステップＳ５１において、画像処理装置６１は、これから生成しようとする出力画像上の処理対象の画素のｘｙ座標系における位置（ｘ，ｙ）のｙ座標を０とする。
【０２０２】
例えば、出力画像の水平方向（ｘ方向）の一方の端のｘ座標が０であり、出力画像の水平方向の他方の端のｘ座標がＳｘ−１であるとする。また、出力画像の垂直方向（ｙ方向）の一方の端のｙ座標が０であり、出力画像の垂直方向の他方の端のｙ座標がＳｙ−１であるとする。このとき、画像処理装置６１では、出力画像上の各画素が、位置（ｘ，ｙ）＝（０，０）の画素から位置（Ｓｘ−１，Ｓｙ−１）の画素まで順番に処理対象の画素として選択されていく。
【０２０３】
ステップＳ５２において、画像処理装置６１は、出力画像上の処理対象の画素の位置（ｘ，ｙ）のｘ座標を０とする。
【０２０４】
ステップＳ５３において、探索範囲算出部７１は、出力画像上の処理対象の画素に対して、その画素の参照画素を探索する探索範囲を定め、差分算出部７２に供給する。
【０２０５】
具体的には、探索範囲算出部７１は式（１３）および式（１４）を計算することで、奥行き位置Depthbackおよび奥行き位置Depthfrontを求める。さらに探索範囲算出部７１は、これらの奥行き位置を用いて式（１５）を計算し、処理対象の画素の座標ｘに対する最大シフト量shiftL max(x)と最小シフト量shiftL min(x)を算出する。
【０２０６】
これにより、式（１９）に示した集合Ｓ’が左眼出力画像についての探索範囲として求まる。この場合、例えば位置（ｘ＋shiftL min(x)＋１，ｙ）乃至位置（ｘ＋shiftL max(x)，ｙ）が探索範囲とされる。なお、ここでｘ，ｙは出力画像の処理対象の画素のｘ座標とｙ座標である。探索範囲算出部７１は、同様の処理を行なって右眼出力画像についても探索範囲を求める。なお、探索範囲は、予め求められて探索範囲算出部７１に保持されているようにしてもよい。
【０２０７】
ステップＳ５４において、画像処理装置６１は、探索範囲内の処理対象の座標ｓを初期化する。例えば左眼出力画像について、処理対象の座標ｓが、集合Ｓ’に属するｓのうちの最小のもの、つまりｘ＋shiftL min(x)＋１とされる。右眼出力画像についても同様にして処理対象の座標ｓが初期化される。
【０２０８】
ステップＳ５５において、画像処理装置６１は、探索範囲内の全ての座標ｓについて処理を行なったか否かを判定する。
【０２０９】
ステップＳ５５において、まだ全ての座標ｓについて処理を行なっていないと判定された場合、処理はステップＳ５６に進む。
【０２１０】
ステップＳ５６において、差分算出部７２は、探索範囲算出部７１から供給された探索範囲内の処理対象の座標ｓについて、供給された奥行きマップに基づいて差分diff(s)を算出し、判定部７３に供給する。
【０２１１】
例えば、差分算出部７２は、左眼出力画像について式（１８）を計算して奥行き情報Depthcandidate(s)を算出するとともに、処理対象の座標ｓについて式（８）を計算し、奥行き情報Depth(s)を算出する。そして、差分算出部７２は、得られた奥行き情報Depthcandidate(s)と奥行き情報Depth(s)とから式（２０）を計算することで、差分diff(s)を算出する。なお、右眼出力画像についても、同様の計算により差分diff(s)が算出される。
【０２１２】
このようにステップＳ５６では、奥行き情報Depthcandidate(s)と奥行き情報Depth(s)とが比較され、その比較結果として差分diff(s)が求められる。
【０２１３】
ステップＳ５７において、判定部７３は、差分算出部７２から供給された差分diff(s)に基づいて、探索範囲内の処理対象の座標ｓを、処理対象の画素の参照先の候補とするか否かを判定し、その判定結果を評価値算出部７４に供給する。
【０２１４】
例えば、求めた差分diff(s)について、差分diff(s)と差分diff(s-1)の積が０未満である場合、処理対象の座標ｓを参照先の候補とすると判定される。つまり、処理対象の座標ｓは、式（２１）に示した集合Scandidateに属するとされる。この判定は、右眼出力画像と左眼出力画像とについて、それぞれ行なわれる。
【０２１５】
ステップＳ５７において、処理対象の座標ｓを参照先の候補とすると判定された場合、ステップＳ５８において、評価値算出部７４は、探索範囲内の参照先の候補とされた座標ｓについて評価値eval(s)を算出し、シフト量算出部７５に供給する。
【０２１６】
例えば、左眼出力画像について、式（２２）の計算、つまり式（１８）の計算が行なわれ、座標ｓの評価値eval(s)が算出される。なお、右眼出力画像についても同様の計算が行なわれ、評価値が算出される。
【０２１７】
ステップＳ５８において評価値eval(s)が算出されたか、またはステップＳ５７において処理対象の座標ｓを参照先の候補としないと判定された場合、処理はステップＳ５９に進み、画像処理装置６１は、処理対象の座標ｓを１だけインクリメントする。
【０２１８】
ステップＳ５９の処理が行なわれ、新たな座標ｓが処理対象とされると、その後、処理はステップＳ５５に戻り、上述した処理が繰り返される。すなわち、集合Ｓ’に属す全ての座標ｓについて処理が行なわれる。
【０２１９】
また、ステップＳ５５において、全ての座標ｓについて処理が行なわれたと判定された場合、処理はステップＳ６０に進む。
【０２２０】
ステップＳ６０においてシフト量算出部７５は、評価値算出部７４から供給された評価値eval(s)に基づいて、処理対象の画素のシフト量を算出し、シフト処理部７６に供給する。
【０２２１】
例えば、シフト量算出部７５は左眼出力画像について、式（２３）を計算することで、処理対象の画素に対するシフト量shiftL(x)を算出する。なお、右眼出力画像についても同様の計算により、シフト量shiftR(x)が算出される。
【０２２２】
ステップＳ６１において、シフト処理部７６は、シフト量算出部７５から供給されたシフト量に基づいてシフト処理を行なう。
【０２２３】
例えば、シフト処理部７６は、左眼出力画像についてのシフト量shiftL(x)に基づいて、入力画像上におけるｘ座標が「ｘ＋shiftL(x)」である画素、より詳細には位置（ｘ，ｙ）＝（ｘ＋shiftL(x)，ｙ）にある画素を座標ｘにある左眼出力画像の処理対象の画素の参照画素とする。そして、シフト処理部７６は、参照画素の画素値を、左眼出力画像の処理対象の画素の画素値とすることで、左眼出力画像を生成する。なお、右眼出力画像についても同様の処理が行なわれ、右眼出力画像が生成される。
【０２２４】
ステップＳ６２において、画像処理装置６１は処理対象の画素の位置（ｘ，ｙ）のｘ座標を１だけインクリメントする。
【０２２５】
ステップＳ６３において、画像処理装置６１はｘ方向の端まで処理を行なったか否かを判定する。例えば、処理対象の画素の位置（ｘ，ｙ）のｘ座標がｘ＜Ｓｘである場合、ｘ方向の端まで処理を行なっていないと判定される。
【０２２６】
ステップＳ６３において、まだｘ方向の端まで処理を行なっていないと判定された場合、処理はステップＳ５３に戻り、上述した処理が繰り返される。すなわち、新たな処理対象の画素について、シフト量が求められ、そのシフト量からシフト処理が行なわれる。
【０２２７】
これに対して、ステップＳ６３において、ｘ方向の端まで処理を行なったと判定された場合、ステップＳ６４において、画像処理装置６１は処理対象の画素の位置（ｘ，ｙ）のｙ座標を１だけインクリメントする。
【０２２８】
ステップＳ６５において、画像処理装置６１はｙ方向の端まで処理を行なったか否かを判定する。例えば、処理対象の画素の位置（ｘ，ｙ）のｙ座標がｙ＜Ｓｙである場合、ｙ方向の端まで処理を行なっていないと判定される。
【０２２９】
ステップＳ６５において、まだｙ方向の端まで処理を行なっていないと判定された場合、処理はステップＳ５２に戻り、上述した処理が繰り返される。
【０２３０】
これに対して、ステップＳ６５において、ｙ方向の端まで処理を行なったと判定された場合、出力画像上の各画素が処理対象の画素とされ、それらの画素の画素値が求められたので、シフト処理部７６は得られた出力画像を出力し、立体画像生成処理は終了する。すなわち、シフト処理部７６からは、右眼出力画像と左眼出力画像からなる立体画像が出力される。
【０２３１】
以上のようにして、画像処理装置６１は、出力画像の各画素を処理対象の画素として、それらの画素のシフト量を算出する。すなわち、画像処理装置６１では、奥行き情報Depthcandidate(s)と奥行き情報Depth(s)とが比較され、その比較結果に基づいて処理対象の各画素のシフト量が算出される。そして、画像処理装置１１は、求めたシフト量を用いて出力画像を生成する。
【０２３２】
このとき、座標ｓの探索範囲を定めることで、より簡単に適切なシフト量を求めることができ、鮮鋭感の劣化の少ない高品質な立体画像を得ることができる。また、差分diff(s)を用いて参照画素の候補となる位置を求めることで、より簡単にシフト量を求めることができる。
【０２３３】
なお、以上においては、集合Scandidateに属す各座標ｓについて評価値を求め、それらの評価値からシフト量を求めると説明したが、集合Scandidateに属す座標ｓが最初に検出された時点で、その座標ｓからシフト量を求めるようにしてもよい。そのような場合でも、集合Ｓ’に属す座標ｓの小さいものから順番に処理対象の座標ｓとして選択していけば、適切なシフト量を得ることができる。
【０２３４】
また、図１２に示した画像処理装置６１においても、図６における場合と同様に、差分算出部７２の前段に奥行き推定部３１が設けられるようにしてもよい。また、画像処理装置６１に供給される入力画像が３次元の立体画像とされ、その立体画像を構成する各視点の画像についてシフト処理が行なわれ、新たな立体画像が生成されるようにしてもよい。
【０２３５】
〈第３の実施の形態〉
［本技術の概要について］
さらに、出力画像の処理対象の画素に対して参照画素の探索範囲を定めて参照画素、つまりシフト量を求める場合に、探索範囲内の入力画像（奥行きマップ）における各位置の奥行きのパターン分類を利用するようにしてもよい。
【０２３６】
そのような場合、例えば図１４に示すように、奥行きマップの各画素の画素値、つまり奥行きの値に基づいて、入力画像ＩＰ５１上の各画素が仮想空間における奥行き方向の各位置に配置される。なお、図１４において、横方向および縦方向は、水平方向（ｘ方向）および奥行き方向を示している。
【０２３７】
また、視点位置Ｖ１２はユーザの視点位置を示しており、仮想空間における視点位置Ｖ１２と入力画像ＩＰ５１との間に出力画像ＯＰ５１が配置されている。さらに、位置ＤＳ５１は出力画像ＯＰ５１が表示されるディスプレイの位置を示しており、ここでは、位置ＤＳ５１、つまりディスプレイの位置の物理的な奥行き情報を示すdisplay_posは０とされている。
【０２３８】
さらに、入力画像ＩＰ５１と出力画像ＯＰ５１上の各円は、１つの画素を表している。なお、出力画像ＯＰ５１は右眼出力画像であっても左眼出力画像であってもよいが、以下では出力画像ＯＰ５１が左眼出力画像であるものとして説明を続ける。この場合、視点位置Ｖ１２はユーザの左眼の位置となる。
【０２３９】
いま、出力画像ＯＰ５１上の画素ＡＴ１１を処理対象の画素として、画素ＡＴ１１についてのシフト量を求めることを考える。ここで、画素ＡＴ１１のｘ座標は「ｘ」であるものとする。
【０２４０】
まず、視点位置Ｖ１２と画素ＡＴ１１とから、視点位置Ｖ１２と画素ＡＴ１１を通る直線ｔ６１が求まる。
【０２４１】
また、奥行きマップにより示される奥行きの取り得る値の範囲を０からdepth_maxとするとき、このdepth_maxを実空間上の長さに変換した値Depth_Max（ｃｍ単位）は、上述の式（１４）におけるdisplay_pos＝０とすれば、次式（２４）により表される。
【０２４２】
【数２４】
2013196620.tif 000026
【０２４３】
この奥行きの最大値Depth_Maxは、矢印ＦＤＭ１１となる。つまり、矢印ＦＤＭ１１の長さが最大値Depth_Maxの大きさであり、奥行きの値がDepth_Maxとなる位置が、図中、縦方向における矢印ＦＤＭ１１の終点の位置である。
【０２４４】
また、式（２４）から、画素ＡＴ１１のシフト量の最大値は、次式（２５）に示す値shift_maxとなる。
【０２４５】
【数２５】
2013196620.tif 000027
【０２４６】
なお、式（２５）においてｘｌは、平行視となるときの視点位置Ｖ１２にある眼、つまりユーザの左眼の光軸と、ｘ軸との交点位置のｘ座標を示しており、Visual_Distanceは視点位置Ｖ１２から位置ＤＳ５１までの距離、つまり視距離を示している。また、式（２５）は、ｘ≧ｘｌの場合にシフト量の最大値shift_maxを算出するための式であり、ｘ＜ｘｌの場合には、式（２５）における「ｘ−ｘｌ」を「ｘｌ−ｘ」とすればよい。
【０２４７】
図１４の例では、矢印ＳＦ４１がシフト量の最大値shift_maxを示している。つまり、矢印ＳＦ４１の長さが最大値shift_maxの大きさを示している。
【０２４８】
したがって、ｘ方向（水平方向）の位置ＯＲ４１から位置ＯＲ４２までの範囲が探索範囲とされ、入力画像ＩＰ５１における探索範囲内の画素が参照画素となる。つまり奥行きマップ上の探索範囲内の画素の画素値（奥行きの値）を参照して、シフト量を求めればよい。この場合、シフト量の取り得る値の範囲は、０以上、最大値shift_max以下となる。
【０２４９】
なお、位置ＯＲ４１は、水平方向における画素ＡＴ１１の位置、つまりｘ座標が「ｘ」である位置であり、位置ＯＲ４２は、ｘ座標が「ｘ＋shift_max」である位置となる。
【０２５０】
このようにして探索範囲が定まると、次に探索範囲内の各位置の奥行きのパターン分類が行なわれる。
【０２５１】
すなわち、探索範囲内の各位置が、順番に処理対象の位置ｉ（但し、０≦ｉ≦shift_max）として選択されていき、各位置ｉについて次式（２６）が計算され、閾値thresholdが算出される。なお、位置ｉのｘ座標は「ｘ＋ｉ」であり、入力画像ＩＰ５１上の位置ｉにある画素が参照画素とされた場合には、処理対象の画素、つまり出力画像ＯＰ５１の座標ｘにある画素のシフト量shiftは「ｉ」となる。
【０２５２】
【数２６】
2013196620.tif 000028
【０２５３】
各位置ｉについて閾値thresholdが得られると、さらに次式（２７）の計算が行なわれて、位置ｉが「１」または「０」の何れかのクラスに分類される。
【０２５４】
【数２７】
2013196620.tif 000029
【０２５５】
すなわち、奥行きマップの位置ｉにある画素の画素値である奥行きの値depth(x+i)と、閾値thresholdとが比較されて、奥行きの値depth(x+i)が閾値threshold以上であれば、位置ｉのクラスclass(i)は「１」とされる。また、奥行きの値depth(x+i)が閾値threshold未満であれば、位置ｉのクラスclass(i)は「０」とされる。
【０２５６】
具体的には、閾値thresholdは、視点位置Ｖ１２と画素ＡＴ１１を通る直線ｔ６１に対応する。すなわち、直線ｔ６１のｘ座標が「ｘ＋ｉ」である位置ｉにおける奥行きの値が、その位置ｉについての閾値thresholdに相当する。
【０２５７】
したがって、例えば入力画像ＩＰ５１上の画素Ｇ１２１の位置が処理対象の位置ｉとされた場合、画素Ｇ１２１の奥行き方向の位置が直線ｔ６１よりも図中、上側であれば位置ｉのクラスclass(i)は「０」となる。また、画素Ｇ１２１が直線ｔ６１よりも図中、下側に位置すれば位置ｉのクラスclass(i)は「１」となる。
【０２５８】
探索範囲内の各位置ｉについてクラスが定められると、それらのクラスの分類結果（パターン分類結果）に基づいて、次式（２８）が計算され、処理対象の画素のシフト量shiftが求められる。
【０２５９】
【数２８】
2013196620.tif 000030
【０２６０】
すなわち、クラスclass(i)とクラスclass(i-1)とが異なるクラスとなる位置ｉのうち、最もｘ座標が小さい位置ｉ（処理対象の画素に近い位置）が選択され、その位置ｉの「ｉ」の値がシフト量shiftとされる。
【０２６１】
換言すれば、位置ｉ＝０から位置ｉ＝shift_maxまで順番に各位置ｉをみていったときに、クラスclass(i)の値が「１」または「０」の一方から、初めて他方の値に変化する位置ｉが、参照画素の位置とされる。但し、これはｘ≧ｘｌの場合である。
【０２６２】
例えば図１４の例では、位置ＯＲ４１にある画素から画素Ｇ１２１までの各位置では、入力画像ＩＰ５１上の画素は全て直線ｔ６１よりも図中、上側に位置しており、画素Ｇ１２２の位置で初めて画素の位置が直線ｔ６１より下の位置となる。
【０２６３】
この場合、画素Ｇ１２２の位置が式（２８）を満たす位置であり、画素Ｇ１２２が処理対象の画素ＡＴ１１の参照先の画素となる。したがって、矢印ＳＦ４２が出力画像ＯＰ５１の処理対象の画素のシフト量となる。
【０２６４】
なお、ｘ＜ｘｌの場合には、位置ｉを位置ｉ＝shift_maxから位置ｉ＝０まで順番に見ていき（デクリメントしていき）、クラスclass(i)の値が初めて変化する位置ｉを、参照画素の位置とすればよい。また、ｘ＜ｘｌの場合、位置ｉを位置ｉ＝０から位置ｉ＝shift_maxまで順番に見ていき、クラスclass(i)の値が最後に変化する位置ｉを、参照画素の位置としてもよい。
【０２６５】
このように各位置ｉのクラスclass(i)を利用すれば、入力画像ＩＰ５１上の前景と背景の重なりを考慮してシフト量を求めることができるので、第１の実施の形態よりも、さらに自然な立体画像を得ることができるようになる。また、この例では、出力画像ＯＰ５１上の各画素を処理対象の画素として参照画素を求めるので、オクルージョン領域は発生せず、より高品質な立体画像を得ることができる。
【０２６６】
［画像処理装置の構成例］
次に、以上において説明した本技術の具体的な実施の形態について説明する。
【０２６７】
図１５は、本技術を適用した画像処理装置の一実施の形態の構成例を示す図である。すなわち、図１５の画像処理装置１２１は、探索範囲算出部１３１、閾値算出部１３２、クラス分類部１３３、シフト量算出部１３４、およびシフト処理部１３５から構成される。
【０２６８】
探索範囲算出部１３１は、出力画像上の処理対象の画素に対して、その画素の参照画素を探索する範囲を探索範囲として定め、閾値算出部１３２に供給する。閾値算出部１３２は、探索範囲算出部１３１から供給された探索範囲に基づいて、探索範囲内の各位置ｉの閾値thresholdを算出し、クラス分類部１３３に供給する。
【０２６９】
クラス分類部１３３は、閾値算出部１３２からの閾値thresholdと、供給された奥行きマップとに基づいて各位置ｉのクラス分類（パターン分類）を行い、各位置ｉのクラスをシフト量算出部１３４に供給する。
【０２７０】
シフト量算出部１３４は、クラス分類部１３３から供給された各位置ｉのクラスに基づいて、処理対象の画素のシフト量を算出し、シフト処理部１３５に供給する。シフト処理部１３５は、シフト量算出部１３４から供給されたシフト量と、供給された入力画像とに基づいてシフト処理を行い、左眼出力画像および右眼出力画像からなる立体画像を生成し、出力する。
【０２７１】
［立体画像生成処理の説明］
続いて、図１６のフローチャートを参照して、画像処理装置１２１により行なわれる立体画像生成処理について説明する。
【０２７２】
ステップＳ１１１において、画像処理装置１２１は、これから生成しようとする出力画像上の処理対象の画素のｘｙ座標系における位置（ｘ，ｙ）のｙ座標を０とする。
【０２７３】
例えば、出力画像の水平方向（ｘ方向）の一方の端のｘ座標が０であり、出力画像の水平方向の他方の端のｘ座標がＳｘ−１であるとする。また、出力画像の垂直方向（ｙ方向）の一方の端のｙ座標が０であり、出力画像の垂直方向の他方の端のｙ座標がＳｙ−１であるとする。このとき、画像処理装置１２１では、出力画像上の各画素が位置（ｘ，ｙ）＝（０，０）の画素から位置（Ｓｘ−１，Ｓｙ−１）の画素まで順番に処理対象の画素として選択されていく。
【０２７４】
ステップＳ１１２において、画像処理装置１２１は、出力画像上の処理対象の画素の位置（ｘ，ｙ）のｘ座標を０とする。
【０２７５】
ステップＳ１１３において、探索範囲算出部１３１は、出力画像上の処理対象の画素に対して、その画素の参照画素を探索する探索範囲を定め、閾値算出部１３２に供給する。
【０２７６】
具体的には、探索範囲算出部１３１は、処理対象の画素の座標ｘに対して式（２４）および式（２５）を計算し、最大値shift_maxを算出する。そして、探索範囲算出部１３１は、ｘ方向のｘ以上ｘ＋shift_max以下の範囲を探索範囲とする。より詳細には、処理対象の画素の位置（ｘ，ｙ）に対して、位置（ｘ，ｙ）乃至（ｘ＋shift_max，ｙ）が探索範囲とされる。
【０２７７】
ステップＳ１１４において、画像処理装置１２１は、探索範囲内の処理対象の位置ｉ（但し、０≦ｉ≦shift_max）を初期化する。例えばｘ≧ｘｌである場合、左眼出力画像について、処理対象の位置ｉのパラメータｉが「０」とされる。ここで、位置ｉのｘ座標は「ｘ＋ｉ」とされる。右眼出力画像についても同様にして処理対象の位置ｉが初期化される。
【０２７８】
なお、ｘ＜ｘｌの場合には、例えば左眼出力画像について、処理対象の位置ｉのパラメータｉが「shift_max」とされる。この場合、パラメータｉは、後述するステップＳ１１８においてデクリメントされる。また、クラス分類結果の判定方法によっては、ｘ＜ｘｌの場合でも、初期化時にパラメータｉが「０」とされる。
【０２７９】
ステップＳ１１５において、画像処理装置１２１は、探索範囲内の全ての位置ｉについて処理を行なったか否かを判定する。
【０２８０】
ステップＳ１１５において、まだ全ての位置ｉについて処理を行なっていないと判定された場合、処理はステップＳ１１６に進む。
【０２８１】
ステップＳ１１６において、閾値算出部１３２は、探索範囲算出部１３１から供給された探索範囲、つまり最大値shift_max等に基づいて式（２６）を計算し、位置ｉについての閾値thresholdを算出してクラス分類部１３３に供給する。
【０２８２】
ステップＳ１１７において、クラス分類部１３３は、閾値算出部１３２から供給された閾値thresholdと、供給された奥行きマップとに基づいて、位置ｉのクラス分類を行ない、その分類結果をシフト量算出部１３４に供給する。
【０２８３】
すなわち、クラス分類部１３３は、位置ｉにある奥行きマップの画素の画素値（奥行きの値）depth(x+i)と閾値thresholdに基づいて式（２７）の演算を行い、位置ｉのクラスclass(i)を定める。
【０２８４】
なお、閾値thresholdの算出と位置ｉのクラス分類は、出力画像ごと、つまり左眼出力画像と右眼出力画像について、それぞれ行なわれる。
【０２８５】
ステップＳ１１８において、画像処理装置１２１は、処理対象の位置ｉのパラメータｉを１だけインクリメントする。すなわち、位置ｉに対して位置（ｉ＋１）が新たな処理対象の位置とされる。位置ｉが更新されると、その後、処理はステップＳ１１５に戻り、上述した処理が繰り返される。
【０２８６】
但し、これはｘ≧ｘｌの場合である。例えば、ｘ＜ｘｌで処理対象の位置ｉのパラメータｉの初期値が「shift_max」とされた場合には、ステップＳ１１８では、パラメータｉがデクリメントされる。また、ｘ＜ｘｌであっても、パラメータｉの初期値が「０」とされ、クラスclass(i)の値が最後に変化する位置ｉが、参照画素の位置とされる場合には、ステップＳ１１８において、パラメータｉがインクリメントされる。
【０２８７】
なお、探索範囲内の各位置が処理対象の位置ｉとして順番に選択されてもよいが、処理対象の位置ｉとして選択される位置の数や、それらの位置が並ぶ画素間隔は、任意の数や画素間隔であってもよい。
【０２８８】
また、ステップＳ１１５において、全ての位置ｉについて処理が行なわれたと判定された場合、処理はステップＳ１１９に進む。
【０２８９】
ステップＳ１１９においてシフト量算出部１３４は、クラス分類部１３３から供給された各位置ｉのクラスclass(i)に基づいて式（２８）の演算を行い、出力画像上の処理対象の画素のシフト量shiftを算出する。すなわち、クラスclass(i)とクラスclass(i-1)とが異なるクラスとなる、最小のパラメータｉがシフト量shiftとされる。なお、シフト量shiftの算出は、左眼出力画像と右眼出力画像とについて、それぞれ行なわれ、シフト処理部１３５に供給される。
【０２９０】
ステップＳ１２０において、シフト処理部１３５は、シフト量算出部１３４から供給されたシフト量と、供給された入力画像とに基づいてシフト処理を行なう。
【０２９１】
例えば、シフト処理部１３５は、左眼出力画像についてのシフト量shiftに基づいて、入力画像上におけるｘ座標が「ｘ＋shift」である画素、より詳細には位置（ｘ，ｙ）＝（ｘ＋shift，ｙ）にある画素を、座標ｘにある左眼出力画像の処理対象の画素の参照画素とする。そして、シフト処理部１３５は、参照画素の画素値を、左眼出力画像の処理対象の画素の画素値とすることで、左眼出力画像を生成する。
【０２９２】
なお、より詳細には、左眼出力画像の生成時には、上述した式（６）と同様の計算が行なわれて、左眼出力画像の各画素のディスプレイ位置に対するｘ方向の調整が行なわれる。また、右眼出力画像についても左眼出力画像と同様の処理が行なわれ、右眼出力画像が生成される。
【０２９３】
ステップＳ１２１において、画像処理装置１２１は処理対象の画素の位置（ｘ，ｙ）のｘ座標を１だけインクリメントする。
【０２９４】
ステップＳ１２２において、画像処理装置１２１はｘ方向の端まで処理を行なったか否かを判定する。例えば、処理対象の画素の位置（ｘ，ｙ）のｘ座標がｘ＜Ｓｘである場合、ｘ方向の端まで処理を行なっていないと判定される。
【０２９５】
ステップＳ１２２において、まだｘ方向の端まで処理を行なっていないと判定された場合、処理はステップＳ１１３に戻り、上述した処理が繰り返される。すなわち、新たな処理対象の画素について、シフト量が求められ、そのシフト量からシフト処理が行なわれる。
【０２９６】
これに対して、ステップＳ１２２において、ｘ方向の端まで処理を行なったと判定された場合、ステップＳ１２３において、画像処理装置１２１は処理対象の画素の位置（ｘ，ｙ）のｙ座標を１だけインクリメントする。
【０２９７】
ステップＳ１２４において、画像処理装置１２１はｙ方向の端まで処理を行なったか否かを判定する。例えば、処理対象の画素の位置（ｘ，ｙ）のｙ座標がｙ＜Ｓｙである場合、ｙ方向の端まで処理を行なっていないと判定される。
【０２９８】
ステップＳ１２４において、まだｙ方向の端まで処理を行なっていないと判定された場合、処理はステップＳ１１２に戻り、上述した処理が繰り返される。
【０２９９】
これに対して、ステップＳ１２４において、ｙ方向の端まで処理を行なったと判定された場合、出力画像上の各画素が処理対象の画素とされ、それらの画素の画素値が求められたので、シフト処理部１３５は得られた出力画像を出力し、立体画像生成処理は終了する。すなわち、シフト処理部１３５からは、右眼出力画像と左眼出力画像からなる立体画像が出力される。
【０３００】
以上のようにして、画像処理装置１２１は、出力画像の各画素を処理対象の画素として、それらの画素のシフト量を算出する。そして、画像処理装置１２１は、求めたシフト量を用いて出力画像を生成する。
【０３０１】
このとき、参照画素の探索範囲を定めることで、より簡単に適切なシフト量を求めることができ、鮮鋭感の劣化の少ない高品質な立体画像を得ることができる。また、位置ｉのクラスに基づいて参照画素の位置を求めることで、より簡単にシフト量を求めることができる。
【０３０２】
なお、画像処理装置１２１においても、図６における場合と同様に、クラス分類部１３３の前段に奥行き推定部３１が設けられるようにしてもよい。また、画像処理装置１２１に供給される入力画像が３次元の立体画像とされ、その立体画像を構成する各視点の画像についてシフト処理が行なわれ、新たな立体画像が生成されるようにしてもよい。
【０３０３】
また、探索範囲内の各位置ｉのクラスclass(i)の分布に対して、予め処理対象の画素のシフト量を定め、各位置ｉのクラスclass(i)とシフト量とを対応付けたルックアップテーブルを利用してもよい。そのような場合、シフト量算出部１３４は、保持しているルックアップテーブルから、各位置ｉのクラスclass(i)の値の組み合わせに対応するシフト量を読み出す。
【０３０４】
〈第３の実施の形態の変形例１〉
［立体画像生成処理の説明］
さらに、以上においては、全ての位置ｉのクラスclass(i)を求めてからシフト量を算出する場合について説明したが、各位置ｉのクラスclass(i)を求めながらシフト量の算出を行い、シフト量が得られた時点で処理を終了するようにしてもよい。
【０３０５】
そのような場合、画像処理装置１２１は、図１７に示す立体画像生成処理を行なう。以下、図１７のフローチャートを参照して、画像処理装置１２１による立体画像生成処理について説明する。
【０３０６】
なお、ステップＳ１５１乃至ステップＳ１５４の処理は、図１６のステップＳ１１１乃至ステップＳ１１４の処理と同様であるので、その説明は省略する。
【０３０７】
ステップＳ１５５において、閾値算出部１３２は、探索範囲算出部１３１から供給された探索範囲に基づいて、位置ｉについての閾値thresholdを算出してクラス分類部１３３に供給する。
【０３０８】
ステップＳ１５６において、クラス分類部１３３は、閾値算出部１３２から供給された閾値thresholdと、供給された奥行きマップとに基づいて、位置ｉのクラス分類を行ない、その分類結果をシフト量算出部１３４に供給する。
【０３０９】
ステップＳ１５７において、シフト量算出部１３４は、クラス分類部１３３から供給された位置ｉのクラスclass(i)に基づいて、出力画像上の処理対象の画素のシフト量shiftの検出を行う。すなわち、シフト量shiftが算出される。
【０３１０】
なお、ステップＳ１５５乃至ステップＳ１５７では、図１６のステップＳ１１６、ステップＳ１１７、およびステップＳ１１９と同様の処理が行なわれる。但し、ステップＳ１５７では、処理対象となっている位置ｉについてのみ、式（２８）の計算が行なわれる。
【０３１１】
ステップＳ１５８において、画像処理装置１２１は、シフト量が検出されたか否かを判定する。例えば、処理対象の位置ｉが参照画素の位置とされた場合、シフト量が検出されたと判定される。
【０３１２】
ステップＳ１５８において、まだシフト量が検出されていないと判定された場合、ステップＳ１５９において、画像処理装置１２１は、処理対象の位置ｉのパラメータｉを１だけインクリメントする。新たな位置が処理対象の位置ｉとされると、その後、処理はステップＳ１５５に戻り、上述した処理が繰り返される。
【０３１３】
但し、これはｘ≧ｘｌの場合である。例えば、ｘ＜ｘｌで処理対象の位置ｉのパラメータｉの初期値が「shift_max」とされた場合には、ステップＳ１５９では、パラメータｉがデクリメントされる。この場合には、クラスclass(i)の値が最初に変化する位置ｉが、参照画素の位置とされる
【０３１４】
また、ｘ＜ｘｌであっても、パラメータｉの初期値が「０」とされ、クラスclass(i)の値が最後に変化する位置ｉが、参照画素の位置とされる場合には、ステップＳ１５９において、パラメータｉがインクリメントされる。
【０３１５】
これに対して、ステップＳ１５８において、シフト量が検出されたと判定された場合、処理はステップＳ１６０に進む。そして、その後、ステップＳ１６０乃至ステップＳ１６４の処理が行なわれて立体画像生成処理は終了するが、これらの処理は図１６のステップＳ１２０乃至ステップＳ１２４の処理と同様であるので、その説明は省略する。
【０３１６】
以上のようにして、画像処理装置１２１は、各位置ｉについて、順番にクラス分類を行いながらシフト量を検出していき、つまり参照画素の位置となるかを判定していき、シフト量が検出された時点でシフト量を検出する処理を終了させ、シフト処理を行なう。
【０３１７】
このようにクラス分類を行いながら、同時にシフト量の検出を行なうことで、全ての位置ｉについてクラス分類を行なわなくてもシフト量が得られた場合には、処理時間と処理量を大幅に削減することができる。
【０３１８】
なお、ステップＳ１５７のシフト量の検出では、式（２８）により、直前の位置に対してクラスclass(i)が変化する場合に、その位置ｉが参照画素の位置とされると説明したが、この判定にさらにAdaptive Dynamic Range Cordingを利用するようにしてもよい。
【０３１９】
そのような場合、例えば入力画像上の位置ｉ近傍の画素に基づいて、位置ｉが平坦な領域、テクスチャ領域、またはエッジ領域等の各領域に分類される。そして、位置ｉが平坦な領域、またはダイナミックレンジの小さいテクスチャ領域であり、かつ位置ｉでクラスclass(i)が変化する場合には、奥行きマップの位置ｉにエラーが含まれているとされ、次にクラスclass(i)が変化する位置ｉが探索されるようにしてもよい。
【０３２０】
また、入力画像の位置ｉ近傍の領域を分類する場合においても、分類された位置ｉ近傍の領域と、探索範囲内の各位置ｉのクラスclass(i)の分布とに対して、予め処理対象の画素のシフト量を定め、ルックアップテーブルを生成しておくようにしてもよい。そのような場合、シフト量算出部１３４は、位置ｉ近傍の領域の分類結果と各位置ｉのクラスclass(i)の値とに対応するシフト量を、保持しているルックアップテーブルから読み出す。
【０３２１】
〈第３の実施の形態の変形例２〉
［画素以下の精度のシフトについて］
また、以上においては、画素精度で参照画素が求められる場合について説明したが、画素以下の精度、つまりサブピクセル精度で参照画素が求められるようにしてもよい。
【０３２２】
例えば、探索範囲内の各位置ｉのクラスclass(i)を求めた結果、図１８に示す結果が得られたとする。なお、図中、横方向および縦方向は、それぞれ水平方向（ｘ方向）および奥行き方向を示している。また、図１８において、図１４における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【０３２３】
図１８では、入力画像ＩＰ５１上の探索範囲内にある各画素の図中、上側または下側には、その画素の位置について求められたクラスclass(i)を表す数字として「０」または「１」が記されている。例えば、画素Ｇ１２１の上側にある数字「０」は、画素Ｇ１２１の位置について求められたクラスclass(i)が「０」であることを示している。
【０３２４】
画像処理装置１２１では、各位置ｉのうち、直前の位置とクラスclass(i)が異なる位置で、かつ視点位置Ｖ１２から最も近い位置が参照画素とされる。例えば、図１８の例では、クラスclass(i)が最初に「０」から「１」に変化する画素Ｇ１２２の位置が参照画素の位置とされる。
【０３２５】
しかし、より厳密には、入力画像ＩＰ５１が配置されている奥行きマップの各位置の奥行きの値を示す曲線と、直線ｔ６１との交点の位置が参照画素の位置とされるべきである。つまり、本来、参照画素の位置とされるべき位置は、画素Ｇ１２１と画素Ｇ１２２を含む領域ＷＲ１１内にあるはずである。
【０３２６】
そこで、交点近傍の画素Ｇ１２２を参照画素とするのではなく、画素Ｇ１２１と画素Ｇ１２２の各位置における物理的な奥行きの値に応じた重みを付けて、画素Ｇ１２１と画素Ｇ１２２の画素値を重み付き加算することで、参照画素の画素値を求めてもよい。つまり、補間処理により、画素以下の精度で参照画素の画素値が求められるようにしてもよい。
【０３２７】
具体的には、例えば位置ｉにおいて初めてクラスclass(i)が変化したとする。この場合、位置ｉにおける奥行き情報Depth(x)を奥行き情報Depth(i)とし、位置（ｉ−１）における奥行き情報Depth(x)を奥行き情報Depth(i-1)とすると、次式（２９）により重みweightが算出される。
【０３２８】
【数２９】
2013196620.tif 000031
【０３２９】
ここで、奥行き情報Depth(i)は、奥行きマップの位置ｉ、つまり座標（ｘ＋ｉ）にある画素の画素値である奥行きの値depth(x+i)から、式（８）により求まる物理的な奥行き情報Depth(x)である。
【０３３０】
式（２９）の計算により重みweightが求められると、次式（３０）が計算されて、参照画素の画素値Image’(x)が算出される。
【０３３１】
【数３０】
2013196620.tif 000032
【０３３２】
なお、式（３０）において、Image(i)およびImage(i-1)は、それぞれ位置ｉおよび位置（ｉ−１）にある入力画像ＩＰ５１上の画素の画素値を示している。
【０３３３】
したがって、式（３０）では、位置ｉと位置（ｉ−１）の画素が重み付き加算されて、その結果得られた値が、参照画素の画素値とされることになる。
【０３３４】
このように、補間処理により参照画素の画素値が求められる場合、シフト処理部１３５は、図１６のステップＳ１２０において、処理対象の画素のシフト量に基づいて、式（２９）を計算することで、位置ｉと位置（ｉ−１）についての重みweightを算出する。
【０３３５】
そして、シフト処理部１３５は、求めた重みweightを用いて式（３０）を計算し、参照画素の画素値を算出するとともに、得られた参照画素の画素値を、出力画像の処理対象の画素の画素値とすることで、出力画像を生成する。なお、重みweightの算出時には、必要に応じて奥行きマップが参照される。
【０３３６】
以上のように補間処理により参照画素の画素値を求めることで、より高精度に参照画素の画素値を求めることができ、より高品質な立体画像を得ることができるようになる。
【０３３７】
〈第３の実施の形態の変形例３〉
［画素以下の精度のシフトについて］
さらに、補間処理により参照画素の画素値を求める場合に、オクルージョン領域については、背景画素の重みをより大きくして、または背景画素のみを用いて参照画素の画素値を求めるようにしてもよい。
【０３３８】
例えば、図１９に示すように入力画像ＩＰ６１と奥行きマップに基づいて、出力画像ＯＰ６１を生成するとする。なお、図中、横方向および縦方向は、水平方向（ｘ方向）および奥行き方向を示している。また、図１９において、図１８における場合と対応する部分には同一の符号を付してあり、その説明は省略する。
【０３３９】
図１９では、入力画像ＩＰ６１および出力画像ＯＰ６１上の各円は１つの画素を表しており、入力画像ＩＰ６１の各画素は、奥行きマップの各画素の画素値、つまり奥行きの値に基づいて奥行き方向の各位置に配置されている。
【０３４０】
いま、出力画像ＯＰ６１上のｘ座標が「ｘ」である画素ＡＴ１２が処理対象の画素とされたとする。そのような場合、視点位置Ｖ１２と画素ＡＴ１２を通る直線ｔ７１が求められ、式（２４）および式（２５）の計算により、画素ＡＴ１２のシフト量の最大値shift_maxが求められる。この例では、矢印ＳＦ５１が最大値shift_maxを示しており、位置ＯＲ５１から位置ＯＲ５２までの範囲が探索範囲とされる。但し、これはｘ＞ｘｌの場合であり、ｘ＜ｘｌの場合には、式（２５）における「ｘ−ｘｌ」を「ｘｌ−ｘ」とすればよい。
【０３４１】
次に、探索範囲内の各位置ｉと、直線ｔ７１に相当する閾値thresholdとが比較され、初めてクラスclass(i)が変化する位置ｉが求められる。
【０３４２】
図１９の例では、探索範囲の図中、左端から画素Ｇ１３１までの各位置ではクラスclass(i)は０であるが、画素Ｇ１３２ではクラスclass(i)が１となっているので、画素Ｇ１３２で初めてクラスclass(i)が変化していることが分かる。なお、図中、入力画像ＩＰ６１の各画素の図中、上側または下側に記された数値は、各画素のクラスclass(i)を示している。
【０３４３】
ここで、例えば位置ｉにおいて初めてクラスclass(i)が変化したとし、位置ｉのクラスclass(i)が「１」であったとする。この場合、クラスclass(i)が「１」である位置ｉにおける奥行き情報Depth(x)を奥行き情報Depth(i)とし、クラスclass(i-1)が「０」である位置（ｉ−１）における奥行き情報Depth(x)を奥行き情報Depth(i-1)として、差分絶対値diff=｜Depth(i)-Depth(i-1)｜が算出される。
【０３４４】
例えば、図１９の例では、画素Ｇ１３２の位置が位置ｉであり、画素Ｇ１３１の位置が位置（ｉ−１）となる。また、この例では、画素Ｇ１３１が背景画素であり、画素Ｇ１３２が前景画素である。
【０３４５】
差分絶対値diffが求められると、この差分絶対値diffと所定の閾値ｔｈとが比較され、差分絶対値diffが閾値ｔｈよりも大きいとき、位置ｉはオクルージョン領域であるとされ、背景画素のみが用いられて、または背景画素の重みを大きくして参照画素が求められる。
【０３４６】
すなわち、背景画素のみが用いられて参照画素が求められる場合、参照画素の画素値をImage’(x)とし、位置（ｉ−１）にある入力画像ＩＰ６１上の画素の画素値をImage(i-1)とすると、参照画素の画素値Image’(x)＝Image(i-1)とされる。
【０３４７】
これに対して、背景画素の重みを大きくして参照画素が求められる場合、任意の定数をαとして、次式（３１）により重みweightが算出される。
【０３４８】
【数３１】
2013196620.tif 000033
【０３４９】
そして、求められた重みweightが用いられて次式（３２）が計算され、参照画素の画素値Image’(x)が算出される。なお、式（３２）において、Image(i)は位置ｉにある入力画像ＩＰ６１上の画素の画素値を示している。
【０３５０】
【数３２】
2013196620.tif 000034
【０３５１】
また、差分絶対値diffが閾値ｔｈ以下である場合には、上述した式（２９）および式（３０）により参照画素の画素値が求められる。
【０３５２】
したがって、例えばシフト処理部１３５は、図１６のステップＳ１２０において、必要に応じて奥行きマップを用いて差分絶対値diffを算出し、差分絶対値diffと閾値ｔｈを比較する。そして、シフト処理部１３５は、差分絶対値diffが閾値ｔｈよりも大きい場合、参照画素の画素値Image’(x)＝Image(i-1)とするか、または式（３１）および式（３２）を計算して参照画素の画素値を求め、出力画像を生成する。
【０３５３】
また、シフト処理部１３５は、差分絶対値diffが閾値ｔｈ以下である場合には、式（２９）および式（３０）により参照画素の画素値を求め、出力画像を生成する。
【０３５４】
なお、背景画素の重みを大きくする場合、差分絶対値diff（但し、０≦diff≦Depth_Max）に応じた重み係数wLUT(diff)をルックアップテーブルに格納しておき、この重み係数wLUT(diff)を用いて参照画素の画素値を求めるようにしてもよい。
【０３５５】
そのような場合、例えばシフト処理部１３５は、ルックアップテーブルから、差分絶対値diffにより定まる重み係数wLUT(diff)を読み出し、次式（３３）を計算することで参照画素の画素値を算出する。
【０３５６】
【数３３】
2013196620.tif 000035
【０３５７】
さらに、差分絶対値diffに応じた複数の重み係数が用いられて次式（３４）が計算され、参照画素の画素値が算出されるようにしてもよい。
【０３５８】
【数３４】
2013196620.tif 000036
【０３５９】
なお、式（３４）において、重み係数wLUTa(diff)および重み係数wLUTb(diff)は、それぞれ差分絶対値diffにより定まる重み係数である。この場合、シフト処理部１３５には、重み係数wLUTa(diff)のルックアップテーブルと、重み係数wLUTb(diff)のルックアップテーブルとが保持されることになる。
【０３６０】
〈第３の実施の形態の変形例４〉
［画素以下の精度のシフトについて］
また、探索範囲内の各位置ｉのクラスclass(i)を並べたものを、その探索範囲のクラスとして、クラスごとに予め各位置ｉの係数Coef_i(class)を用意しておき、これらの係数Coef_i(class)と、入力画像の位置ｉにある画素とからシフト量を求めるようにしてもよい。
【０３６１】
そのような場合、例えばシフト量算出部１３４は、図１６のステップＳ１１９において、探索範囲内の各位置ｉのクラスclass(i)に基づいて探索範囲のクラスを定め、シフト処理部１３５に供給する。
【０３６２】
そして、シフト処理部１３５は、ステップＳ１２０において、供給されたクラスに対応する各位置ｉの係数Coef_i(class)（但し、０≦ｉ≦shift_max）を読み出して、次式（３５）を計算することにより、参照画素の画素値Image’(x)を求め、出力画像を生成する。
【０３６３】
【数３５】
2013196620.tif 000037
【０３６４】
なお、式（３５）において、Image(i)（０≦ｉ≦shift_max）は、入力画像上の位置ｉにある画素の画素値を示している。したがって、式（３５）では、係数Coef_i(class)を用いた入力画像上の探索範囲内の各画素の画素値の重み付き加算により、参照画素の画素値Image’(x)が求められることになる。
【０３６５】
このような参照画素の画素値Image’(x)を得るための係数Coef_i(class)は、サンプルとなる入力画像（以下、生徒画像と称する）および奥行きマップと、その入力画像から生成されるべき出力画像（以下、教師画像と称する）とを用いた学習により求められる。
【０３６６】
例えば、図２０に示すように、生徒画像としての入力画像ＩＰ７１と、教師画像としての出力画像ＯＰ７１とが与えられたとする。なお、図中、横方向および縦方向は、水平方向（ｘ方向）および奥行き方向を示している。また、入力画像ＩＰ７１および出力画像ＯＰ７１上の各円は１つの画素を表しており、入力画像ＩＰ７１の各画素は、奥行きマップの各画素の画素値、つまり奥行きの値に応じた奥行き方向の位置に配置されている。
【０３６７】
いま、直線ｔ８１をユーザの視線とし、出力画像ＯＰ７１と直線ｔ８１の交点の位置にある画素Ｇ１４１が処理対象の画素であるとする。また、入力画像ＩＰ７１上の領域ＴＰ１１が探索範囲であるとする。なお、図中、領域ＴＰ１１内の各画素の図中、下側または上側に記された数値は、それらの画素のクラスclass(i)を示している。
【０３６８】
このような場合、領域ＴＰ１１内の各画素のクラスclass(i)を並べて得られる探索範囲のクラスに対して、領域ＴＰ１１内の各画素の係数Coef_i(class)が与えられる。そして、係数Coef_i(class)と領域ＴＰ１１内の画素の画素値とから、画素Ｇ１４１の画素値が求まればよい。
【０３６９】
そこで、これらの係数Coef_i(class)を未知数とし、探索範囲のクラスごとに、領域ＴＰ１１内の各画素の画素値と、画素Ｇ１４１の画素値とから、学習により最適な係数Coef_i(class)が求められる。
【０３７０】
例えば、学習により係数Coef_i(class)が求められる場合、図２１に示すように学習部１６１において学習により得た係数Coef_i(class)を係数保持部１６２に保持させ、画像処理装置１２１が係数保持部１６２から係数Coef_i(class)を読み出せばよい。なお、図２１において図１５における場合と対応する部分には同一の符号を付してあり、その説明は省略する。
【０３７１】
図２１の例では、生徒画像とされる入力画像、およびその入力画像の奥行きマップと、教師画像としての出力画像とが学習部１６１に供給される。学習部１６１は、供給された生徒画像、教師画像、および奥行きマップに基づいて学習処理を行い、その結果得られた各クラスの係数Coef_i(class)を係数保持部１６２に供給する。
【０３７２】
係数保持部１６２は、学習部１６１から供給された各クラスの係数Coef_i(class)を保持し、必要に応じて係数Coef_i(class)を画像処理装置１２１に供給する。
【０３７３】
なお、係数Coef_i(class)の学習には、生徒としての入力画像の奥行きマップと、教師としての出力画像の奥行きマップとが用いられてもよいし、生徒画像と教師画像が用いられるようにしてもよい。また、生徒として、生徒画像とその奥行きマップが用いられ、教師として出力画像の奥行きマップが用いられて係数Coef_i(class)が求められるようにしてもよい。さらに、生徒として生徒画像とその奥行きマップが用いられ、教師として教師画像とその奥行きマップが用いられて係数Coef_i(class)が求められてもよい。
【０３７４】
以上において説明した本技術は、２Ｄ３Ｄ変換処理や多視点画像生成処理に利用することができ、テレビジョン受像機、光ディスクレコーダ、ゲーム機器、編集機器、デジタルカメラスチルカメラ、デジタルビデオカメラ、パーソナルコンピュータ、タブレット、携帯電話機等の機器の画像表示機能に適用することができる。
【０３７５】
ところで、上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウェアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
【０３７６】
図２２は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
【０３７７】
コンピュータにおいて、CPU（Central Processing Unit）３０１，ROM（Read Only Memory）３０２，RAM（Random Access Memory）３０３は、バス３０４により相互に接続されている。
【０３７８】
バス３０４には、さらに、入出力インターフェース２０５が接続されている。入出力インターフェース３０５には、入力部３０６、出力部３０７、記録部３０８、通信部３０９、及びドライブ３１０が接続されている。
【０３７９】
入力部３０６は、キーボード、マウス、マイクロホンなどよりなる。出力部３０７は、ディスプレイ、スピーカなどよりなる。記録部３０８は、ハードディスクや不揮発性のメモリなどよりなる。通信部３０９は、ネットワークインターフェースなどよりなる。ドライブ３１０は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア３１１を駆動する。
【０３８０】
以上のように構成されるコンピュータでは、CPU３０１が、例えば、記録部３０８に記録されているプログラムを、入出力インターフェース３０５及びバス３０４を介して、RAM３０３にロードして実行することにより、上述した一連の処理が行われる。
【０３８１】
コンピュータ（CPU３０１）が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア３１１に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【０３８２】
コンピュータでは、プログラムは、リムーバブルメディア３１１をドライブ３１０に装着することにより、入出力インターフェース３０５を介して、記録部３０８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部３０９で受信し、記録部３０８にインストールすることができる。その他、プログラムは、ROM３０２や記録部３０８に、あらかじめインストールしておくことができる。
【０３８３】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０３８４】
また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【０３８５】
例えば、本技術は、１つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【０３８６】
また、上述のフローチャートで説明した各ステップは、１つの装置で実行する他、複数の装置で分担して実行することができる。
【０３８７】
さらに、１つのステップに複数の処理が含まれる場合には、その１つのステップに含まれる複数の処理は、１つの装置で実行する他、複数の装置で分担して実行することができる。
【０３８８】
さらに、本技術は、以下の構成とすることも可能である。
【０３８９】
［１］
入力画像の画素を参照して出力画像を生成する画像処理装置であって、
前記入力画像の各画素の奥行きを示す奥行きマップに基づいて、これから生成しようとする前記出力画像の注目画素について、前記注目画素と、前記入力画像における前記注目画素の参照先の画素との位置関係を示すシフト量を算出するシフト量算出部と、
前記注目画素の前記シフト量と、前記出力画像上の前記注目画素に隣接する隣接画素の前記シフト量とに基づいて、前記注目画素の前記シフト量を修正するシフト量修正部と、
修正された前記シフト量により定まる前記入力画像上の参照先の画素に基づいて前記注目画素の画素値を求めることで、前記出力画像を生成するシフト処理部と
を備える画像処理装置。
［２］
前記シフト処理部は、前記出力画像対を生成することで前記入力画像から立体画像を生成する
［１］に記載の画像処理装置。
［３］
前記シフト量修正部は、前記注目画素の前記シフト量と前記隣接画素の前記シフト量の差または積に基づいて、前記注目画素の前記シフト量を修正する
［１］または［２］に記載の画像処理装置。
［４］
前記シフト量修正部は、前記差が負である場合、または前記積が負である場合、前記注目画素の前記シフト量を修正する
［３］に記載の画像処理装置。
［５］
前記シフト量修正部は、前記隣接画素の前記シフト量に所定の値を加算して得られる値を、前記注目画素の修正後の前記シフト量とする
［４］に記載の画像処理装置。
［６］
入力画像の画素を参照して出力画像を生成する画像処理方法であって、
前記入力画像の各画素の奥行きを示す奥行きマップに基づいて、これから生成しようとする前記出力画像の注目画素について、前記注目画素と、前記入力画像における前記注目画素の参照先の画素との位置関係を示すシフト量を算出し、
前記注目画素の前記シフト量と、前記出力画像上の前記注目画素に隣接する隣接画素の前記シフト量とに基づいて、前記注目画素の前記シフト量を修正し、
修正された前記シフト量により定まる前記入力画像上の参照先の画素に基づいて前記注目画素の画素値を求めることで、前記出力画像を生成する
ステップを含む画像処理方法。
［７］
入力画像の画素を参照して出力画像を生成する画像処理用のプログラムであって、
前記入力画像の各画素の奥行きを示す奥行きマップに基づいて、これから生成しようとする前記出力画像の注目画素について、前記注目画素と、前記入力画像における前記注目画素の参照先の画素との位置関係を示すシフト量を算出し、
前記注目画素の前記シフト量と、前記出力画像上の前記注目画素に隣接する隣接画素の前記シフト量とに基づいて、前記注目画素の前記シフト量を修正し、
修正された前記シフト量により定まる前記入力画像上の参照先の画素に基づいて前記注目画素の画素値を求めることで、前記出力画像を生成する
ステップを含む処理をコンピュータに実行させるプログラム。
［８］
入力画像の画素を参照して出力画像を生成する画像処理装置であって、
前記入力画像の各画素の奥行きを示す奥行きマップの奥行きの値の最大値、および前記出力画像の視点位置に基づいて、これから生成しようとする前記出力画像の注目画素についての参照先となり得る前記入力画像の探索範囲を決定する探索範囲算出部と、
前記探索範囲内の各位置を処理対象位置として、仮想空間上の所定の奥行き位置に前記出力画像を配置したときの前記視点位置と前記注目画素とを結ぶ直線の前記処理対象位置における奥行きの値と、前記奥行きマップにより示される前記処理対象位置における奥行きの値とを比較する比較部と、
奥行きの値の比較結果に基づいて、前記注目画素と、前記入力画像における前記注目画素の参照先の画素との位置関係を示すシフト量を算出するシフト量算出部と、
前記シフト量により定まる前記入力画像上の参照先の画素に基づいて前記注目画素の画素値を求めることで、前記出力画像を生成するシフト処理部と
を備える画像処理装置。
［９］
前記シフト処理部は、前記出力画像対を生成することで前記入力画像から立体画像を生成する
［８］に記載の画像処理装置。
［１０］
前記比較部は、前記直線の前記処理対象位置における奥行きの値と、前記奥行きマップにより示される前記処理対象位置における奥行きの値との差分を算出し、
前記シフト量算出部は、前記処理対象位置に隣接する前記探索範囲内の位置の前記差分と、前記処理対象位置の前記差分との積が負の値となる前記処理対象位置における、前記直線の奥行きの値に基づいて前記注目画素の前記シフト量を算出する
［８］または［９］に記載の画像処理装置。
［１１］
前記比較部は、前記直線の前記処理対象位置における奥行きの値と、前記奥行きマップにより示される前記処理対象位置における奥行きの値とを比較して、前記処理対象位置を２つのクラスのうちの何れかに分類し、
前記シフト量算出部は、前記探索範囲内の各位置における前記クラスの分類結果に基づいて前記注目画素の前記シフト量を算出する
［８］または［９］に記載の画像処理装置。
［１２］
前記シフト量算出部は、前記探索範囲内の隣接する位置の前記クラスとは異なるクラスに分類された位置を、前記入力画像上の参照先の画素の位置として前記注目画素の前記シフト量を算出する
［１１］に記載の画像処理装置。
［１３］
前記シフト処理部は、前記入力画像上の参照先の画素と、前記入力画像上の前記隣接する位置の画素とに基づいて補間処理を行なうことで、前記注目画素の画素値を求める
［１２］に記載の画像処理装置。
［１４］
入力画像の画素を参照して出力画像を生成する画像処理方法であって、
前記入力画像の各画素の奥行きを示す奥行きマップの奥行きの値の最大値、および前記出力画像の視点位置に基づいて、これから生成しようとする前記出力画像の注目画素についての参照先となり得る前記入力画像の探索範囲を決定し、
前記探索範囲内の各位置を処理対象位置として、仮想空間上の所定の奥行き位置に前記出力画像を配置したときの前記視点位置と前記注目画素とを結ぶ直線の前記処理対象位置における奥行きの値と、前記奥行きマップにより示される前記処理対象位置における奥行きの値とを比較し、
奥行きの値の比較結果に基づいて、前記注目画素と、前記入力画像における前記注目画素の参照先の画素との位置関係を示すシフト量を算出し、
前記シフト量により定まる前記入力画像上の参照先の画素に基づいて前記注目画素の画素値を求めることで、前記出力画像を生成する
ステップを含む画像処理方法。
［１５］
入力画像の画素を参照して出力画像を生成する画像処理用のプログラムであって、
前記入力画像の各画素の奥行きを示す奥行きマップの奥行きの値の最大値、および前記出力画像の視点位置に基づいて、これから生成しようとする前記出力画像の注目画素についての参照先となり得る前記入力画像の探索範囲を決定し、
前記探索範囲内の各位置を処理対象位置として、仮想空間上の所定の奥行き位置に前記出力画像を配置したときの前記視点位置と前記注目画素とを結ぶ直線の前記処理対象位置における奥行きの値と、前記奥行きマップにより示される前記処理対象位置における奥行きの値とを比較し、
奥行きの値の比較結果に基づいて、前記注目画素と、前記入力画像における前記注目画素の参照先の画素との位置関係を示すシフト量を算出し、
前記シフト量により定まる前記入力画像上の参照先の画素に基づいて前記注目画素の画素値を求めることで、前記出力画像を生成する
ステップを含む処理をコンピュータに実行させるプログラム。
【符号の説明】
【０３９０】
１１  画像処理装置，  ２１  シフト量算出部，  ２２  シフト量修正部，  ２３  シフト処理部，  ６１  画像処理装置，  ７１  探索範囲算出部，  ７２  差分算出部，  ７３  判定部，  ７４  評価値算出部，  ７５  シフト量算出部，  ７６  シフト処理部，  １２１  画像処理装置，  １３１  探索範囲算出部，  １３２  閾値算出部，  １３３  クラス分類部，  １３４  シフト量算出部，  １３５  シフト処理部
【図１】
2013196620.tif 000038
【図２】
2013196620.tif 000039
【図３】
2013196620.tif 000040
【図４】
2013196620.tif 000041
【図５】
2013196620.tif 000042
【図６】
2013196620.tif 000043
【図７】
2013196620.tif 000044
【図８】
2013196620.tif 000045
【図９】
2013196620.tif 000046
【図１０】
2013196620.tif 000047
【図１１】
2013196620.tif 000048
【図１２】
2013196620.tif 000049
【図１３】
2013196620.tif 000050
【図１４】
2013196620.tif 000051
【図１５】
2013196620.tif 000052
【図１６】
2013196620.tif 000053
【図１７】
2013196620.tif 000054
【図１８】
2013196620.tif 000055
【図１９】
2013196620.tif 000056
【図２０】
2013196620.tif 000057
【図２１】
2013196620.tif 000058
【図２２】
2013196620.tif 000059