(57)【特許請求の範囲】
【請求項１】
異なる視点より撮影された複数の画像から前記視点よりも外側に位置する仮想視点の画像を生成する画像処理装置であって、
前記仮想視点と前記複数の画像の視点のうち、第一の視点との距離に応じた近傍画像距離と、前記仮想視点と前記複数の画像の視点のうち前記第一の視点よりも相対的に前記仮想視点から遠い第二の視点との距離に応じた遠方画像距離とを算出する算出手段と、
探索範囲を設定する探索範囲設定手段と、
前記探索範囲におけるブロックマッチング処理により、前記第一の視点に対応する近傍画像における、探索基準ブロック座標と前記近傍画像距離とに応じた第１のブロック画像と、前記第二の視点に対応する遠方画像における、該探索基準ブロック座標と前記遠方画像距離に応じた第２のブロック画像とを用いて、該探索基準ブロック座標に対応する視差ベクトルを決定する決定手段と、
前記視差ベクトルを用いて、前記仮想視点の画像を生成する生成手段と、を有し、
前記探索範囲は、前記仮想視点の画像の深度長に応じて設定されることを特徴とする画像処理装置。
【請求項２】
さらに、視差拡大倍率を設定する設定手段を有し、
前記近傍画像距離と前記遠方画像距離は、前記視差拡大倍率から算出されることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第１のブロック画像は、前記探索基準ブロック座標に、前記近傍画像距離に整数の値をとるマッチングポインタを乗算した結果を加算した座標に応じた前記近傍画像におけるブロック画像であり、前記第２のブロック画像は、前記探索基準ブロック座標に、前記遠方画像距離に前記マッチングポインタを乗算した結果を加算した座標に応じた前記遠方画像におけるブロック画像であり、
前記決定手段は、
前記第１のブロック画像と前記第２のブロック画像とのマッチング係数を算出する算出手段と、
前記マッチングポインタの値を更新する更新する更新手段とを有することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記決定手段は、マッチング係数が同じである場合は、前記マッチングポインタの値の絶対が大きい方のマッチング結果を使用することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
異なる視点より撮影された複数の画像から前記視点よりも外側に位置する仮想視点の画像を生成する画像処理装置であって、
前記複数の画像のそれぞれを共通平面に投影変換する投影変換手段と、
前記共通平面における探索基準位置と前記仮想視点とを通る直線と前記複数の画像の視点が通る直線との交点を仮想視点補正位置とし、前記共通平面における探索基準位置ごとに、前記仮想視点補正位置と前記複数の画像の視点のうち第一の視点との距離に応じた近傍画像距離と、前記仮想視点補正位置と前記複数の画像の視点のうち前記第一の視点よりも相対的に前記仮想視点補正位置から遠い第二の視点との距離に応じた遠方画像距離とを算出する算出手段と、
前記第一の視点に対応する前記投影変換された近傍画像における、探索基準ブロック座標と前記近傍画像距離とに応じた第１のブロック画像と、前記第二の視点に対応する前記投影変換された遠方画像における、該探索基準ブロック座標と前記遠方画像距離に応じた第２のブロック画像とを用いて、該探索基準ブロック座標に対応する視差ベクトルを決定する決定手段と、
前記視差ベクトルを用いて、前記仮想視点の画像を生成する生成手段とを有することを特徴とする画像処理装置。
【請求項６】
請求項１乃至５記載のいずれかに画像処理装置をコンピュータを用いて実現するためのコンピュータが読み取り可能なプログラム。
【請求項７】
異なる視点より撮影された複数の画像から前記視点よりも外側に位置する仮想視点の画像を生成する画像処理方法であって、
前記仮想視点と前記複数の画像の視点のうち第一の視点との距離に応じた近傍画像距離と、前記仮想視点と前記複数の画像の視点のうち前記第一の視点よりも相対的に前記仮想視点から遠い第二の視点との距離に応じた遠方画像距離とを算出する算出工程と、
探索範囲を設定する探索範囲設定手段と、
前記探索範囲におけるブロックマッチング処理により、前記第一の視点に対応する近傍画像における、探索基準ブロック座標と前記近傍画像距離とに応じた第１のブロック画像と、前記第二の視点に対応する遠方画像における、該探索基準ブロック座標と前記遠方画像距離に応じた第２のブロック画像とを用いて、該探索基準ブロック座標に対応する視差ベクトルを決定する決定工程と、
前記視差ベクトルを用いて、前記仮想視点の画像を生成する生成工程とを有し、
前記探索範囲は、前記仮想視点の画像の深度長に応じて設定されることを特徴とする画像処理方法。
【請求項８】
異なる視点より撮影された複数の画像から前記視点よりも外側に位置する仮想視点の画像を生成する画像処理方法であって、
前記複数の画像のそれぞれを共通平面に投影変換する投影変換工程と、
前記共通平面における探索基準位置と前記仮想視点とを通る直線と前記複数の画像の視点が通る直線との交点を仮想視点補正位置とし、前記共通平面における探索基準位置ごとに、前記仮想視点補正位置と前記複数の画像の視点のうち第一の視点との距離に応じた近傍画像距離と、前記仮想視点補正位置と前記複数の画像の視点のうち前記第一の視点よりも相対的に前記仮想視点補正位置から遠い第二の視点との距離に応じた遠方画像距離とを算出する算出工程と、
前記第一の視点に対応する前記投影変換された近傍画像における、探索基準ブロック座標と前記近傍画像距離とに応じた第１のブロック画像と、前記第二の視点に対応する前記投影変換された遠方画像における、該探索基準ブロック座標と前記遠方画像距離に応じた第２のブロック画像とを用いて、該探索基準ブロック座標に対応する視差ベクトルを決定する決定工程と、
前記視差ベクトルを用いて、前記仮想視点の画像を生成する生成工程とを有することを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異なる視点より撮影された複数の画像から視点間の外側に位置する仮想視点の画像を生成するものに関する。
【背景技術】
【０００２】
従来、複数視点より撮像された複数画像を用いて、仮想視点より撮像された画像を生成する仮想視点画像生成処理を行なう技術としては、特許文献１などが知られている。特許文献１では、取得された複数画像を用いて撮像カメラ位置（視点）間の仮想視点画像を生成するものであった。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−７９５０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１で示される従来技術は、複数視点より撮像された複数画像を用いて、撮像カメラ位置間の仮想視点画像を生成するものであり、２視点から撮像された画像を用いて、撮像カメラ位置間よりも外側の仮想視点画像を生成するものではなかった。
このため、視差が小さいために立体視表示環境で立体視したときに十分な立体視効果を得られないという低画質な両眼視差画像などの２視点画像から、撮像カメラ位置間よりも外側に位置する視差を拡大した仮想視点画像を生成することができなかった。
請求項１記載の発明は、撮像カメラ位置間よりも外側に位置する視差を拡大した仮想視点画像も生成できるようにすることを目的とする。
また、請求項８記載の発明は、複数画像の視点位置を結んだ直線上でない位置である仮想視点の画像を高精度に作成できるようにすることを目的とする。
【課題を解決するための手段】
【０００５】
本願請求項１記載の発明は、異なる視点より撮影された複数の画像から前記視点よりも外側に位置する仮想視点の画像を生成する画像処理装置であって、前記仮想視点と前記複数の画像の視点のうち第一の視点との距離に応じた近傍画像距離と、前記仮想視点と前記複数の画像の視点のうち前記第一の視点よりも相対的に前記仮想視点から遠い第二の視点との距離に応じた遠方画像距離とを算出する算出手段と、探索範囲を設定する探索範囲設定手段と、前記探索範囲におけるブロックマッチング処理により、前記第一の視点に対応する近傍画像における、探索基準ブロック座標と前記近傍画像距離とに応じた第１のブロック画像と、前記第二の視点に対応する遠方画像における、該探索基準ブロック座標と前記遠方画像距離に応じた第２のブロック画像とを用いて、該探索基準ブロック座標に対応する視差ベクトルを決定する決定手段と、前記視差ベクトルを用いて、前記仮想視点の画像を生成する生成手段とを有し、前記探索範囲は、前記仮想視点の画像の深度長に応じて設定されることを特徴とする。
【０００６】
本願請求項５記載の発明は、異なる視点より撮影された複数の画像から前記視点よりも外側に位置する仮想視点の画像を生成する画像処理装置であって、前記複数の画像のそれぞれを共通平面に投影変換する投影変換手段と、前記共通平面における探索基準位置と前記仮想視点とを通る直線と前記複数の画像の視点が通る直線との交点を仮想視点補正位置とし、前記共通平面における探索基準位置ごとに、前記仮想視点補正位置と前記複数の画像の視点のうち第一の視点との距離に応じた近傍画像距離と、前記仮想視点補正位置と前記複数の画像の視点のうち前記第一の視点より相対的に前記仮想視点補正位置から遠い第二の視点との距離に応じた遠方画像距離とを算出する算出手段と、前記第一の視点に対応する前記投影変換された近傍画像における、探索基準ブロック座標と前記近傍画像距離とに応じた第１のブロック画像と、前記第二の視点に対応する前記投影変換された遠方画像における、該探索基準ブロック座標と前記遠方画像距離に応じた第２のブロック画像とを用いて、該探索基準ブロック座標に対応する視差ベクトルを決定する決定手段と、前記視差ベクトルを用いて、前記仮想視点の画像を生成する生成手段とを有することを特徴とする。
【発明の効果】
【０００７】
請求項１記載の発明によれば、撮像カメラ位置間よりも外側に位置する視差を拡大した仮想視点画像も適切に生成できるようにすることができる。
請求項５記載の発明によれば、複数画像の視点位置を結んだ直線上でない位置である仮想視点の画像を高精度に作成できるようにすることができる。
【図面の簡単な説明】
【０００８】
【図１】ＸＹＺ直交座標系で表される三次元空間を模式的に表した図である。
【図２】実施例１におけるＹ軸方向の負から正の方向へ見たときのＸＺ平面１０２を表した図である。
【図３】実施例１において本発明が実施されるコンピュータのハードウェア構成の一例を示す図である。
【図４】実施例１における本発明の視差再調節プログラムを説明する処理フローチャート図である。
【図５】図４中のステップＳ４０４における視差ベクトル検出処理の処理フローチャート図である。
【図６】図４中のステップＳ５０７における処理内容を模式的に示す図である。
【図７】図４中のステップＳ４０５における視差補償処理の処理フローチャート図である。
【図８】実施例２におけるＹ軸方向の負から正の方向へ見たときのＸＺ平面１０２を表した図である。
【図９】実施例２における本発明の視差再調節プログラムを説明する処理フローチャート図である。
【図１０】実施例２における投影変換方法を説明する模式図である。
【図１１】実施例２における投影変換処理結果を模式的に示す図である。
【図１２】図９中のステップＳ９０５における投影変換処理の処理フローチャート図である。
【図１３】実施例２において用いられるバイキュービック補間処理の入出力画素の対応を模式的に示した図である。
【図１４】実施例２における近傍画像距離ＮＩＤおよび遠方画像距離ＦＩＤの算出方法を説明する模式図である。
【図１５】実施例２における処理フローを説明する模式図である。
【図１６】図９中のステップＳ９０９における投影変換処理の処理フローチャート図である。
【図１７】実施例５および実施例６において本発明が実施される２眼カメラのハードウェア構成の一例を示す図である。
【図１８】実施例５における本発明の画像処理装置の処理ブロック図である。
【図１９】実施例６における本発明の画像処理装置の処理ブロック図である。
【図２０】実施例７における処理フローを説明する図である。
【図２１】実施例７における探索基準条件設定処理のフローを示す図である。
【図２２】実施例７におけるＹ軸方向の負から正の方向へ見たときのＸＺ平面を表した図である。
【発明を実施するための形態】
【０００９】
（実施例１）
本実施例では視差倍率ＰＭ（Ｐａｒａｌｌａｘ  Ｍａｇｎｉｆｉｃａｔｉｏｎ）を用いて、平行法にて撮像された両眼視差画像である平行法両眼視差画像の視差をＰＭ倍に再調節する。
【００１０】
図１および図２（ａ）を用いて平行法両眼視差画像について定義する。図１はＸＹＺ直交座標系で表される三次元空間を模式的に表した図である。１０１は三次元空間、１０３は原点Ｏ、１０２は原点Ｏを含むＸＺ平面である。
【００１１】
図２は、Ｙ軸方向の負から正の方向へ見たときのＸＺ平面１０２を表した図である。２０１はレフトカメラであり、両眼視差画像における左目視点の画像を撮像する。２０２はライトカメラであり、両眼視差画像における右目視点の画像を撮像する。２０３はレフトカメラ・ライトカメラのそれぞれの撮像素子平面に対応する共通無限遠方ＸＹ平面である。２０４はオブジェクトである。２０５は共通無限遠方ＸＹ平面におけるレフトカメラでのオブジェクトの写像点である。２０６は共通無限遠方ＸＹ平面におけるライトカメラでのオブジェクトの写像点である。
【００１２】
ここで、レフトカメラ視点ＰＬはＰＬ（ｘＬ，ｙＬ，ｚＬ，θｘＬ，θｙＬ，θｚＬ）、ライトカメラ視点ＰＲはＰＲ（ｘＲ，ｙＲ，ｚＲ，θｘＲ，θｙＲ，θｚＲ）と、それぞれ６次元の座標系で定義する。ｘＬ・ｘＲは三次元空間上のＸ軸方向座標値である。ｙＬ・ｙＲは三次元空間上のＹ軸方向座標値である。ｚＬ・ｚＲは三次元空間上のＺ軸方向座標値である。θｘＬ・θｘＲはＸ軸回転角である。Ｘ軸を回転軸としてＸ軸の負から正の方向へ見たときに反時計回りすると角度が増加する。Ｚ軸方向において角度は０である。θｙＬ・θｙＲはＹ軸回転角である。Ｙ軸を回転軸としてＹ軸の負から正の方向へ見たときに反時計回りすると角度が増加する。Ｘ軸方向において角度は０である。θｚＬ・θｚＲはＺ軸回転角である。Ｚ軸を回転軸としてＺ軸の負から正の方向へ見たときに反時計回りすると角度が増加する。Ｙ軸方向において角度は０である。
【００１３】
平行法両眼視差画像においては、レフトカメラ視点ＰＬとライトカメラ視点ＰＲの関係は、以下の数１．１のとおりである。平行法にて撮像された平行法両眼視差画像は、画像を取得するレフトカメラの視点ＰＬとライトカメラの視点ＰＲとの差が基線距離α＝｜ｘＬ−ｘＲ｜のみで表されるときの両眼視差画像である。尚、ｄはカメラ視点注視点間距離である（詳細は後述する）。
【００１４】
【数１】
0005812716.tif 000002
【００１５】
次に図２（ｂ）を用いて再調節するＰＭ倍の視差について定義する。２０７は仮想レフトカメラであり、再調節された視差を持つ両眼視差画像のうち、左目視点の画像を撮像する。２０８は仮想ライトカメラであり、再調節された視差を持つ両眼視差画像のうち、右目視点の画像を撮像する。２０９は共通無限遠方ＸＹ平面における仮想レフトカメラでのオブジェクトの写像点である。２１０は共通無限遠方ＸＹ平面における仮想ライトカメラでのオブジェクトの写像点である。
【００１６】
ここで、仮想レフトカメラ視点ＰＶＬはＰＶＬ（ｘＶＬ，ｙＶＬ，ｚＶＬ，θｘＶＬ，θｙＶＬ，θｚＶＬ）、仮想ライトカメラ視点ＰＶＲはＰＶＲ（ｘＶＲ，ｙＶＲ，ｚＶＲ，θｘＶＲ，θｙＶＲ，θｚＶＲ）と、それぞれ６次元の座標系で定義する。ｘＶＬ・ｘＶＲは三次元空間上のＸ軸方向座標値である。ｙＶＬ・ｙＶＲは三次元空間上のＹ軸方向座標値である。ｚＶＬ・ｚＶＲは三次元空間上のＺ軸方向座標値である。θｘＶＬ・θｘＶＲはＸ軸回転角である。Ｘ軸を回転軸としてＸ軸の負から正の方向へ見たときに反時計回りすると角度が増加する。Ｚ軸方向において角度は０である。θｙＶＬ・θｙＶＲはＹ軸回転角である。Ｙ軸を回転軸としてＹ軸の負から正の方向へ見たときに反時計回りすると角度が増加する。Ｘ軸方向において角度は０である。θｚＶＬ・θｚＶＲはＺ軸回転角である。Ｚ軸を回転軸としてＺ軸の負から正の方向へ見たときに反時計回りすると角度が増加する。Ｙ軸方向において角度は０である。
【００１７】
平行法両眼視差画像においては、仮想レフトカメラ視点ＰＶＬと仮想ライトカメラ視点ＰＶＲの関係は、以下の数１．２のとおりである。即ち、ＰＭ倍の視差を再調節することは、レフトカメラの視点ＰＬとライトカメラの視点ＰＲとの基線距離ａがＰＭ倍された位置に位置する、仮想レフトカメラからの視点ＰＶＬと仮想ライトカメラからの視点ＰＶＲの画像を生成することである。
【００１８】
【数２】
0005812716.tif 000003
【００１９】
尚、本実施例ではａ＝１（ｃｍ）として処理を行なうが、ａの長さを限定するものではない。
【００２０】
視差倍率ＰＭは０≦ＰＭ＜∞の範囲における実数値を取ることができる。視差倍率ＰＭがＰＭ＝０の場合、視点ＰＶＬと視点ＰＶＲの基線距離｜ｘＶＬ−ｘＶＲ｜が｜ｘＶＬ−ｘＶＲ｜＝０となり、視差が０になる。視差倍率ＰＭが０＜ＰＭ＜１の場合、｜ｘＶＬ−ｘＶＲ｜＜ａとなり、視差が両眼視差画像よりも小さくなる。視差倍率ＰＭがＰＭ＝１の場合、｜ｘＶＬ−ｘＶＲ｜＝ａとなり、視差は入力される両眼視差画像と等しくなる。視差倍率ＰＭが１＜ＰＭ＜∞との場合、｜ｘＶＬ−ｘＶＲ｜＞ａとなり、視差は入力される両眼視差画像よりも大きくなる。
【００２１】
図３は、実施例１において本発明が実施されるコンピュータのハードウェア構成の一例を示す図である。
【００２２】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｃｅｓｉｎｇ  Ｕｎｉｔ）３０１は、外部記憶装置（ハードディスク）３０７に格納されているＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）、アプリケーションプログラム等を実行して画像処理装置３００の動作を制御する。なお、ＣＰＵ３０１は、対応する処理プログラムを実行する。
【００２３】
また、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０２は、基本Ｉ／Ｏプログラム等のプログラムが記憶されている。ＲＡＭ３０３は、ＣＰＵ３０１の主メモリ、ワークエリア等として機能する。
【００２４】
ネットワークＩ／Ｆ３０４は、ＰＡＮ（Ｐｅｒｓｏｎａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）に接続して外部装置と通信するためのインタフェースである。
【００２５】
入力装置３０５は、ユーザーからの入力を受け付けるマウス、キーボードの他、被写体の画像を撮影して画像入力を行うための撮像装置を含むことができる。当該撮像装置を有することにより、画像処理装置３００はデジタルカメラ、或いは、デジタルビデオカメラとして機能することができる。
【００２６】
出力装置３０６は、液晶ディスプレイのような表示装置である。外部記憶装置３０７は、アプリケーションプログラム、ドライバプログラム、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）、制御プログラム、実施例１に対応する処理を実行するための処理プログラム等を格納している。システムバス３０８は、装置内のデータの流れを司る。
【００２７】
図４は、ＣＰＵ３０１によって行われる本実施例の視差再調節プログラム（以下、本処理プログラム１と略す）を説明するフローチャートである。本フローチャートで表される本処理プログラム１は、通常、外部記憶装置３０７に記録されており、処理を開始するにあたりＣＰＵ３０１が本処理プログラム１を外部記憶装置３０７から読み込んで、ＲＡＭ３０３に展開する。
【００２８】
ステップＳ４０１は、本処理プログラム１の開始を表す。ステップＳ４０２は、視差倍率ＰＭを設定する。本実施例ではＰＭ＝３とし、入力する両画像データに付いている視差を通常とした場合、通常の３倍に視差を再調節するように設定する。
【００２９】
ステップＳ４０３は、画像探索比ＳＲを算出する。画像探索比ＳＲは、近傍画像距離ＮＩＤと遠方画像距離ＦＩＤの比である。
【００３０】
近傍画像距離ＮＩＤは、生成する仮想視点画像の仮想視点と、仮想視点により近い視点で撮像するカメラの視点との距離である。遠方画像距離ＦＩＤは、仮想視点と、仮想視点により遠い視点で撮像するカメラの視点との距離である。
【００３１】
平行法両眼視差画像の視差再調節を行なう本実施例において、近傍画像距離ＮＩＤおよび遠方画像距離ＦＩＤは以下の数１．３のように求められる。
【００３２】
【数３】
0005812716.tif 000004
【００３３】
図２を用いて本発明における近傍画像距離ＮＩＤおよび遠方画像距離ＦＩＤの算出方法を説明する。
【００３４】
仮想レフトカメラ２０７におけるオブジェクト２０４の共通無限遠方ＸＹ平面２０３における写像点は２０９である。レフトカメラ２０１におけるオブジェクト２０４の共通無限遠方ＸＹ平面２０３における写像点は２０５である。ライトカメラ２０２におけるオブジェクト２０４の共通無限遠方ＸＹ平面２０３における写像点は２０６である。
【００３５】
ここで、仮想レフトカメラ２０７・レフトカメラ２０１・オブジェクト２０４が成す三角形Ａと、写像点２０９・写像点２０５・オブジェクト２０４が成す三角形Ｂは相似である。また、仮想レフトカメラ２０７・ライトカメラ２０２・オブジェクト２０４が成す三角形Ｃと、写像点２０９・写像点２０６・オブジェクト２０４が成す三角形Ｄは相似である。
【００３６】
このことから、三角形Ａの頂点である仮想レフトカメラ２０７とレフトカメラ２０１を結ぶ辺の長さと、三角形Ｃの頂点である仮想レフトカメラ２０７とライトカメラ２０２を結ぶ辺の長さの比は、以下の数１．４のように求められる。
【００３７】
【数４】
0005812716.tif 000005
【００３８】
三角形Ａと三角形Ｃに共通する仮想レフトカメラ２０７とオブジェクト２０４を結ぶ辺のＺ軸方向成分を高さとすると、三角形Ａと三角形Ｃの面積比は、底辺である三角形Ａの頂点である仮想レフトカメラ２０７とレフトカメラ２０１を結ぶ辺の長さと三角形Ｃの頂点である仮想レフトカメラ２０７とライトカメラ２０２を結ぶ辺の長さの比に一致する。
【００３９】
三角形Ｂと三角形Ｄの面積比は、三角形Ａと三角形Ｂが相似であり、三角形Ｃと三角形Ｄが相似であることから、三角形Ａと三角形Ｃの面積比に等しい。
【００４０】
三角形Ｂと三角形Ｄ共通する写像点２０９とオブジェクト２０４を結ぶ辺のＺ軸方向成分を高さとすると、三角形Ｂと三角形Ｄの面積比は、底辺である三角形Ｂの頂点である写像点２０９と写像点２０５を結ぶ辺の長さと三角形Ｃの頂点である写像点２０９と写像点２０６を結ぶ辺の長さの比に一致する。
【００４１】
上記より、仮想レフトカメラに対して近傍に位置するレフトカメラに写像される画像を探索する際に使用する近傍画像距離ＮＩＤと、仮想レフトカメラに対して遠方に位置するライトカメラに写像される画像を探索する際に使用する遠方画像距離ＦＩＤを数１．３の様に算出する。
【００４２】
このため、  ｘＶＬ＿ＰＭ＊ａ／２に位置する仮想レフトカメラ２０７により共通無限遠方ＸＹ平面２０３にオブジェクト２０４を写像してできる写像点２０９は、写像点２０５との距離と写像点２０６との距離の比が数１．４で表される。
【００４３】
ここで、視差倍率ＰＭによるＮＩＤおよびＦＩＤの設定について補足説明する。数１．３により求められるＮＩＤとＦＩＤは、最も単純な整数の比で表すように値を修正して用いる。
【００４４】
視差倍率ＰＭ＝３とする場合は、数１．３によりＮＩＤ＝２、ＦＩＤ＝４である。ここでＮＩＤとＦＩＤにそれぞれ２で除することでＮＩＤ＝１、ＦＩＤ＝２を得る。
【００４５】
別の例では、視差倍率ＰＭ＝０とする場合はＮＩＤ＝−１、ＦＩＤ＝１である。視差倍率ＰＭ＝０．５とする場合はＮＩＤ＝−０．５、ＦＩＤ＝１．５である。ここでＮＩＤとＦＩＤにそれぞれ２を乗じることでＮＩＤ＝−１、ＦＩＤ＝３を得る。視差倍率ＰＭ＝１とする場合はＮＩＤ＝０、ＦＩＤ＝２である。ここでＮＩＤとＦＩＤにそれぞれ２で除することでＮＩＤ＝０、ＦＩＤ＝１を得る。視差倍率ＰＭ＝２とする場合はＮＩＤ＝１、ＦＩＤ＝３である。視差倍率ＰＭ＝４とする場合はＮＩＤ＝３、ＦＩＤ＝５である。
【００４６】
このように、数１．３以降でＮＩＤとＦＩＤは最も単純な整数の比で表すように値を修正する。これは画像データが離散化されていることに起因する。連続データとして画像データを扱える環境であれば、値を修正する必要は無い。
【００４７】
ステップＳ４０４は、テンプレートマッチングすることで、平行法両眼視差画像の視差マップを生成する。
【００４８】
本実施例におけるテンプレートマッチング方法は、ステップＳ４０３にて説明したカメラとオブジェクトが成す三角形は、写像面とオブジェクトが成す三角形と相似になる特徴を用いている。即ち第一に、仮想レフトカメラに写像される画像を構成する画素ないし画素により構成される小領域を探索基準位置とする。第二に、レフトカメラに写像される画像内において探索基準位置からｄｄ・ＮＩＤ離れた位置にある画素ないし画素により構成される小領域を選択する。第三に、ライトカメラに写像される画像内において探索基準位置からｄｄ・ＦＩＤ離れた位置にある画素ないし画素により構成される小領域を選択する。第四に、選択された二つの画素ないし画素により構成される小領域をマッチングする。第五に、最もマッチングしたｄｄ・ＮＩＤを、視差ベクトルとして検出する（ここでは簡単に距離変数ｄｄにより視差ベクトルを表す。本実施例における視差ベクトルの厳密解は後述する）。
【００４９】
図５は図４中のステップＳ４０４における視差ベクトル検出処理のフローチャートである。尚、以下の説明では、視差ベクトル検出処理のフローチャートを本サブフローチャート１と称する。
【００５０】
本サブフローチャート１に入力する平行法両眼視差画像は、表示解像度、画素のｂｉｔ精度、カラースペース・カラーフォーマット・撮像に用いたレンズの画角θＬｅｎが一致しているものとする。
【００５１】
又、本実施例では、入力する平行法両眼視差画像は両画像データとも、以下のように記録されているものとする。
表示解像度：２５９２×１７２８（ｐｉｘｅｌ２）、カラースペース：ＲＧＢ、カラーフォーマット：ＲＧＢ（面順次）、画素のｂｉｔ精度：８（ｂｉｔ）、画角：θＬｅｎ＝π／２（ｒａｄ）
又、以下の処理ステップでは、面順次のＲＧＢフォーマットの画像データを輝度信号Ｙに変換して行なう。輝度信号ＹはＹ＝ａ１・Ｒ＋ａ２・Ｇ＋ａ３・Ｂのように、画素毎にＲＧＢの画像信号を加重平均して算出することができる。ａ１，ａ２，ａ３をカラーマトリックと言い、入力画像の規格によってヴァリエーションがある。ＩＴＵ−Ｒ  ＢＴ．７０９  ｒｅｃｏｍｍｅｎｄａｔｉｏｎ（Ｒｅｃ．７０９）の場合、ａ１＝０．２１２６，ａ２＝０．７１５２，ａ３＝０．０７２２である。尚、輝度信号Ｙの代わりに画像データの単一成分（Ｒ・Ｇ・Ｂのいずれか１つ）を用いてもよい。又、ＲＧＢ、ＹＵＶ以外のカラースペースのデータを用いてもよい。
【００５２】
又、仮想ライト視点画像を生成する処理が、仮想レフト視点画像を生成する処理と異なるのは、レフトカメラ視点画像を近傍画像ＮＩとするか遠方画像ＦＩとするかの違いであり、処理内容は同じである。（仮想レフト視点画像を生成する場合は、近傍画像ＮＩにレフトカメラ視点画像を設定して、遠方画像ＦＩにライトカメラ視点画像を設定する。仮想レフト視点画像を生成する場合は、遠方画像ＦＩにレフトカメラ視点画像を設定して、近傍画像ＮＩにライトカメラ視点画像を設定する。）このため、仮想ライト視点画像を生成する処理の説明は省略する。以下の処理ステップでは、仮想レフトカメラ２０７が仮想的に撮像をした仮想レフト視点画像を生成する処理について説明する。
【００５３】
又、本実施例では、本処理プログラム１が実行される前に、両画像データとも、レンズ収差による歪曲・色割れ・撮像素子のセンサーノイズ・符号化ノイズは、必要に応じてこれらの画質劣化要因に対する補正処理が予め実行されており、これらの画質劣化要因によりテンプレートマッチングでマッチングミスが起こらないものとする。
【００５４】
又、画像信号がガンマ逆補正されている場合は本処理プログラム１が実行される前にガンマ補正を行なうものとする。ここでガンマ逆補正とは入力Ｘと出力Ｙがそれぞれ０≦Ｘ≦１、０≦Ｙ≦１の値を取るとき、Ｙ＝Ｘｇｉ、ｇｉ＝５／１１のように、入力Ｘの値が小さい程、出力Ｙが大きく出力される特性を持つ処理である。ガンマ補正とはＹ＝Ｘｇｆ、ｇｆ＝ｇｉ−１＝１１／５のように、入力Ｘの値が小さい程、出力Ｙが小さく出力される特性を持つである。本実施例では画素のｂｉｔ精度が８なので、画素値に対して２−８倍した値を上記入力Ｘとする。また上記出力Ｙに対して２８倍してｂｉｔ精度を８に戻す。
【００５５】
ステップＳ５００は、本サブフローチャート１の開始を示している。ステップＳ５０１は、近傍画像ＮＩ（ｘｉｎ，ｙｉｎ）と遠方画像ＦＩ（ｘｉｎ，ｙｉｎ）を入力する。Ｘ軸方向座標ポインタｘｉｎ、Ｙ軸方向座標ポインタｙｉｎの取り得る値は、共に０もしくは正の整数である。近傍画像ＮＩ（ｘｉｎ，ｙｉｎ）と遠方画像ＦＩ（ｘｉｎ，ｙｉｎ）のＸ軸方向表示解像度がｒｓｌ＿ｘ、Ｙ軸方向表示解像度がｒｓｌ＿ｙで表される場合、ｘｉｎ・ｙｉｎの取る値の範囲は、それぞれ０≦ｘｉｎ＜ｒｓｌ＿ｘ、０≦ｙｉｎ＜ｒｓｌ＿ｙである。本実施例ではｒｓｌ＿ｘ＝２５９２、ｒｓｌ＿ｙ＝１７２８であるので０≦ｘｉｎ＜２５９２、０≦ｙｉｎ＜１７２８である。
【００５６】
ステップＳ５０２は、画像探索比ＳＲを入力する。画像探索比ＳＲの代わりに、近傍画像距離ＮＩＤと遠方画像距離ＦＩＤを入力してもよい。本実施例では、視差倍率ＰＭ＝３と設定しているので、数１．３によりＮＩＤ＝１、ＦＩＤ＝２であり、ＳＲ＝０．５である。
【００５７】
ステップＳ５０３は、テンプレートマッチングにおける基準マッチング処理条件を入力する。基準マッチング処理条件は、Ｘ軸方向基準ブロックサイズＢＳ＿ＢＡＳＩＣｘ、Ｙ軸方向基準ブロックサイズＢＳ＿ＢＡＳＩＣｙ、Ｘ軸方向基準片側探索範囲ＳＳ＿ＢＡＳＩＣｘ、ピクセル探索精度ＰＳＡである。本実施例では、ＢＳ＿ＢＡＳＩＣｘ＝８、ＢＳ＿ＢＡＳＩＣｙ＝８、ＳＳ＿ＢＡＳＩＣｘ＝８、ＰＳＡ＝０．５である。
【００５８】
ピクセル探索精度ＰＳＡはＰＳＡ＝２−ｎ（ｎ＝０，１，２，３，・・・）のように、２の冪乗の値を取る。ｎの値が大きくなる程、次探索における探索ブロックの移動量が指数関数的に減るので探索精度が向上する。本実施例ではＰＳＡ＝０．５であり、入力画像の画素ピッチに対してその半分の探索ブロック移動量でテンプレートマッチングを行なう、１／２画素精度探索となる。
【００５９】
尚、平行法両眼視差画像において、幾何光学上では発生しない画像のＹ軸方向に対する視差が、画像のボケや歪曲により発生する可能性がある。本実施例ではこれら画質劣化要因はないと仮定しているが、実用性を考えてこれらの画質劣化要因に対応可能な処理構成について説明する。そのため、上記の基準マッチング処理条件に更にＹ軸方向基準片側探索範囲ＳＳ＿ＢＡＳＩＣｙを追加する。本実施例ではＳＳ＿ＢＡＳＩＣｙ＝３とする。
【００６０】
ステップＳ５０４は、画像探索比ＳＲと基準マッチング処理条件を用いて、テンプレートマッチングにおける拡張マッチング処理条件を算出する。拡張マッチング処理条件は、Ｘ軸方向拡張ブロックサイズＢＳ＿ＥＸＴＥＤｘ、Ｙ軸方向拡張ブロックサイズＢＳ＿ＥＸＴＥＤｙ、Ｘ軸方向拡張片側探索範囲  ＳＳ＿ＥＸＴＥＤｘである。ＢＳ＿ＥＸＴＥＤｘ・ＢＳ＿ＥＸＴＥＤｙ・ＳＳ＿ＥＸＴＥＤｘはそれぞれ以下の数１．５により算出される。数１．５より、ＢＳ＿ＥＸＴＥＤｘ＝３２、ＢＳ＿ＥＸＴＥＤｙ＝３２、ＳＳ＿ＥＸＴＥＤｘ＝１６である。
【００６１】
【数５】
0005812716.tif 000006
【００６２】
尚、基準マッチング処理条件にＹ軸方向基準片側探索範囲ＳＳ＿ＢＡＳＩＣｙを追加している場合、本ステップにて算出される拡張マッチング処理条件に更にＹ軸方向拡張片側探索範囲ＳＳ＿ＥＸＴＥＤｙが追加される。ＳＳ＿ＥＸＴＥＤｙは以下の数１．６のように算出される。数１．６より、ＳＳ＿ＥＸＴＥＤｙ＝６である。
【００６３】
【数６】
0005812716.tif 000007
【００６４】
ステップＳ５０５は、本サブフローチャート１にて生成する視差マップＰＭＡＰ（ａｘ，ａｙ）を初期化する。Ｘ軸方向探索基準ブロックポインタａｘ、Ｙ軸方向探索基準ブロックポインタａｙの取り得る値は、共に０もしくは正の整数である。両画像データのＸ軸方向表示解像度がｒｓｌ＿ｘ、Ｙ軸方向表示解像度がｒｓｌ＿ｙで表される場合、ａｘ・ａｙの取る値の範囲は、それぞれ以下の数１．７で表される。本実施例では
ｒｓｌ＿ｘ＝２５９２、ｒｓｌ＿ｙ＝１７２８であるので、０≦ａｘ＜３２４、０≦ａｙ＜２１６である。ａｘとａｙの組合せは３２４×２１６＝６９９８７通りであり、これは視差マップ  ＰＭＡＰ（ａｘ，ａｙ）の参照領域と一致する。
【００６５】
【数７】
0005812716.tif 000008
【００６６】
尚、以下の数１．８で表せるように、所定のＸ軸方向探索基準ブロックポインタａｘｍ、およびＹ軸方向探索基準ブロックポインタａｙｎを用いて視差マップを参照することで、所定のＸ軸方向視差ベクトルΔｘｍ，ｎ、および所定のＹ軸方向視差ベクトルΔｙｍ，ｎを取得することが可能である。
【００６７】
【数８】
0005812716.tif 000009
【００６８】
ステップＳ５０６は、探索基準ブロック座標（ＢＢＣ＿ｘ，ＢＢＣ＿ｙ）を更新させる。探索基準ブロックＸ座標ＢＢＣ＿ｘ、探索基準ブロックＹ座標ＢＢＣ＿ｙは以下の数１．９で表される。
【００６９】
【数９】
0005812716.tif 000010
【００７０】
Ｘ軸方向探索基準ブロックポインタａｘ、Ｙ軸方向探索基準ブロックポインタａｙはそれぞれ数１．７の範囲において全ての組合せを採る。ａｘ・ａｙの組合せ順序は任意である。本実施例では便宜的に以下のような組合せ順序をａｘ・ａｙを採用する。
【００７１】
Ｘ軸方向探索基準ブロックポインタａｘ、Ｙ軸方向探索基準ブロックポインタａｙの初期値はａｘ・ａｙ共に０である。１つずつａｘを増加させ、ａｘが取る値の範囲を超えたら０にａｘを戻すとともに、１つａｙを増加させる。以上のような操作により探索基準ブロック座標を更新させる。
【００７２】
ステップＳ５０７は、探索基準ブロック座標（ＢＢＣ＿Ｘ，ＢＢＣ＿Ｙ）にあるブロック画像に対する、近傍画像ＮＩと遠方画像ＦＩのそれぞれのマッチング座標を算出する。近傍画像ＮＩ内のＸ軸方向マッチング座標をＮＭＣ＿Ｘ、Ｙ軸方向マッチング座標をＮＭＣ＿Ｙ、遠方画像ＦＩ内のＸ軸方向マッチング座標をＦＭＣ＿Ｘ、Ｙ軸方向マッチング座標をＦＭＣ＿Ｙ、は以下の数１．１０で表される。
【００７３】
【数１０】
0005812716.tif 000011
【００７４】
Ｘ軸方向マッチングポインタｍｘは−ＳＳ＿ＥＸＴＥＮＤｘ≦ｍｘ≦ＳＳ＿ＥＸＴＥＮＤｘの範囲の値を取る。Ｙ軸方向マッチングポインタｍｙは−ＳＳ＿ＥＸＴＥＮＤｙ≦ｍｙ≦ＳＳ＿ＥＸＴＥＮＤｙの範囲の値を取る。ｍｘ・ｍｙは共に整数の値を取る。
【００７５】
ここで、Ｘ軸方向視差ベクトルΔｘ、およびＹ軸方向視差ベクトルΔｙは、以下の数１．１１のように定義する。数１．１１より、上述した距離変数ｄｄは、ｄｄ＝ｍｘ・ＰＳＡ／ＦＩＤと表される。
【００７６】
【数１１】
0005812716.tif 000012
【００７７】
ステップＳ５０８は、近傍画像ＮＩからマッチング座標（ＮＭＣ＿Ｘ，ＮＭＣ＿Ｙ）を基準位置とするブロック画像を取得する。マッチング座標（ＮＭＣ＿Ｘ，ＮＭＣ＿Ｙ）は、Ｘ軸方向表示解像度がｒｓｌ＿ｘ、Ｙ軸方向表示解像度がｒｓｌ＿ｙの近傍画像ＮＩをＦＩＤ／ＰＳＡ倍させた拡大近傍画像ＥＮＩに対する座標である。そこで、Ｘ軸方向表示解像度がｒｓｌ＿ｘ・ＦＩＤ／ＰＳＡ、Ｙ軸方向表示解像度がｒｓｌ＿ｙ・ＦＩＤ／ＰＳＡの拡大近傍画像ＥＮＩを得て、ＥＮＩ（ＮＭＣ＿Ｘ，ＮＭＣ＿Ｙ）を基準とする面積ＢＳ＿ＥＸＴＥＮＤｘ・ＢＳ＿ＥＸＴＥＮＤｙのブロック画像ＢＫＮを得る。
【００７８】
近傍画像ＮＩから拡大近傍画像ＥＮＩを生成する画像補間方法は、最近傍補間法、バイリニア法、バイキュービック法、その他の画像補間方法を用いて構わない。
【００７９】
尚、後述する実施例２にて、すでに近傍画像ＮＩがＦＩＤ／ＰＳＡ倍に画像拡大されている場合は、ステップＳ５０８で近傍画像ＮＩを拡大近傍画像ＥＮＩとして処理する。
【００８０】
ステップＳ５０９は、遠方画像ＦＩからマッチング座標（ＦＭＣ＿Ｘ，  ＦＭＣ＿Ｙ）を基準位置とするブロック画像を取得する。マッチング座標（ＦＭＣ＿Ｘ，  ＦＭＣ＿Ｙ）は、Ｘ軸方向表示解像度がｒｓｌ＿ｘ、Ｙ軸方向表示解像度がｒｓｌ＿ｙの遠方画像ＦＩをＦＩＤ／ＰＳＡ倍させた拡大遠方画像ＥＦＩに対する座標である。そこで、Ｘ軸方向表示解像度がｒｓｌ＿ｘ・ＦＩＤ／ＰＳＡ、Ｙ軸方向表示解像度がｒｓｌ＿ｙ・ＦＩＤ／ＰＳＡの拡大遠方画像ＥＦＩを得て、ＥＦＩ（ＦＭＣ＿Ｘ，ＦＭＣ＿Ｙ）を基準とする面積ＢＳ＿ＥＸＴＥＮＤｘ・ＢＳ＿ＥＸＴＥＮＤｙのブロック画像ＢＫＦを得る。
【００８１】
遠方画像ＦＩから拡大遠方画像ＥＦＩを生成する画像補間方法は、最近傍補間法、バイリニア法、バイキュービック法、その他の方法を用いて構わない。
【００８２】
尚、後述する実施例２にて、すでに遠方画像ＦＩがＦＩＤ／ＰＳＡ倍に画像拡大されている場合は、ステップＳ５０９で遠方画像ＦＩを拡大遠方画像ＥＦＩとして処理する。
【００８３】
ステップＳ５１０は、ブロック画像ＢＫＮとブロック画像ＢＫＦのマッチングを行なう。マッチング演算では、数１．１２で示される相関係数や、数１．１３で示されるＳＡＤ値（差分絶対値和）を算出する。また、上記の他にも最小二乗マッチング法を適用してもよい。マッチング演算により算出されるマッチング係数（相関係数やＳＡＤ値）を出力する。
【００８４】
【数１２】
0005812716.tif 000013
【００８５】
【数１３】
0005812716.tif 000014
【００８６】
ステップＳ５１１は、ステップＳ５０７で更新されたマッチング座標毎にステップＳ５１０で算出されるマッチング係数同士の比較を行なう。ステップＳ５１０におけるマッチング演算に相関係数を用いている場合、以前のマッチング演算結果の中で最もマッチングした（最も高い値を示した）マッチング演算結果Ｒｐｒｅと、今回のマッチング演算結果Ｒｃｕｒを用いて、以下の比較結果Ｒｅ  ｓｕｌｔを算出する。
【００８７】
【数１４】
0005812716.tif 000015
【００８８】
又、ステップＳ５１０におけるマッチング演算にＳＡＤ値を用いている場合、以前のマッチング演算結果の中で最もマッチングした（最も低い値を示した）マッチング演算結果ＳＡＤｐｒｅと、今回のマッチング演算結果ＳＡＤｃｕｒを用いて、以下の比較結果Ｒｅｓｕｌｔを算出する。
【００８９】
【数１５】
0005812716.tif 000016
【００９０】
Ｒｅ  ｓｕｌｔ＝１の場合、以前のマッチング演算結果の中で最もマッチングした場合よりも、今回のマッチング演算結果の方がマッチングしている。そのため、今回のマッチング演算に用いたブロック画像を参照するために用いた視差ベクトルが、より正しい視差ベクトルであると判断して、ステップＳ５１２へ処理を進める。Ｒｅ  ｓｕｌｔ＝０の場合、以前のマッチング演算結果の中で最もマッチングした場合の方が信頼できるマッチング結果であると判断して、今回のマッチング演算結果は棄却する。棄却した後にステップＳ５１４へ処理を進める。
【００９１】
ステップＳ５１２は、次回のステップＳ５１１におけるマッチング係数同士の比較を行なう際に用いるため、数１．１６（マッチング演算に相関係数を用いている場合）ないし数１．１７（マッチング演算にＳＡＤ値を用いている場合）で示されるように今回のマッチング演算結果を保持する。
【００９２】
【数１６】
0005812716.tif 000017
【００９３】
【数１７】
0005812716.tif 000018
【００９４】
ステップＳ５１３は、今回のマッチング演算において、Ｘ軸方向マッチング座標ＮＭＣ＿Ｘ、Ｙ軸方向マッチング座標ＮＭＣ＿Ｙを算出する際に、同時に算出される数１．１１で表されるＸ軸方向視差ベクトルΔｘおよびＹ軸方向視差ベクトルΔｙを保持する。又、以前のマッチング演算時から保持していた以前のＸ軸方向視差ベクトルΔｘおよびＹ軸方向視差ベクトルΔｙを破棄する。
【００９５】
ステップＳ５１４は、Ｘ軸方向マッチングポインタｍｘ、Ｙ軸方向マッチングポインタｍｙの取り得る値の組合せが全て試されたかを判定する。全て試されたならば探索基準ブロック座標（ＢＢＣ＿Ｘ，ＢＢＣ＿Ｙ）に対するマッチングは完了したのでステップＳ５１５へ処理を進め、全て試さていないのならばステップＳ５０７へ戻る。
【００９６】
ステップＳ５１５は、視差マップＰＭＡＰ（ａｘ，ａｙ）のメモリ位置に、探索基準ブロック座標（ＢＢＣ＿Ｘ，ＢＢＣ＿Ｙ）におけるＸ軸方向視差ベクトルΔｘおよびＹ軸方向視差ベクトルΔｙを保存する。
【００９７】
ステップＳ５１６は、Ｘ軸方向探索基準ブロックポインタａｘ、Ｙ軸方向探索基準ブロックポインタａｙの取り得る値の組合せが全て試されたかを判定する。本実施例では３２４×２１６＝６９９８４通り、全て試されたならば、視差マップＰＭＡＰは完成したのでステップＳ５１７へ処理を進め、全て試されていないのならばステップＳ５０６へ戻る。
【００９８】
ステップＳ５１７は、本サブフローチャート１の終了を示している。
【００９９】
ここで、ステップＳ５０７における補足説明を行なう。Ｘ軸方向マッチングポインタｍｘとＹ軸方向マッチングポインタｍｙの組合せ順序をスキャンスキームと定義する。スキャンスキームにて定義されたｍｘとｍｙの組合せ順序で、近傍画像ＮＩと遠方画像ＦＩのそれぞれのマッチング座標を算出していく。本実施例におけるスキャンスキームは以下のような規則で生成される。
【０１００】
規則：２つ絶対値が異なるＸ軸方向マッチングポインタｍｘ１、ｍｘ２があり、｜ｍｘ１｜＞｜ｍｘ２｜のとき、ｍｘ１よりもｍｘ２を先に用いて組み合わせる。
【０１０１】
図６を用いて上記のようなスキャンスキームを用いる理由を説明する。図６（ａ）におけるオブジェクト２０４と図６（ｂ）におけるオブジェクト６０１は、仮想レフトカメラ２０７から見ると共に写像点２０９に写像される。また、オブジェクト２０４はオブジェクト６０１よりも仮想レフトカメラ２０７から見て遠くにある。また、６０２はレフトカメラ２０１におけるオブジェクト６０１の写像点であり、６０３はライトカメラ２０２におけるオブジェクト６０１の写像点である。
【０１０２】
｜ｍｘ１｜＞｜ｍｘ２｜のとき、図６（ａ）における写像点２０９と写像点２０５の距離と、図６（ｂ）における写像点２０９と写像点６０２の距離を比較すると、写像点２０９から写像点２０５までの距離はＮＭＣ＿Ｘ＝ＢＢＣ＿Ｘ＋ｍｘ２・ＮＩＤで表すことができる。また、写像点２０９から写像点６０２までの距離はＮＭＣ＿Ｘ＝ＢＢＣ＿Ｘ＋ｍｘ１・ＮＩＤで表すことができる。
【０１０３】
写像点２０９から仮想レフトカメラ２０７へ伸びる光線上に存在する二つのオブジェクト２０４と６０１は、ｍｘｌを用いて表される写像点２０９から写像点６０２までの距離をマッチングしたときの方が、仮想レフトカメラ２０７に対してオブジェクトが近景にあることがわかる。
【０１０４】
近景オブジェクト６０１と遠景オブジェクト２０４が同時に仮想レフトカメラ２０７に記録されることは有り得ない。そのため、マッチング結果が同じ場合（マッチング係数が同じである場合）は、絶対値が大きいＸ軸方向マッチングポインタを用いて近景オブジェクト６０１をマッチングした結果を採用する。
【０１０５】
以上が、本サブフローチャート１の説明である。
【０１０６】
ステップＳ４０５は、視差マップＰＭＡＰ（ａｘ，ａｙ）と平行法両眼視差画像を入力して、視差補償を行なうことで、仮想レフトカメラ視点ＰＶＬと仮想ライトカメラ視点ＰＶＲの画像を生成する。
【０１０７】
図７を用いて実施例１における視差補償方法を説明する。図７は図４中のステップＳ４０５における視差補償処理のフローチャートである。尚、以下の説明では、視差補償処理のフローチャートを本サブフローチャート２と称する。
【０１０８】
本サブフローチャート２に入力する平行法両眼視差画像は、本サブフローチャート１で入力した近傍画像ＮＩ（ｘｉｎ，ｙｉｎ）を入力する。又は、ステップＳ５０８で生成した拡大近傍画像ＥＮＩを入力する。どちらの２画像を入力しても本サブフローチャート２における処理結果は同じである。このため、ソフトウェアの実装形態に適した方を入力すればよい。即ち、メモリ使用量を低減したいのであれば、拡大近傍画像ＥＮＩを処理中保持するのは得策ではないため、画像拡大前の近傍画像ＮＩ（ｘｉｎ，ｙｉｎ）を入力するようにした方がよい。また、処理速度を速めたいのであれば、画像拡大処理は１回に留める方が良く、画像拡大後の拡大近傍画像ＥＮＩを入力した方がよい。
【０１０９】
又、以下の処理ステップでは、面順次のＲＧＢフォーマットの画像データの内、Ｒの画像領域だけを用いて行なう。Ｇの画像領域とＢの画像領域については、Ｒの画像領域を用いて行なう処理を同じであるので、説明を省略する。
【０１１０】
又、本実施例では、本処理プログラム２が実行される前に、両画像データとも、レンズ収差による歪曲・色割れ・撮像素子のセンサーノイズ・符号化ノイズは、必要に応じてこれらの画質劣化要因に対する補正処理が予め実行されており、これらの画質劣化要因によりテンプレートマッチングでマッチングミスが起こらないものとする。
【０１１１】
又、画像信号がガンマ逆補正されている場合は本処理プログラム２が実行される前にガンマ補正を行なうものとする。また、本処理プログラム２が実行された後にガンマ逆補正を行ない、入力画像データのガンマ特性に戻すものとする。ガンマ逆補正・ガンマ補正は本処理プログラム１で説明した内容と同じなので説明を省略する。
【０１１２】
又、以下の処理ステップでは、ステップＳ４０４の処理説明同様に、仮想レフトカメラ２０７が仮想的に撮像をした仮想レフト視点画像を生成する処理について説明する。
【０１１３】
ステップＳ７００は、本サブフローチャート２の開始を示している。ステップＳ７０１は、近傍画像ＮＩ（ｘｉｎ，ｙｉｎ）、もしくは拡大近傍画像ＥＮＩを入力する。ステップＳ７０２は、視差マップＰＭＡＰ（ａｘ，ａｙ）を入力する。
【０１１４】
ステップＳ７０３は、本サブフローチャート２にて生成する視差補償画像ＰＰＩ（ｘｏｕｔ，ｙｏｕｔ）の生成・初期化を行なう。Ｘ軸方向座標ポインタｘｏｕｔ、Ｙ軸方向座標ポインタｙｏｕｔの取り得る値は、共に０もしくは正の整数である。視差補償画像ＰＰＩ（ｘｏｕｔ，ｙｏｕｔ）のＸ軸方向表示解像度がｒｓｌ＿ｘ、Ｙ軸方向表示解像度がｒｓｌ＿ｙで表される場合、ｘｏｕｔ・ｙｏｕｔの取る値の範囲は、それぞれ０≦ｘｏｕｔ＜ｒｓｌ＿ｘ、０≦ｙｏｕｔ＜ｒｓｌ＿ｙ、である。本実施例ではｒｓｌ＿ｘ＝２５９２、ｒｓｌ＿ｙ＝１７２８であるので０≦ｘｏｕｔ＜２５９２、０≦ｙｏｕｔ＜１７２８である。
【０１１５】
ステップＳ７０４は、Ｘ軸方向探索基準ブロックポインタａｘ、Ｙ軸方向探索基準ブロックポインタａｙを更新する。Ｘ軸方向探索基準ブロックポインタａｘ、Ｙ軸方向探索基準ブロックポインタａｙはそれぞれ数１．７の範囲において全ての組合せを採る。ａｘ・ａｙの組合せ順序は任意である。本実施例では便宜的に以下のような組合せ順序をａｘ・ａｙを採用する。
【０１１６】
Ｘ軸方向探索基準ブロックポインタａｘ、Ｙ軸方向探索基準ブロックポインタａｙの初期値はａｘ・ａｙ共に０である。１つずつａｘを増加させ、ａｘが取る値の範囲を超えたら０にａｘを戻すとともに、１つａｙを増加させる。以上のような操作により探索基準ブロック座標を更新させる。
【０１１７】
ステップＳ７０５は、所定のＸ軸方向探索基準ブロックポインタａｘｍ、およびＹ軸方向探索基準ブロックポインタａｙｎを視差マップＰＭＡＰ（ａｘ，ａｙ）に対する入力として、数１．８より、所定のＸ軸方向視差ベクトルΔｘｍ，ｎ、および所定のＹ軸方向視差ベクトルΔｙｍ，ｎを取得する。
【０１１８】
ステップＳ７０６は、視差ベクトルを用いて貼付するブロック画像を取得する。まず、数１．１１を変形させた数１．１８より、取得されたΔｘｍ，ｎ・Δｙｍ，ｎから探索基準ブロック座標（ＢＢＣ＿Ｘ，ＢＢＣ＿Ｙ）に対するオフセットｍｘ・ＮＩＤおよびｍｙ・ＮＩＤを算出する。
【０１１９】
【数１８】
0005812716.tif 000019
【０１２０】
次に、算出したオフセットｍｘ・ＮＩＤおよびｍｙ・ＮＩＤを用いて、数１．１０より貼付するブロック画像の基準座標値ＮＭＣ＿Ｘ・ＮＭＣ＿Ｙを算出する。
【０１２１】
ここで、ステップＳ７０１にて近傍画像ＮＩ（ｘｉｎ，ｙｉｎ）と遠方画像ＦＩ（ｘｉｎ，ｙｉｎ）を入力する場合、Ｘ軸方向表示解像度がｒｓｌ＿ｘ・ＦＩＤ／ＰＳＡ、Ｙ軸方向表示解像度がｒｓｌ＿ｙ・ＦＩＤ／ＰＳＡの拡大近傍画像ＥＮＩを得て、ＥＮＩ（ＮＭＣ＿Ｘ，ＮＭＣ＿Ｙ）を基準とする面積ＢＳ＿ＥＸＴＥＮＤｘ・ＢＳ＿ＥＸＴＥＮＤｙのブロック画像ＢＫＮを得る。
【０１２２】
ステップＳ７０１にて拡大近傍画像ＥＮＩおよび拡大遠方画像ＥＦＩを入力する場合、すでに拡大近傍画像ＥＮＩを得ているので、ＥＮＩ（ＮＭＣ＿Ｘ，ＮＭＣ＿Ｙ）を基準とする面積ＢＳ＿ＥＸＴＥＮＤｘ・ＢＳ＿ＥＸＴＥＮＤｙのブロック画像ＢＫＮを得ればよい。
【０１２３】
ステップＳ７０７は、視差補償画像ＰＰＩ（ｘｏｕｔ，ｙｏｕｔ）に取得したブロック画像ＢＫＮを貼り付ける。ここでブロック画像ＢＫＮは拡大近傍画像ＥＮＩから取得されているので、拡大前の近傍画像ＮＩの表示解像度に戻す必要がある。ブロック画像ＢＫＮに対して、Ｘ軸方向にＰＳＡ・ＳＲ倍、Ｙ軸方向にＰＳＡ／ＦＩＤ倍、それぞれ縮小させる。その後、視差補償画像ＰＰＩ（ｘｏｕｔ，ｙｏｕｔ）内における下記の数１．１９で表される貼付け座標位置（ＣＢＣ＿ｘ，ＣＢＣ＿ｙ）に縮小させたブロック画像ＢＫＮを貼り付ける。
【０１２４】
【数１９】
0005812716.tif 000020
【０１２５】
尚、後述する実施例２にて、近傍画像ＮＩおよび遠方画像ＦＩがＦＩＤ／ＰＳＡ倍に画像拡大されている場合は、ステップＳ７０７では画像縮小処理を行なわずに以下の数１．２０で表される貼付け座標位置（ＣＢＣ＿ｘ，ＣＢＣ＿ｙ）に縮小させたブロック画像ＢＫＮを貼り付ける。
【０１２６】
【数２０】
0005812716.tif 000021
【０１２７】
ステップＳ７０８は、Ｘ軸方向探索基準ブロックポインタａｘ、Ｙ軸方向探索基準ブロックポインタａｙの取り得る値の組合せが全て試されたかを判定する。本実施例では３２４×２１６＝６９９８４通り、全て試されたならば、視差補償画像ＰＰＩ（ｘｏｕｔ，ｙｏｕｔ）は完成したのでステップＳ７０９へ処理を進め、全て試されていないのならばステップＳ７０４へ戻る。
【０１２８】
ステップＳ７０９は、本サブフローチャート２の終了を示している。以上が、本サブフローチャート２の説明である。
【０１２９】
ステップＳ４０６は、本処理プログラム１の終了を表す。以上が、本処理プログラム１の説明である。
【０１３０】
以上の説明から明らかなように、本実施例で行なう視差再調節処理では、レフトカメラ画像・ライトカメラ画像を用いて、仮想レフトカメラ画像・仮想レフト画像を生成することで、レフトカメラ画像・ライトカメラ画像に付いている視差を再調節できることわかる。
【０１３１】
又、本実施例で行なう視差ベクトル検出により生成される視差マップを視差補償時に用いることで、従来の視差補償時発生していた補償画像の非参照領域が発生しなくなるため、画質が向上することがわかる。
【０１３２】
尚、視差倍率ＰＭ＝１の場合、数１．３より近傍画像距離ＮＩＤ＝１となる。この場合、数１．１１よりＸ軸方向視差ベクトルΔｘ、およびＹ軸方向視差ベクトルΔｙは共に０になる。数１．１８で示されるオフセットｍｘ・ＮＩＤおよびｍｙ・ＮＩＤも０になり、視差補償画像ＰＰＩ（ｘｏｕｔ，ｙｏｕｔ）は近傍画像ＮＩ（ｘｉｎ，ｙｉｎ）と等しくなる。このため、ステップＳ４０４およびステップＳ４０５の処理を行なわずに、視差補償画像ＰＰＩ（ｘｏｕｔ，ｙｏｕｔ）として近傍画像ＮＩ（ｘｉｎ，ｙｉｎ）を出力してもよい。
【０１３３】
尚、本実施例で用いた平行法両眼視差画像は必ずしも２つないし複数のカメラから取得する必要はない。単一のカメラから任意の視野や焦点に設定された画像を再構築できるものもある。このようなカメラの場合、単一の記録素子上で記録された画像データからも平行法両眼視差画像は生成可能である。このため、本実施例ではそのような単一のカメラを用いて生成された平行法両眼視差画像も使用可能である。
【０１３４】
以上説明したように、本実施例によれば、視差倍率ＰＭが０≦ＰＭ＜∞の範囲における実数値を取ることができるので、異なる２視点から撮像された画像における視差再調節処理において、従来技術では実現できなかった撮像カメラ位置間よりも外側の仮想視点画像を生成することができる。
【０１３５】
（実施例２）
本実施例では視差倍率ＰＭを用いて、交差法にて撮像された両眼視差画像である交差法両眼視差画像の視差をＰＭ倍に再調節する。尚、実施例２の説明において、実施例１と内容が重複する箇所は説明を省略する。
【０１３６】
図８（ａ）を用いて交差法両眼視差画像について定義する。図８は、図１に示３次元空間において、Ｙ軸方向の負から正の方向へ見たときの視点からＸＺ平面１０２を見た模式図である。８０１はレフトカメラであり、両眼視差画像における左目視点の画像を撮像する。８０２はライトカメラであり、両眼視差画像における右目視点の画像を撮像する。８０３はレフトカメラの撮像素子平面に対応するレフトカメラ無限遠方ＸＹ平面である。８０４はライトカメラの撮像素子平面に対応するライトカメラ無限遠方ＸＹ平面である。８０５はオブジェクトである。８０６はレフトカメラ無限遠方ＸＹ平面におけるレフトカメラでのオブジェクトの写像点である。８０７はライトカメラ無限遠方ＸＹ平面におけるライトカメラでのオブジェクトの写像点である。
【０１３７】
交差法両眼視差画像においては、レフトカメラ視点ＰＬとライトカメラ視点ＰＲの関係は、以下の数２．１のとおりとする。尚、数２．１のｄはカメラ視点注視点間距離である（詳細は後述する）。θｐは視点間傾斜半値角である。のθｐ取る値の範囲は０≦θｐ＜π／２である。交差法にて撮像された交差法両眼視差画像は、画像を取得するレフトカメラの視点ＰＬとライトカメラの視点ＰＲとの差、即ち基線距離ａがａ＝２ｄ・ｓｉｎ（θｐ）＝｜ｘＬ−ｘＲ｜、Ｙ軸方向回転角の差ΔθｙがΔθｙ＝２θｐ＝｜θｙＬ−θｙＲ｜で表されるときの両眼視差画像である。
【０１３８】
【数２１】
0005812716.tif 000022
【０１３９】
次に図８（ｂ）を用いて再調節するＰＭ倍の視差について定義する。８０８は仮想レフトカメラであり、再調節された視差を持つ両眼視差画像のうち、左目視点の画像を撮像する。８０９は仮想ライトカメラであり、再調節された視差を持つ両眼視差画像のうち、右目視点の画像を撮像する。８１０は仮想レフトカメラの撮像素子平面に対応する仮想レフトカメラ無限遠方ＸＹ平面である。８１１は仮想ライトカメラの撮像素子平面に対応する仮想ライトカメラ無限遠方ＸＹ平面である。８１２は仮想レフトカメラ無限遠方ＸＹ平面における仮想レフトカメラでのオブジェクトの写像点である。８１３は仮想ライトカメラ無限遠方ＸＹ平面における仮想ライトカメラでのオブジェクトの写像点である。
【０１４０】
交差法両眼視差画像においては、仮想レフトカメラ視点ＰＶＬと仮想ライトカメラ視点ＰＶＲの関係は、以下の数２．２のとおりとする。即ち、ＰＭ倍の視差を再調節することは、レフトカメラの視点ＰＬとライトカメラの視点ＰＲとの基線距離ａがｓｉｎ（ＰＭ・θｐ）／ｓｉｎ（θｐ）倍された位置に位置して、Ｙ軸回転角の差ΔθｙがΔθｙ＝２ＰＭ・θｐ＝｜θｙＶＬ−θｙＶＲ｜と、レフトカメラの視点ＰＬとライトカメラの視点ＰＲに付いている視点間傾斜半値角θｐに対してＰＭ倍された仮想レフトカメラ視点ＰＶＬと仮想ライトカメラ視点ＰＶＲの画像を生成することである。
【０１４１】
【数２２】
0005812716.tif 000023
【０１４２】
尚、本実施例ではａ＝１（ｃｍ）として処理を行なうが、本発明においてａ
の長さを限定するものではない。また、視点間傾斜半値角θｐ＝π／１８０（ｒａｄ）として処理を行なうが、本発明において視点間傾斜半値角θｐの値を限定するものではない。
【０１４３】
視差倍率ＰＭは０≦ＰＭ＜∞の範囲における実数値を取ることができる。視差倍率ＰＭがＰＭ＝０の場合、視点ＰＶＬと視点ＰＶＲの基線距離｜ｘＶＬ−ｘＶＲ｜が｜ｘＶＬ−ｘＶＲ｜＝０となり、Ｙ軸回転角の差ΔθｙがΔθｙ＝０となり、視差が０になる。視差倍率ＰＭが０＜ＰＭ＜１の場合、｜ｘＶＬ−ｘＶＲ｜＜ａとなり、Δθｙ＜２θＰとなり、視差が両眼視差画像よりも小さくなる。視差倍率ＰＭがＰＭ＝１の場合、｜ｘＶＬ−ｘＶＲ｜＝ａとなり、Δθｙ＝２θＰとなり、視差は入力される両眼視差画像と等しくなる。視差倍率ＰＭが１＜ＰＭ＜∞との場合、｜ｘＶＬ−ｘＶＲ｜＞ａとなり、Δθｙ＞２θＰとなり、視差は入力される両眼視差画像よりも大きくなる。
【０１４４】
交差法両眼視差画像における平行法両眼視差画像との違いは、レフトカメラ無限遠方ＸＹ平面８０３とライトカメラ無限遠方ＸＹ平面８０４はレフトカメラとライトカメラの視点間に付いている｜θｙＬ−θｙＲ｜に一致する傾斜を有していることである。それに伴い、写像点８０６と写像点８０７の間にはＺ軸方向の差異が発生する。
【０１４５】
又、レフトカメラ無限遠方ＸＹ平面８０３と仮想レフトカメラ無限遠方ＸＹ平面８１０は、再調節するＰＭ倍の視差に応じて、｜（ＰＭ−１）θｐ｜の角度が付いている。それに伴い、写像点８０６と写像点８１２の間にはＺ軸方向の差異が発生する。
【０１４６】
実施例１で記載した処理は、ＸＹ平面において定義される２次元の画像を用いて視差を検出して、検出した視差を補償するものである。このためＺ軸方向の差異を検出すること、およびＺ軸方向の差異を補償することは、いずれも不可能である。この点において、交差法両眼視差画像の視差再調節処理は平行法両眼視差画像の視差再調節処理よりも難しい。
【０１４７】
図９は、ＣＰＵ３０１が処理する本発明の視差再調節プログラム（以下、本処理プログラム２と略す）を説明するフローチャートである。本フローチャートで表される本処理プログラム２は、通常、外部記憶装置３０７に記録されており、処理を開始するにあたりＣＰＵ３０１が外部記憶装置３０７から読み込んで、ＲＡＭ３０３に展開する。
【０１４８】
ステップＳ９０１は、本処理プログラム２の開始を表す。ステップＳ９０２は、視差倍率ＰＭを設定する。本実施例ではＰＭ＝３とし、入力する両画像データに付いている視差を通常とした場合、通常の３倍に視差を再調節するように設定する。ステップＳ９０３は、視点間傾斜半値角θｐを入力する。
【０１４９】
ステップＳ９０４は、画角θＬｅｎを入力する。画角θＬｅｎは、レフトカメラ８０１およびライトカメラ８０２が撮像時に用いた撮像レンズの画角である。本実施例では広角レンズに分類される画角θＬｅｎ＝π／２（ｒａｄ）とする。また、簡単のため、本実施例ではレフトカメラ８０１の画角θＬｅｎ＿Ｌｅｆｔと、ライトカメラ８０２の画角θＬｅｎ＿Ｒｉｇｈｔは同じとして、共に画角θＬｅｎで表す。また、画角は撮像時のズーム倍率によっても変わる。また、絞り値を設定することで変わる入射瞳径の大きさによっても変わる。本実施例で用いる画角θＬｅｎはズーム倍率・絞り値によるお入射瞳径も考慮したものとして扱う。
【０１５０】
ステップＳ９０５は、投影変換を行ない、レフトカメラ無限遠方ＸＹ平面８０３と、レフトカメラ無限遠方ＸＹ平面８０４を、共通無限遠方ＸＹ平面に投影変換する。
【０１５１】
図１０を用いて共通の無限遠方ＸＹ平面への投影変換方法を説明する。図１０（ａ）は新たに定義するＸ’Ｚ’座標系を用いて図示されるレフトカメラ視点８０１とレフトカメラ無限遠方ＸＹ平面８０３の模式図である。Ｘ’Ｚ’座標系における原点は、ＸＺ座標系と同じ原点１０３である。又、Ｘ’Ｚ’座標系はＸＺ座標系に対してＹ軸回転角が視点間傾斜半値角θＰだけ傾いている。Ｘ’Ｚ’座標系にてＺ軸はｚ’＝−ｘ’／ｔａｎ（θＰ）で表される。また、Ｘ軸は以下の数２．３で表される。
【０１５２】
【数２３】
0005812716.tif 000024
【０１５３】
図１０（ａ）において、１０３はＸＹＺ三次元空間における原点、８０１はレフトカメラ視点、８０３はレフトカメラ無限遠方ＸＹ平面、８０５はオブジェクト、８０６はオブジェクト８０５のレフトカメラ無限遠方ＸＹ平面８０３における写像点、１００１はレフトカメラ無限遠方ＸＹ平面８０３の左側端点、１００２はレフトカメラ無限遠方ＸＹ平面８０３の右側端点、１００３はレフトカメラ無限遠方ＸＹ平面８０３に平行で、原点１０３を含む位置に存在するレフトカメラ有限近傍ＸＹ平面、１００４はレフトカメラ有限近傍ＸＹ平面１００３の左側端点、１００５はレフトカメラ有限近傍ＸＹ平面１００３の右側端点、１００６はオブジェクト８０５のレフトカメラ有限近傍ＸＹ平面１００３における写像点、１００７はＸ軸に平行で、原点１０３を含む位置に存在するレフトカメラ有限近傍投影変換ＸＹ平面、１００８はレフトカメラ有限近傍投影変換ＸＹ平面１００７における写像点、１００９はレフトカメラ有限近傍投影変換ＸＹ平面１００７の左側端点、１０１０はレフトカメラ有限近傍投影変換ＸＹ平面１００７の右側端点、１０１１はレフトカメラ有限近傍投影変換ＸＹ平面１００７の出力画像における左側端点、１０１２はレフトカメラ有限近傍投影変換ＸＹ平面１００７の出力画像における右側端点である。
【０１５４】
レフトカメラ無限遠方ＸＹ平面８０３は撮像素子平面に対応するので、左側端点１００１と右側端点１００２が成す線分の長さは、レフトカメラ画像のＸ軸方向の長さと一致する。
【０１５５】
レフトカメラ有限近傍ＸＹ平面１００３は、レフトカメラ無限遠方ＸＹ平面８０３に平行である。また、レフトカメラ視点８０１・左側端点１００１・右側端点１００２が成す三角形Ｅと、レフトカメラ視点８０１・左側端点１００４・右側端点１００５が成す三角形Ｆは相似であり、相似比はＥ：Ｆ＝∞：ｄである。このレフトカメラ有限近傍ＸＹ平面１００３も撮像素子平面に対応する。レフトカメラ画像のＸ軸方向の長さを２ｗ（ｐｉｘｅｌ）とすると、左側端点１００４と右側端点１００５が成す線分の長さも２ｗである。
【０１５６】
原点１０３をＯ（０，０）、左側端点１００４をＷ（ｗ，０）、写像点１００６をＷ０（ｘｉｎ，ｙｉｎ，ｚｉｎ）、レフトカメラ視点８０１をＤ（０，ｄ）、写像点１００８をＱ（ｘｏｕｔ，ｙｏｕｔ，ｚｏｕｔ）、とする。ｘｉｎの取る値の範囲は−１≦ｘｉｎ≦１、ｙｉｎの取る値の範囲は−１≦ｙｉｎ≦１である。左側端点１００１・左側端点１００４・原点１０３のなす角をθＬと定義する。θＬは以下の数２．４により表される。
【０１５７】
【数２４】
0005812716.tif 000025
【０１５８】
Ｗ（ｗ，０）と  Ｄ（０，ｄ）を結ぶ線分の方程式は以下の数２．５で表される。
【０１５９】
【数２５】
0005812716.tif 000026
【０１６０】
オブジェクト８０５・写像点１００６・原点１０３のなす角をθ０と定義すると、Ｗ０（ｘｉｎ，ｙｉｎ，ｚｉｎ）とＤ（０，ｄ）を結ぶ線分の方程式は以下の数２．６で表される。
【０１６１】
【数２６】
0005812716.tif 000027
【０１６２】
ｚ’＝ｚｉｎ＝０のとき、数２．５と数２．６より、ｄとθ０は以下のように求められる。
【０１６３】
【数２７】
0005812716.tif 000028
【０１６４】
数２．６に数２．７を代入することで数２．８が得られる。
【０１６５】
【数２８】
0005812716.tif 000029
【０１６６】
左側端点１００９と原点１０３を結ぶ線分の方程式は数２．３と一致する。ｘ’＝ｘｏｕｔのとき、数２．３と数２．８はＱ（ｘｏｕｔ，ｙｏｕｔ，ｚｏｕｔ）で交わる。ｘｏｕｔは以下の数２．９のように求められる。
【０１６７】
【数２９】
0005812716.tif 000030
【０１６８】
図１０（ｂ）は、新たに定義するＸ’Ｙ’Ｚ’直交座標系を用いて、三次元空間１０１を表した模式図である。Ｘ’Ｙ’Ｚ’直交座標系における原点は、ＸＹＺ直交座標系と同じ原点１０３である。又、Ｘ’Ｙ’Ｚ’直交座標系はＸＹＺ直交座標系に対してＹ軸回転角が視点間傾斜半値角θＰだけ傾いている。
【０１６９】
１０１３は写像点１００６に対して、Ｘ’座標値、Ｚ’座標値が等しく、Ｙ座標値が０となる点である。１０１４は写像点１００８Ｑ（ｘ’，ｙ’，ｚ’）に対して、Ｘ’座標値、Ｚ’座標値が等しく、Ｙ座標値が０となる点である。１０１５は写像点１００８Ｑ（ｘ’，ｙ’）に対して、Ｚ’座標値が等しく、Ｘ’座標値、Ｙ座標値が０となる点である。
【０１７０】
レフトカメラ視点８０１と写像点１００６を結ぶ線分Ｅと、レフトカメラ視点８０１と写像点１００８を結ぶ線分Ｆの比は、レフトカメラ視点８０１と原点１０３を結ぶ線分と、レフトカメラ視点８０１と点１０１５を結ぶ線分の比に等しい。
【０１７１】
さらに、レフトカメラ視点８０１と原点１０３を結ぶ線分と、レフトカメラ視点８０１と点１０１５を結ぶ線分の比は、原点１０３と写像点１０１３を結ぶ線分と、点１０１５と写像点１０１４を結ぶ線分の比に等しい。
【０１７２】
写像点１００６のｙ座標値をｙｉｎ、写像点１００８のｙ座標値をｙｏｕｔとすると、上記の関係は以下の数２．１０で表すことができる。数２．１０より、ｙｏｕｔはｙｉｎとｘｉｎを用いて表すことができる。
【０１７３】
【数３０】
0005812716.tif 000031
【０１７４】
写像点１００８Ｑ（ｘｏｕｔ，ｙｏｕｔ）は、数２．４、数２．９および数２．１０より、レフトカメラ画像のＸ軸方向の長さを２ｗ、画角θＬｅｎ、視点間傾斜半値角θＰおよびｘｉｎとｙｉｎを用いて表すことができる（尚、Ｑ（ｚｏｕｔ）もｙｉｎとｘｉｎを用いて表すことができるが後の処理で用いないため説明を省略する）。
【０１７５】
【数３１】
0005812716.tif 000032
【０１７６】
ライトカメラに関しては図示しないが、ライトカメラ無限遠方ＸＹ平面８０４からライトカメラ有限近傍投影変換ＸＹ平面を求める場合、数２．３の視点間傾斜半値角θＰを−θＰに置換すればよい。
【０１７７】
即ち、数２．１１において定数である、画角θＬｅｎ（ズーム倍率・絞り値によるお入射瞳径を考慮している）、視点間傾斜半値角θＰ、入力画像のＸ軸方向の長さ２ｗの３つ定数により、レフトカメラ画像の座標値Ｗ０（ｘｉｎ，ｙｉｎ）を入力して、ｚ≡０の投影面への投影変換座標値Ｑ（ｘｏｕｔ，ｙｏｕｔ）を得ることができる。
【０１７８】
レフトカメラ有限近傍投影変換ＸＹ平面１００７と、図示しないライトカメラ有限近傍投影変換ＸＹ平面のＺ軸方向の差異ΔｚはΔｚ≡０となり、これらが共通無限遠方ＸＹ平面となる。Δｚ≡０となる共通の無限遠方ＸＹ平面において、Ｚ軸方向の位置ずれが交差法両眼視差画像対になくなる。このため、２次元の画像同士のテンプレートマッチングにて正確に視差ベクトルを検出することが可能になる。
【０１７９】
上記投影変換を行なうことで得られる座標を図１１に示す。レフトカメラ８０１とライトカメラ８０２は図に示すＣＧチャートに対して、それぞれ視点間傾斜半値角θＰ傾いているので、得られる画像は、画素位置ごとにＸ軸方向・Ｙ軸方向にそれぞれ歪んでいる。これを投影変換することで、歪みのない画像を得る。歪みのない画像同士はオブジェクトのＺ軸方向の距離に応じて記録されるオブジェクトのずれがＸ軸方向にのみ発生する。本実施例において、テンプレートマッチングに先立ち、交差法両眼視差画像対を投影変換するのは、上記に示した理由によるものである。
【０１８０】
図１２を用いてステップＳ９０５における投影変換方法を説明する。図１２は図９中のステップＳ９０５における投影変換処理のフローチャートである。尚、以下の説明では、投影変換処理のフローチャートを本サブフローチャート３と称する。
【０１８１】
本サブフローチャート３に入力する交差法両眼視差画像は、表示解像度、画素のｂｉｔ精度、カラースペース・カラーフォーマット・撮像に用いたレンズの画角θＬｅｎが一致しているものとする。
【０１８２】
又、本実施例では、入力する交差法両眼視差画像は両画像データとも、以下のように記録されているものとする。
【０１８３】
表示解像度：２５９２×１７２８（ｐｉｘｅｌ２）、カラースペース：ＲＧＢ、カラーフォーマット：ＲＧＢ（面順次）、画素のｂｉｔ精度：８（ｂｉｔ）、画角：θＬｅｎ＝π／２（ｒａｄ）
又、以下の処理ステップでは、面順次のＲＧＢフォーマットの画像データの内、Ｒの画像領域だけを用いて行なう。Ｇの画像領域とＢの画像領域については、Ｒの画像領域を用いて行なう処理を同じであるので、説明を省略する。
【０１８４】
又、以下の処理ステップでは、レフトカメラ画像の投影変換について説明する。上述したように、レフトカメラ画像の投影変換とライトカメラの投影変換の違いは、視点間傾斜半値角θＰの正負が異なるだけであるので、ライトカメラ画像の投影変換については説明を省略する。
【０１８５】
ステップＳ１２００は本サブフローチャート３の開始を示している。ステップＳ１２０１はＸ軸方向画像サイズおよびＹ軸方向画像サイズを入力する。本実施例ではＸ軸方向画像サイズ＝２５９２、Ｙ軸方向画像サイズ＝１７２８である。ステップＳ１２０２は画角θＬｅｎを入力する。ステップＳ１２０３は視点間傾斜半値角θＰを入力する。
【０１８６】
ステップＳ１２０４は投影変換傾斜角θＰＰを算出する。Ｓ９０５における投影変換では、以下の数２．１２のように投影変換傾斜角θＰＰを算出する。φは投影変換補正角である。本実施例ではφ＝０とする。
【０１８７】
【数３２】
0005812716.tif 000033
【０１８８】
ステップＳ１２０５はメモリ上に投影正変換座標順参照マップＰｒｏｊＭａｐＩ（ｘ，ｙ）および投影変換座標逆参照マップＰｒｏｊＭａｐＩ（ｘ，ｙ）を生成する。
【０１８９】
ステップＳ１２０６は投影変換座標マップを算出する。入力画像を構成する画素のＸ座標値とＹ座標値の全ての組合せを取り、数２．１１を用いて投影変換後の座標値を算出する。数２．１１はｘ
座標、ｙ座標がそれぞれ−１≦ｘｉｎ≦１、−１≦ｙｉｎ≦１でスケーリングされているので、入力画像の表示解像度にあわせてリスケーリングする。入力画像のＸ軸方向表示解像度をＲｅｓｌ＿ｘ、Ｙ軸方向表示解像度をＲｅｓｌ＿ｙとすると、以下の数２．１３のようにリスケーリングした出力画像の座標値（ｘｒｏｕｔ，ｙｒｏｕｔ）を得る。
【０１９０】
【数３３】
0005812716.tif 000034
【０１９１】
投影変換前の座標値を（ｘｉｎ，ｙｉｎ）、投影変換後の座標値を（ｘｏｕｔ，ｙｏｕｔｎ）とすると、以下の数２．１３により、（ｘｉｎ，ｙｉｎ）から（ｘｒｏｕｔ，ｙｒｏｕｔ）を得る。算出した（ｘｒｏｕｔ，ｙｒｏｕｔ）は（ｘｉｎ，ｙｉｎ）とマッピングして保持する。
【０１９２】
【数３４】
0005812716.tif 000035
【０１９３】
投影正変換座標順参照マップＰｒｏｊＭａｐＦ（ｘ，ｙ）は、入力座標値（ｘｉｎ，ｙｉｎ）を入力して、出力座標値（ｘｒｏｕｔ，ｙｒｏｕｔ）を出力するマップである。ここで、数２．１３の出力座標（ｘｒｏｕｔ，ｙｒｏｕｔ）は小数を取り、出力画素間距離が整数値間隔とならないため、非参照出力座標値が発生する。そのため、出力座標（ｘｏｕｔ，ｙｏｕｔ）を入力として、入力座標値（ｘｉｎ，ｙｉｎ）を出力する投影変換座標逆参照マップＰｒｏｊＭａｐＩ（ｘ，ｙ）を生成することで、非参照出力座標値の発生を抑える。投影変換座標逆参照マップＰｒｏｊＭａｐＩ（ｘ，ｙ）を生成するために、（ｘｉｎ，ｙｉｎ）について数２．１１を解くと、以下の数２．１５で表される投影逆変換関数を得ることができる。
【０１９４】
【数３５】
0005812716.tif 000036
【０１９５】
数２．１５において、（ｘｏｕｔ，ｙｏｕｔ）の取る値の範囲は、−１≦ｘｏｕｔ≦１、−１≦ｙｏｕｔ≦１である。このため、入力画像の表示解像度にあわせてリスケーリングすることで、以下の数２．１６のようにリスケーリングした入力画像の座標値（ｘｒｉｎ，ｙｒｉｎ）を得る。
【０１９６】
【数３６】
0005812716.tif 000037
【０１９７】
投影逆変換関数を用いて算出した（ｘｒｉｎ，ｙｒｉｎ）は（ｘｏｕｔ，ｙｏｕｔ）とマッピングして保持する。
【０１９８】
【数３７】
0005812716.tif 000038
【０１９９】
尚、数２．１１や数２．１５において、ｔａｎ（θＬ）、ｗ・ｔａｎ（θＬ）、ｔａｎ（θＰ）などの定数項は、本ステップの処理の前で算出可能である。予め算出してメモリに保持して、適宜読み込むようにしても良い。また、入力される画像サイズが限定されているなら、投影順変換座標マップＰｒｏｊＭａｐＦ（ｘ，ｙ）および投影逆変換座標マップＰｒｏｊＭａｐＩ（ｘ，ｙ）を予め計算して、メモリに保持して、適宜読み込むようにしても良い。
【０２００】
ステップＳ１２０７は投影変換座標拡大倍率ｅｘ＿ｍａｇを算出する。本実施例の投影変換では、数２．１１や数２．１５から明らかなように、出力画像の画素間距離が入力画像の画素間距離に対して広がる領域と狭まる領域がある。画素間距離が広がる領域に対しては、投影変換により画像拡大処理がなされ、画素間距離が狭まる領域に対しては、画素補間および再標本化処理により画像縮小される。ここで画像縮小が起こる領域は空間周波数特性が、入力画像の対応領域に対して損なわれてしまう。
【０２０１】
そのため、最も画素間距離が狭まる領域における狭まる割合を算出して、投影変換座標値に乗じることで、投影変換後全ての画像領域において画像拡大処理にすることで、入力画像の空間周波数特性を保存する。
【０２０２】
本処理ステップにおける投影変換は、視差再調節画像を出力するためではなく、精度よく視差ベクトルを検出するために行なう処理である。そのため、画像の表示解像度を保存する必要はなく、後に画像の表示解像度を戻すのであれば、画像拡大しても出力画像の表示解像度が変わることはない。
【０２０３】
画素間距離が狭まる割合を縮小率ｒｅｄ、最も画素間距離が狭まる割合を最大縮小率ｍａｘ＿ｒｅｄとする。
【０２０４】
縮小率ｒｅｄは入力画像を構成する画素のＸ座標値とＹ座標値の全ての組合せを取るため、縮小率マップｒｅｄ（ｘ，ｙ）が算出できる。入力画像のｘｙ座標値がｘｍ・ｙｎのとき、  ｒｅｄ（ｘｍ，ｙｎ）は以下の数２．１８で示されるように、投影変換前と後での隣接画素間の距離比となる。
【０２０５】
【数３８】
0005812716.tif 000039
【０２０６】
最大縮小率ｍａｘ＿ｒｅｄは、数２．１８により算出された縮小率マップｒｅｄ（ｘ，ｙ）おける縮小率ｒｅｄの最小値である。最大縮小率ｍａｘ＿ｒｅｄの逆数を投影変換座標拡大倍率ｅｘ＿ｍａｇとして出力する。ｍａｘ＿ｒｅｄ≦１であり、１＜ｘ＿ｍａｇである。尚、ｅｘ＿ｍａｇは小数値であるため、算出されたｅｘ＿ｍａｇよりも大きい整数値でｅｘ＿ｍａｇを置換しても構わない。また、実施例１で説明したように、本発明の視差マップ生成処理ではＦＩＤ／ＰＳＡ倍に画像を拡大させるので、この投影変換時に最大縮小率ｅｘ＿ｍａｇ＝ＦＩＤ／ＰＳＡとしてもよい。
【０２０７】
また、入力される画像サイズが限定されているなら、数２．１１から、変換座標値がわかるため、投影変換処理に先立ちｅｘ＿ｍａｇを算出することも出来るため、メモリに保持して、適宜読み込むようにしても良い。
【０２０８】
ステップＳ１２０８は投影変換座標拡大倍率ｅｘ＿ｍａｇを用いて、投影正変換座標順参照マップＰｒｏｊＭａｐＦ（ｘ，ｙ）および投影変換座標逆参照マップＰｒｏｊＭａｐＩ（ｘ，ｙ）を倍率補正する。出力座標値（ｘｒｏｕｔ，ｙｒｏｕｔ）および入力座標値（ｘｒｉｎ，ｙｒｉｎ）から倍率補正出力座標値（ｘｒｅｏｕｔ，ｙｒｅｏｕｔ）および倍率補正入力座標値（ｘｒｅｉｎ，ｙｒｅｉｎ）を算出する。
【０２０９】
【数３９】
0005812716.tif 000040
【０２１０】
ステップＳ１２０９は投影変換後の出力画像データ領域を生成して初期化する。入力画像データ領域に対してＸ軸・Ｙ軸ともｅｘ＿ｍａｇ倍した領域を生成する。
【０２１１】
ステップＳ１２１０はレフトカメラ画像を入力する。
【０２１２】
ステップＳ１２１１は画像の表示解像度と投影変換後の座標値を（ｘｏｕｔ，ｙｏｕｔ）を比較して、端部判定を行なう。図１０（ａ）に示すように、投影変換後座標値（ｘｏｕｔ，ｙｏｕｔ）には、レフトカメラ有限近傍投影変換ＸＹ平面１００７の出力画像における左側端点１０１１と、レフトカメラ有限近傍投影変換ＸＹ平面１００７の左側端点１００９を結ぶ線分のように、投影変換前に対応する画素がないために投影変換できない領域がある。投影逆変換関数を用いて、この領域を特定する。投影逆変換関数の出力値が画像の表示解像度外の値であった場合、投影変換不能であるとして、ステップ１２１３へ処理を進める。表示解像度内の値であった場合、投影変換可能であるとして、ステップ１２１２へ処理を進める。
【０２１３】
ステップＳ１２１２は投影逆変換関数の出力値（ｘｒｉｎ，ｙｒｉｎ）を用いて、投影変換後の座標値を（ｘｒｅｏｕｔ，ｙｒｅｏｕｔ）に対する画素値を生成する。図１３に示すように、投影変換後の整数値間隔の画素の配置座標位置に対して、（ｘｒｉｎ，ｙｒｉｎ）は小数値を取る。補間においては、最近傍補間法を用いる場合は、ｘｒｉｎ，ｙｒｉｎを絶対値が最も近い整数値に変換する。絶対値が最も近い整数値に変換したｘｒｉｎ，ｙｒｉｎの位置にある画素値を（ｘｒｏｕｔ，ｙｒｏｕｔ）に貼り付ける。
【０２１４】
最近傍補間法以外にもバイリニア補間法やバイキュービック補間法などを用いても良い。
【０２１５】
図１３ではバイキュービック補間法における入力画素の選定方法を図示している。図１３において、Ｄで表される出力座標値に対して、対応する小数精度の（ｘｒｉｎ，ｙｒｉｎ）が取得できる。絶対値が最も近い整数値に（ｘｒｉｎ，ｙｒｉｎ）を変換することで図１３における（ｘｒｉｎ，ｙｒｉｎ）で示される入力画素を特定する。特定された入力画素を用いてＣで示される近傍１６点を選定することで、Ｄをバイキュービック補間するための入力画素を得る。
【０２１６】
生成した（ｘｒｏｕｔ，ｙｒｏｕｔ）に対応する画素から、数２．１９により画像を補間して画像を拡大させる。この時も上記説明した画素補間法を適用することが出来る。
【０２１７】
ステップＳ１２１３は、入力ｘ座標値、入力ｙ座標値の取り得る値の組合せが全て試されたかを判定する。本実施例では２５９２×１７２８＝４４７８９７６通り、全て試されたならば、投影変換処理は完成したのでステップＳ１２１４へ処理を進め、全て試されていないのならばステップＳ１２１１へ戻る。ステップＳ１２１４は本サブフローチャート３の終了を示している。
【０２１８】
以上が、本サブフローチャート３の説明である。
【０２１９】
ステップＳ９０６は、画像探索比ＳＲを算出する。画像探索比ＳＲは、近傍画像距離ＮＩＤと遠方画像距離ＦＩＤの比である。図１４を用いて実施例２における近傍画像距離ＮＩＤおよび遠方画像距離ＦＩＤの算出方法を説明する。
【０２２０】
１４０１はライトカメラ有限近傍ＸＹ平面、１４０２は仮想レフトカメラ有限近傍ＸＹ平面、１４０３はライトカメラ有限近傍ＸＹ平面におけるオブジェクト８０５の写像点、１４０４は共通有限近傍ＸＹ平面（レフトカメラ有限近傍投影変換ＸＹ平面１００７に等しく、図示しないライトカメラ有限近傍投影変換ＸＹ平面に等しい）におけるライトカメラ視点からオブジェクト８０５の写像点、１４０５は仮想レフトカメラ有限近傍ＸＹ平面１４０２におけるオブジェクト８０５の写像点、１４０６は共通有限近傍ＸＹ平面における仮想レフトカメラ視点からオブジェクト８０５の写像点、１４０７はレフトカメラ視点補正位置、１４０８はライトカメラ視点補正位置である。
【０２２１】
共通有限近傍ＸＹ平面において、オブジェクト８０５がレフトカメラ視点８０１からは写像点１００８に、ライトカメラ視点８０２からは写像点１４０４にそれぞれ写像されるとき、仮想レフトカメラ視点８０８からは写像点１４０６に写像される。そのため、視差マップ生成処理においては、写像点１４０６に探索基準位置を設定したとき、近傍画像距離ＮＩＤ：遠方画像距離ＦＩＤ＝｜写像点１４０６−写像点１００８｜：｜写像点１４０６−写像点１４０４｜となるように、画像探索比ＳＲを設定することで、写像点１４０６を基準とする視差ベクトル検出ができる。
【０２２２】
この近傍画像距離ＮＩＤ：遠方画像距離ＦＩＤを、各カメラの配置座標を用いて算出する。交差法両眼視差画像における画像探索比ＳＲを求める上で注意すべき点は、仮想レフトカメラ視点８０８はレフトカメラ視点８０１とライトカメラ視点８０２に対してＺ軸方向に位置ずれが生じている点である。そこで、写像点１４０６と仮想レフトカメラ視点８０８を通る直線において、レフトカメラ視点８０１のＺ軸方向座標値と等しくなる位置に、仮想レフトカメラ視点補正位置１４０７を設定する。
【０２２３】
ここで、近傍画像距離ＮＩＤ：遠方画像距離ＦＩＤ＝｜写像点１４０６−写像点１００８｜：｜写像点１４０６−写像点１４０４｜＝｜仮想レフトカメラ視点補正位置１４０７−レフトカメラ視点８０１｜：｜仮想レフトカメラ視点補正位置１４０７−ライトカメラ視点８０２｜であることから、近傍画像距離ＮＩＤ、遠方画像距離ＦＩＤ、および画像探索比ＳＲを算出する。
【０２２４】
写像点１４０６をＷ０（ｘｒｉｎ，０）とする。Ｗ０（ｘｒｉｎ，０）とＰＶＬ（ｘＶＬ，ｚＶＬ）を通る直線の関数は、数２．１および数２．２の定義を用いて以下の数２．２０で表すことができる。
【０２２５】
【数４０】
0005812716.tif 000041
【０２２６】
仮想レフトカメラ視点補正位置１４０７をＰＶＬ（ｘＰＶＬＰ，ｚＰＶＬＰ）とすると、これは数２．２０で示される直線の関数上に存在する。ｚＰＶＬＰの＝ＺＬ＝ＺＲ＝ｄ・ｃｏｓ（θＰ）
とき、ｘＰＶＬＰは以下の数２．２１で表すことができる。
【０２２７】
【数４１】
0005812716.tif 000042
【０２２８】
数２．４で求められたθＬ＝π／２＋θＬｅｎ／２、数２．７で求められたｄ＝−ｗ・ｔａｎ（θＬ）、および数２．２１で求められたｘＰＶＬＰを用いて、近傍画像距離ＮＩＤ：遠方画像距離ＦＩＤは以下の数２．２２のように求めることが出来る。
【０２２９】
【数４２】
0005812716.tif 000043
【０２３０】
数２．２２から明らかなように、交差法両眼視差画像の視差ベクトル検出では、画像探索比ＳＲが探索基準位置（写像点１４０６）ｘｒｉｎに依存する。このため、探索比マップＳＲＭＡＰ（ｘ）を生成して、全てのｘ座標値における画像探索比ＳＲを算出する。
【０２３１】
尚、数２．２２において、ｔａｎ（θＬ）、ｃｏｓ（θＰ）などの定数項は、本ステップの処理の前で算出可能なので、メモリに保持して適宜読み込むようにしても良い。また、入力される画像サイズ・視点間傾斜半値角θＰ・視差倍率ＰＭが限定されているなら、探索比マップＳＲＭＡＰ（ｘ）は予め計算可能であるため、メモリに保持して適宜読み込むようにしても良い。
【０２３２】
また、数２．２２で表される画像探索比ＳＲは、従来法の視差補償において視差ベクトルから補償画素位置を算出する際の補正倍率に相当する。従来法の視差ベクトル検出では、写像点１００８と写像点１４０４がマッチングすると、レフトカメラ視点８０１と写像点１００８を結ぶ直線の関数と、ライトカメラ視点８０２と写像点１４０４を結ぶ直線の関数の交点であるオブジェクト８０５の座標値を求めて、オブジェクト８０５と仮想レフトカメラ視点８０８を結ぶ直線の関数において、写像点１４０６を算出することが可能である。この写像点１４０６の座標値を算出することが、本発明における画像探索比ＳＲを算出することに相当する。
【０２３３】
従来の視差ベクトル検出では、写像点１４０６の座標値の算出をマップ化すると、探索の単位であるブロックの個数とブロックあたりの探索回数の積のオーダーになる。これに対して探索比マップＳＲＭＡＰ（ｘ）は、ブロックの個数分だけ持てばよい。本実施例では、ブロックあたりの探索回数２４なので、マップの面積を１／２４にできる。
【０２３４】
尚、実施例１同様に、実施例２でもＮＩＤとＦＩＤは最も単純な整数の比で表すように値を修正する。これは画像データが離散化されていることに起因する。連続データとして画像データを扱える環境であれば、値を修正する必要は無い。
【０２３５】
ステップＳ９０７は、ステップＳ９０５により共通無限遠方ＸＹ平面に投影変換された左目視点の画像および右目視点の画像を用いて、視差ベクトル検出を行ない、視差マップを生成する。投影変換された近傍画像における、探索基準ブロック座標とＮＩＤとに応じたブロック画像と、投影変換された遠方画像における、該探索基準ブロック座標とＦＩＤに応じたブロック画像とを用いて、探索基準ブロック座標に対応する視差ベクトルを決定する。本処理は実施例１で説明した処理と一致するので、本実施例では説明を省略する。
【０２３６】
ステップＳ９０８は、視差マップＰＭＡＰ（ａｘ，ａｙ）と投影変換後交差法両眼視差画像を入力して、視差補償を行なうことで、仮想レフトカメラ視点ＰＶＬ用補償画像と仮想ライトカメラ視点ＰＶＲ補償画像を生成する。本処理は実施例１で説明した処理と一致するので、本実施例では説明を省略する。
【０２３７】
ステップＳ９０９は、仮想レフトカメラ視点ＰＶＬ用補償画像を投影変換して仮想レフトカメラ視点ＰＶＬ画像を生成する。図１５を用いて実施例２における処理パイプラインにおける本ステップの処理の位置付けを説明する。
【０２３８】
図１５において、１５０１はレフトカメラ有限近傍投影変換ＸＹ平面１００７（図示しないライトカメラ有限近傍投影変換ＸＹ平面と一致する共通有限近傍ＸＹ平面）上における、写像点１００８を視差補償した視差補償写像点、１５０２は仮想レフトカメラ有限近傍投影変換ＸＹ平面、１５０３は仮想レフトカメラ有限近傍投影変換ＸＹ平面１５０２における視差補償写像点である。
【０２３９】
レフトカメラ８０１は視点間傾斜半値角θＰ傾いており、レフトカメラ無限遠方ＸＹ平面８０３において写像点８０６にオブジェクト８０５を写像する。
【０２４０】
オブジェクト８０５はレフトカメラ有限近傍ＸＹ平面１００３において、写像点１００６に写像される。
【０２４１】
ステップＳ９０５における投影変換により、生成されるレフトカメラ有限近傍投影変換ＸＹ平面１００７において、写像点１００６は写像点１００８へ写像される。
【０２４２】
レフトカメラ有限近傍投影変換ＸＹ平面１００７において、写像点１００８は視差ベクトル検出により、視差補償写像点１５０１の探索基準位置においてマッチングする。マッチングにより算出された視差ベクトルを用いた視差補償により、写像点１００８は視差補償写像点１５０１に補償される。
【０２４３】
視点間傾斜半値角θＰのＰＭ倍反対側に傾くように、レフトカメラ有限近傍投影変換ＸＹ平面１００７を投影変換することで、仮想レフトカメラ有限近傍投影変換ＸＹ平面１５０２の写像面を生成する。これにより視差補償写像点１５０１は視差補償写像点１５０３へ写像される。
【０２４４】
仮想レフトカメラ有限近傍投影変換ＸＹ平面１５０２は仮想レフトカメラ無限遠方ＸＹ平面８１０に対応する写像面なので、視差補償写像点１５０３は写像点８１２に写像することが出来る。
【０２４５】
ステップＳ９０９は、この実施例２における処理パイプラインのうち、視点間傾斜半値角θＰの−ＰＭ倍傾けることで、仮想レフトカメラ有限近傍投影変換ＸＹ平面１５０２からレフトカメラ有限近傍ＸＹ平面１００７を生成するための投影変換処理に相当する。
【０２４６】
図１６の処理フローチャート図を用いてステップＳ９０９における投影変換方法を説明する。尚、以下の説明では、投影変換処理のフローチャートを本サブフローチャート４と称する。
【０２４７】
ステップＳ１６００は本サブフローチャート４の開始を示している。ステップＳ１６０１はＸ軸方向画像サイズおよびＹ軸方向画像サイズを入力する。本実施例ではＸ軸方向画像サイズ＝２５９２、Ｙ軸方向画像サイズ＝１７２８である。ステップＳ１６０２はステップＳ１２０２と処理が同じなので説明を省略する。ステップＳ１６０３はステップＳ１２０３と処理が同じなので説明を省略する。ステップＳ１６０４は視差倍率ＰＭを入力する。
【０２４８】
ステップＳ１６０５は投影変換傾斜角θＰＰを算出する。以下の数２．２３のように投影変換傾斜角θＰＰを算出する。φは投影変換補正角である。本実施例ではφ＝０とする。
【０２４９】
【数４３】
0005812716.tif 000044
【０２５０】
ステップＳ１６０６はステップＳ１２０５と処理が同じなので説明を省略する。ステップＳ１６０７はステップＳ１２０６と処理が同じなので説明を省略する。ステップＳ１６０８はステップＳ１２０７で算出した投影変換座標拡大倍率ｅｘ＿ｍａｇを入力する。
【０２５１】
ステップＳ１６０９は投影変換座標拡大倍率ｅｘ＿ｍａｇを用いて、投影正変換座標順参照マップＰｒｏｊＭａｐＦ（ｘ，ｙ）および投影変換座標逆参照マップＰｒｏｊＭａｐＩ（ｘ，ｙ）を倍率補正する。
【０２５２】
【数４４】
0005812716.tif 000045
【０２５３】
ステップＳ１６１０は投影変換後の出力画像データ領域を生成して初期化する。入力画像データ領域と面積が一致する領域を生成する。ステップＳ１６１１は仮想レフトカメラ視点ＰＶＬ用補償画像を入力する。ステップＳ１６１２はステップＳ１２１１と処理が同じなので説明を省略する。ステップＳ１６１３はステップＳ１２１２と処理が同じなので説明を省略する。ステップＳ１６１４はステップＳ１２１３と処理が同じなので説明を省略する。ステップＳ１６１５は本サブフローチャート４の終了を示している。
【０２５４】
以上が、本サブフローチャート４の説明である。
【０２５５】
ステップＳ９１０は、本処理プログラム２の終了を表す。以上が、本処理プログラム２の説明である。
【０２５６】
ここで、ステップＳ９０５における投影変換とステップＳ９０９における投影変換について補足説明を行なう。ステップＳ９０５において、レフトカメラ有限近傍ＸＹ平面１００３は、視点間傾斜半値角θＰ傾いたレフトカメラ有限近傍ＸＹ平面１００７に投影変換するが、θＰに限定して投影変換する必要は無く、投影変換補正角φを用いて数２．１２にように投影変換してよい。
【０２５７】
又、ステップＳ９０９においてもＰＭ・θＰに限定して投影変換する必要は無く、投影変換補正角φを用いて数２．２３にように投影変換してよい。
【０２５８】
ステップＳ９０５とステップＳ９０９の２回の投影変換により、最終的に視点間傾斜半値角θＰのＰＭ倍の傾斜が付けばよい。
【０２５９】
以上の説明から明らかなように、本実施例で行なう視差再調節処理では、レフトカメラ画像・ライトカメラ画像を用いて、仮想レフトカメラ画像・仮想レフト画像を生成することで、レフトカメラ画像・ライトカメラ画像に付いている視差を再調節できることわかる。
【０２６０】
又、本実施例で行なう視差ベクトル検出により生成される視差マップを視差補償時に用いることで、従来の視差補償時発生していた補償画像の非参照領域が発生しなくなるため、画質が向上することがわかる。
【０２６１】
又、本実施例で行なう交差法両眼視差画像への投影変換により、交差法両眼視差画像間のオブジェクトのＺ軸方向の位置ずれがなくなり、正確に視差ベクトルが検出できるため、立体視に好適な画像を視聴可能となることがわかる。
【０２６２】
又、本実施例で行なう視差補償画像への投影変換により、視差再調節画像におけるオブジェクトのＺ軸方向の位置ずれを再現可能となるため、立体視に好適な画像を視聴可能となることがわかる。
【０２６３】
尚、視差倍率ＰＭ＝１の場合、数２．２２より近傍画像距離ＮＩＤ＝０となる。この場合、
数１．１１よりＸ軸方向視差ベクトルΔｘ、およびＹ軸方向視差ベクトルΔｙは共に０になる。数１．１８で示されるオフセットｍｘ・ＮＩＤおよびｍｙ・ＮＩＤも０になり、視差補償画像ＰＰＩ（ｘｏｕｔ，ｙｏｕｔ）は近傍画像ＮＩ（ｘｉｎ，ｙｉｎ）と等しくなる。このため、ステップＳ４０４およびステップＳ４０５の処理を行なわずに、視差補償画像ＰＰＩ（ｘｏｕｔ，ｙｏｕｔ）として近傍画像  ＮＩ（ｘｉｎ，ｙｉｎ）を出力してもよい。
【０２６４】
又、数２．１２と数２．２３よりレフトカメラ視点位置と仮想レフトカメラ視点位置は同じになる。このため、仮想レフト視点画像としてレフト視点画像を出力してもよい。
【０２６５】
尚、本実施例で用いた交差法両眼視差画像は必ずしも２つないし複数のカメラから取得する必要はない。たとえば、特開２００９−１２４２１３号に記載されているように、単一の記録素子上で記録された画像データから両眼視差画像は生成可能である。このため、本実施例ではそのような単一のカメラを用いて生成された両眼視差画像も使用可能である。
【０２６６】
（実施例３）
本実施例では視差倍率ＰＭを用いて、交差法にて撮像された両眼視差画像である交差法両眼視差画像の視差をＰＭ倍に再調節する。尚、実施例３の説明において、実施例１および実施例２と内容が重複する箇所は説明を省略する。
【０２６７】
数２．２２において、近傍画像距離ＮＩＤ：遠方画像距離ＦＩＤは入力Ｘ軸方向座標値ｘｒｉｎにより変わる。離散空間である画像に対して近傍画像距離ＮＩＤ：遠方画像距離ＦＩＤに基づいて処理を行なうために、Ｘ軸方向座標値ｘｒｉｎごとに倍率を設定して拡大補間した画像を生成して、これを視差ベクトル検出に用いる。
【０２６８】
又、Ｘ軸方向座標値ｘｒｉｎごとに倍率を設定して拡大補間した画像を生成するのではなく、Ｘ軸方向の一定領域ごとに、Ｘ軸方向座標値ｘｒｉｎの代表値を数２．２２に入力して得られた近傍画像距離ＮＩＤ：遠方画像距離ＦＩＤに基づいて、Ｘ軸方向の一定領域内ではその近傍画像距離ＮＩＤ：遠方画像距離ＦＩＤと、Ｘ軸方向座標値ｘｒｉｎの代表値による倍率を設定して拡大補間した画像を生成して、これを視差ベクトル検出に用いてもよい。
【０２６９】
又、実施例２における数２．２２を用いて算出される近傍画像距離ＮＩＤ：遠方画像距離ＦＩＤが、実施例１における数１．４を用いて算出される近傍画像距離ＮＩＤ：遠方画像距離ＦＩＤと比べて、Ｘ軸方向座標値  ｘｒｉｎごとに探索比率の変化が微小であるとき、数１．４を用いて算出される近傍画像距離ＮＩＤ：遠方画像距離ＦＩＤを用いて視差ベクトル検出に用いてもよい。
【０２７０】
（実施例４）
本実施例では視差倍率ＰＭを用いて、交差法にて撮像された両眼視差画像である交差法両眼視差画像の視差をＰＭ倍に再調節する。尚、実施例５の説明において、実施例１、実施例２、実施例３および実施例４と内容が重複する箇所は説明を省略する。
【０２７１】
図１０において、視点間傾斜半値角θＰが小さいとき、写像点１００６と写像点１００８のＸ軸方向の差異およびＺ軸方向の差異は微小となる。この場合、図９における入力画像対投影変換ステップＳ９０５は行なわずに図で表される本処理プログラム２を実行する。
【０２７２】
（実施例５）
図４で示した構成は本処理プログラム１は撮像装置などのハードウェアとして構成してもよい。この場合、この本処理プログラム１は、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）等の電子回路に実装されることになる。そして、この撮像装置などのハードウェアが有するＣＰＵに相当する制御部がこのＬＳＩ等の電子回路を実行することで、対応する機能部の機能を実現することができる。
【０２７３】
図１７は２眼の撮像装置を表す模式図である。図１７において、１７００は撮像装置本体、１７０１は第一の交換レンズ、１７０２は第二の交換レンズ、１７０３は第一の撮像素子、１７０４は第二の撮像素子、１７０５はＣＰＵ、１７０６はＲＯＭ、１７０７はＲＡＭ、１７０８はＩ／Ｆ部、１７０９は信号処理部、１７１０は信号バス、１７１１はビデオ駆動部、１７１２は電源部である。
【０２７４】
撮像素子本体１７００は内部に有する電源部１７１２より供給される電気を用いて、内部に有する他の処理部に適宜通電させることで起動および稼動させることができる。ＣＰＵ１７０５は、第一の撮像素子１７０３、第二の撮像素子１７０４、ＲＯＭ１７０６、ＲＡＭ１７０７、Ｉ／Ｆ部１７０８および信号処理部１７０９など、撮像素子本体１７００の内部の他の処理部と画像データ信号や制御信号を授受し、必要に応じてデータの演算を行なうことができる。信号バス１７１０は、撮像素子本体１７００の内部の処理部間の画像データ信号や制御信号のバスである。第一の交換レンズ１７０１で集光された光は第一の撮像素子１７０３の平面上に照射され光電変換により電圧に変換される。変換された電圧は設定された量子化閾値により量子化され、画像信号データに変換される。第二の交換レンズ１７０２で集光された光は第二の撮像素子１７０４の平面上に照射され光電変換により電圧に変換される。変換された電圧は設定された量子化閾値により量子化され、画像信号データに変換される。
【０２７５】
Ｉ／Ｆ部１７０８は、ユーザーによる操作を受付け、又はユーザーに図示しないＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）などを用いて撮像素子本体１７００内部で処理したデータを表示することが出来る。又、また図示しない外部記憶装置から画像データを読み込むことが出来る。ＲＯＭ１７０６は、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）やＯＳなどの基本ソフトや基本ソフトにコールされて起動する応用ソフトが記録されている。これら基本ソフトや応用ソフトは撮像素子本体１７００の起動時にＣＰＵ１７０５によって、ＲＡＭ１７０７に展開され、プログラム処理が行なわれる。
【０２７６】
ＲＡＭ１７０７は、撮像素子本体１７００が稼働中に変更され得るデジタルデータを一時保存する領域である。画像信号データも一時的にＲＡＭ１７０７に保存される。信号処理部１７０９は、ＲＡＭ１７０７から画像データを読み込んで、様々な画像処理を行なうＬＳＩである。図４で示した構成は、この信号処理部１７０９に実装される。ビデオ駆動部１７１１は、図示しない外部記憶装置へ信号処理部１７０９で画像処理された画像データを蓄積する。
【０２７７】
図１８は、信号処理部１７０９にて実装される本発明の信号処理の処理ブロック図である。１８０１は視差倍率設定手段である。１８０２は平行法探索比率算出部である。１８０３は視差マップ生成部である。１８０４は視差補償部である。視差倍率設定手段１８０１は視差倍率ＰＭを設定する。Ｉ／Ｆ部１７０８からユーザーによる入力でもいいし、ＲＯＭ１７０６に予め記録されている値を用いて視差倍率ＰＭとしてもよい。平行法探索比率算出部１８０２は視差倍率ＰＭを入力して、数１．４を用いることで、探索比率ＳＲ、近傍画像距離ＮＩＤ：遠方画像距離ＦＩＤを算出する。
【０２７８】
視差マップ生成部１８０３は平行法両眼視差画像対と探索比率ＳＲ、近傍画像距離ＮＩＤ：遠方画像距離ＦＩＤを入力して、図５で示した本サブフローチャート１が実装された電子回路上で画像処理を行なうことで、視差マップを生成する。視差補償部１８０４は平行法両眼視差画像対と視差マップを入力して、図７で示した本サブフローチャート２が実装された電子回路上で画像処理を行なうことで、視差補償画像を生成する。
【０２７９】
尚、本実施例で用いた平行法両眼視差画像は必ずしも２つのレンズおよび撮像素子を用いて取得する必要はない。特許文献２では、単一のカメラから任意の視野や焦点に設定された画像を再構築できると書かれており、単一の記録素子上で記録された画像データからも平行法両眼視差画像は生成可能である。このため、本実施例ではそのようなカメラを用いて生成された平行法両眼視差画像も使用可能である。
【０２８０】
（実施例６）
図９で示した構成は本処理プログラム２は撮像装置などのハードウェアとして構成してもよい。この場合、この本処理プログラム１は、ＬＳＩ等の電子回路に実装されることになる。そして、この撮像装置などのハードウェアが有するＣＰＵに相当する制御部がこのＬＳＩ等の電子回路を実行することで、対応する機能部の機能を実現することができる。      
【０２８１】
図１７は２眼の撮像装置を表す模式図である。装置構成は実施例５と同じなので説明を省略する。図１９は、信号処理部１７０９にて実装される本発明の信号処理の処理ブロック図である。１９０１は視差倍率設定手段である。１９０２は画像表示解像度入力手段である。１９０３はレンズ画角入力手段である。１９０４は視点間傾斜半値角入力手段である。１９０５は入力画像対射影変換部である。１９０６は交差法探索比率算出部である。１９０７は視差マップ生成部である。１９０８は視差補償部である。１９０９は視差補償画像対射影変換部である。視差倍率設定手段１９０１は実施例５と処理内容が同じなので説明を省略する。画像表示解像度入力手段１９０２は入力される画像のＸ軸方向解像度およびＹ軸方向解像度を入力する。ＲＯＭ１７０６に予め記録されている値を用いて入力する。
【０２８２】
レンズ画角入力手段１９０３はレンズ画角θＬｅｎを入力する。ＲＯＭ１７０６に予め記録されている値を用いて入力する。第一の交換レンズ１７０１と第二の交換レンズ１７０２のレンズ情報を入力するようにしてもいい。
【０２８３】
視点間傾斜半値角入力手段１９０４は視点間傾斜半値角θＰを入力する。ＲＯＭ１７０６に予め記録されている値を用いて入力する。第一の交換レンズ１７０１と第二の交換レンズ１７０２が成す傾きを入力するようにしてもいい。
【０２８４】
入力画像対射影変換部１９０５は画像のＸ軸方向解像度およびＹ軸方向解像度、レンズ画角θＬｅｎ、視点間傾斜半値角θＰおよび交差法両眼視差画像対を入力して、図１２で示した本サブフローチャート３が実装された電子回路上で画像処理を行なうことで、投影変換を行なう。
【０２８５】
交差法探索比率算出部１９０６は画像のＸ軸方向解像度およびＹ軸方向解像度、レンズ画角θＬｅｎ、視点間傾斜半値角θＰ、および視差倍率ＰＭを入力して、数２．２２を用いることで、探索比率ＳＲ、近傍画像距離ＮＩＤ：遠方画像距離ＦＩＤを算出する。視差マップ生成部１９０７は実施例５と処理内容が同じなので説明を省略する。視差補償部１９０８は実施例５と処理内容が同じなので説明を省略する。視差補償画像対射影変換部１９０９は画像のＸ軸方向解像度およびＹ軸方向解像度、レンズ画角θＬｅｎ、視点間傾斜半値角θＰ、および視差倍率ＰＭおよび仮想レフトカメラ視点ＰＶＬ用補償画像および仮想ライトカメラ視点ＰＶＲ用補償画像を入力して、図１６で示した本サブフローチャート４が実装された電子回路上で画像処理を行なうことで、投影変換を行ない、仮想レフトカメラ視点ＰＶＬ画像および仮想ライトカメラ視点ＰＶＲ画像を生成する。
【０２８６】
尚、本実施例で用いた交差法両眼視差画像は必ずしも２つのレンズおよび撮像素子を用いて取得する必要はない。特許文献２では、単一のカメラから任意の視野や焦点に設定された画像を再構築できると書かれており、単一の記録素子上で記録された画像データからも交差法両眼視差画像は生成可能である。このため、本実施例ではそのようなカメラを用いて生成された交差法両眼視差画像も使用可能である。
【０２８７】
（実施例７）
本実施例では視差倍率ＰＭを用いて、平行法により撮像された両眼視差画像である平行法両眼視差画像の視差をＰＭ倍に再調節する。尚、本実施例の説明において、実施例１と同一の構成については説明を省略する。
【０２８８】
図２０は、実施例７における視差ベクトル検出処理（Ｓ４０４）のフローチャートである。尚、以下の説明では、視差ベクトル検出処理のフローチャートを本サブフローチャート５と称する。
【０２８９】
ステップＳ２００３は、テンプレートマッチングにおける基準マッチング処理条件を設定する。図２１は、実施例６における探索基準条件設定処理のフローチャートを示す。尚、以下の説明では、視差ベクトル検出処理のフローチャートを本サブフローチャート６と称する。
【０２９０】
ステップＳ２１００は、本サブフローチャート６の開始を示している。ステップＳ２１０１は、テンプレートマッチングにおけるＸ軸方向基準ブロックサイズＢＳ＿ＢＡＳＩＣｘ、Ｙ軸方向基準ブロックサイズＢＳ＿ＢＡＳＩＣｙを入力する。本実施例では、ＢＳ＿ＢＡＳＩＣｘ＝８およびＢＳ＿ＢＡＳＩＣｙ＝８である。
ステップＳ２１０２は、テンプレートマッチングにおけるピクセル探索精度ＰＳＡを入力する。本実施例ではＰＳＡ＝０．５である。
【０２９１】
ステップＳ２１０３は、ｚ軸方向の処理対象深度長ＤｅｐｔｈＬｅｎｇｔｈを入力する。処理対象深度長ＤｅｐｔｈＬｅｎｇｔｈは撮像レンズの光軸に対して平行な線分の長さである。被写界深度同様に、ｚ軸方向において中心被写体を基準とした、所定の範囲を設定することが好ましい。
【０２９２】
ここで被写界深度とは、物側のピント面が存在する中心被写体距離に対して、よりレンズ近傍にある前側被写界深度ＤｏｆＮと、よりレンズ遠方にある後側被写界深度ＤｏｆＦによって定義される撮影深度方向の距離を示している。前側被写界深度ＤｏｆＮは数６．１、後側被写界深度ＤｏｆＦは数６．２で示される。数６．１および数６．２において、ｆは撮像レンズの焦点距離、ａは中心被写体距離、ＦはＦナンバー、εは許容錯乱円直径を示している。本実施例では、ｆ＝３０．２３４ｍｍ、ａ＝１ｍ、Ｆ＝２０．５およびε＝０．０３ｍｍとする。数６．１および数６．２にこれらの値を代入することで前側被写界深度ＤｏｆＮ＝０．４４４ｍ、後側被写界深度ＤｏｆＦ＝０．４８７ｍが得られる。
【０２９３】
【数４５】
0005812716.tif 000046
【０２９４】
【数４６】
0005812716.tif 000047
【０２９５】
処理対象深度長ＤｅｐｔｈＬｅｎｇｔｈは、前側被写界深度ＤｏｆＮと後側被写界深度ＤｏｆＦを用いて数６．３で示される。数６．３において、ｗｎおよびｗｆは補正倍率であり、それぞれ
【０２９６】
【数４７】
0005812716.tif 000048
【０２９７】
【数４８】
0005812716.tif 000049
【０２９８】
の範囲の値を取る。本実施例ではｗｎ＝１、ｗｆ＝１とし、処理対象深度長ＤｅｐｔｈＬｅｎｇｔｈ＝０．９３１ｍとする。
【０２９９】
【数４９】
0005812716.tif 000050
【０３００】
尚、本実施例では、レフト視点カメラとライト視点カメラにて用いている撮像レンズより算出される被写界深度をもとに処理対象深度長ＤｅｐｔｈＬｅｎｇｔｈを設定するが、本発明は処理対象深度長ＤｅｐｔｈＬｅｎｇｔｈとしてどの範囲を設定するかを限定するものではない。
【０３０１】
ステップＳ２１０４は、処理対象深度長ＤｅｐｔｈＬｅｎｇｔｈを用いて、Ｘ軸方向基準探索範囲最小値ＳＳ＿ＢＡＳＩＣ＿ＭＩＮｘおよびＸ軸方向基準探索範囲最大値ＳＳ＿ＢＡＳＩＣ＿ＭＡＸｘを設定する。
Ｘ軸方向基準探索範囲最小値ＳＳ＿ＢＡＳＩＣ＿ＭＩＮｘおよびＸ軸方向基準探索範囲最大値ＳＳ＿ＢＡＳＩＣ＿ＭＡＸｘは、Ｘ軸方向の探索範囲をＳＳ＿ＢＡＳＩＣ＿ＭＩＮｘ以上かつＳＳ＿ＢＡＳＩＣ＿ＭＡＸｘ以下に指定する。
【０３０２】
探索範囲に０を含めて探索することは、無限遠方にマッチングするオブジェクトが存在することを想定して探索することである。ここでは、ｚ軸方向においてマッチングする可能性が高い範囲を予め想定して、その範囲内に一致する場合だけ探索するように、Ｘ軸方向基準探索範囲最小値ＳＳ＿ＢＡＳＩＣ＿ＭＩＮｘおよびＸ軸方向基準探索範囲最大値ＳＳ＿ＢＡＳＩＣ＿ＭＡＸｘを用いる。
【０３０３】
図２２を用いて、Ｘ軸方向拡張探索範囲最小値ＳＳ＿ＥＸＴＥＮＤ＿ＭＩＮｘおよびＸ軸方向拡張探索範囲最大値ＳＳ＿ＥＸＴＥＮＤ＿ＭＡＸｘの設定方法を説明する。図２２は、Ｙ軸方向の負から正の方向へ見たときのＸＺ平面１０２を表した図である。
【０３０４】
１０３は原点Ｏである。２０１はレフトカメラであり、同一の座標位置に撮像レンズの主点があるとする。２０２はライトカメラであり、同一の座標位置に撮像レンズの主点があるとする。２０７は仮想レフトカメラであり、同一の座標位置に撮像レンズの主点があるとする。
【０３０５】
本実施例では、レフトカメラ２０１、ライトカメラ２０２および仮想レフトカメラ２０７のレンズ光軸はそれぞれ平行である。また実施例１同様に、各カメラの配置位置におけるｚ座標値が等しいものとする。
【０３０６】
また、レフトカメラ２０１とライトカメラ２０２のカメラ間の基線長は５ｍｍとする。また数１．２より、レフトカメラ２０１と仮想レフトカメラ２０７のカメラ間の基線長は５ｍｍとなる。
【０３０７】
２２０１は第一撮像センサー平面であり、仮想レフトカメラ２０７が有する仮想的な撮像センサー上の平面である。２２０２は第二撮像センサー平面であり、レフトカメラ２０１が有する撮像センサー上の平面である。２２０３は第三撮像センサー平面であり、ライトカメラ２０２が有する撮像センサー上の平面である。
【０３０８】
第一撮像センサー平面２２０１、第二撮像センサー平面２２０２および第三撮像センサー平面２２０３は、撮像条件がそれぞれ等しいため、１つの平面上に投影したのと幾何的な条件が同じになるとする。
【０３０９】
第一撮像センサー平面２２０１、第二撮像センサー平面２２０２および第三撮像センサー平面２２０３のセンサーサイズは全て同じであり、ｘ方向センサー長ＳｅｎｓｏｒＸ、ｙ方向センサー長ＳｅｎｓｏｒＹで表される。本実施例では、フルサイズの撮像センサーを使用するのでＳｅｎｓｏｒＸ＝３６ｍｍ、ＳｅｎｓｏｒＹ＝２４ｍｍである。
【０３１０】
２２０４は前方処理対象面、２２０５は後方処理対象面である。これらは処理対象深度長ＤｅｐｔｈＬｅｎｇｔｈの距離だけ離れている。レフトカメラ２０１、ライトカメラ２０２および仮想レフトカメラ２０７は、前方処理対象面２２０４および後方処理対象面２２０５を共有しているものとする。
【０３１１】
２２０６は写像点Ａであり、仮想レフトカメラ２０７の第一撮像センサー平面２２０１における所定の座標位置である。
【０３１２】
２２０７は候補点Ｂであり、写像点Ａ２２０６と仮想レフトカメラ２０７を結ぶ半直線と前方処理対象面２２０４が交差する点である。写像点Ａ２２０６に結像されるオブジェクトのうち、処理対象深度長ＤｅｐｔｈＬｅｎｇｔｈの範囲において、最もｚ座標値が小さい点である。２２０８は候補点Ｃであり、写像点Ａ２２０６と仮想レフトカメラ２０７を結ぶ半直線と後方処理対象面２２０５が交差する点である。写像点Ａ２２０６に結像されるオブジェクトのうち、処理対象深度長ＤｅｐｔｈＬｅｎｇｔｈの範囲において、最もｚ座標値が大きい点である。
【０３１３】
２２０９は写像点Ｄであり、候補点Ｂ２２０７が第二撮像センサー平面２２０２に結像される際の座標位置である。２２１０は写像点Ｅであり、候補点Ｃ２２０８が第二撮像センサー平面２２０２に結像される際の座標位置である。２２１１は写像点Ｆであり、候補点Ｂ２２０７が第三撮像センサー平面２２０３に結像される際の座標位置である。２２１２は写像点Ｇであり、候補点Ｃ２２０８が第三撮像センサー平面２２０３に結像される際の座標位置である。
【０３１４】
２２１３は同一ＵＶ座標位置Ｈであり、第一撮像センサー平面２２０１に存在する写像点Ａ２２０６とセンサー面上のＵＶ座標系における座標値が等しくなる、第二撮像センサー平面２２０２における座標位置である。２２１４は同一ＵＶ座標位置Ｉであり、第一撮像センサー平面２２０１に存在する写像点Ａ２２０６とセンサー面上のＵＶ座標系における座標値が等しくなる、第三撮像センサー平面２２０３における座標位置である。ここで、ＵＶ座標系とは、センサー平面上の２次元の座標系である。ＵＶ座標系と三次元空間を表すＸＹＺ座標系は、幾何的に対応付けることができる。
【０３１５】
第一撮像センサー平面２２０１、第二撮像センサー平面２２０２および第三撮像センサー平面２２０３の各センサー平面からレンズ主平面までの距離ｂは、レンズ結像公式が
【０３１６】
【数５０】
0005812716.tif 000051
【０３１７】
である、中心被写体距離ａ＝１ｍ、撮像レンズの焦点距離ｆ＝３０．２３４ｍｍであることから、およそｂ＝３１．１７７ｍｍとなる。
【０３１８】
レンズ主平面から前方処理対象面２２０４までの距離ＤＮは、ＤＮ＝ａ−ＤｏｆＮ＝０．５５６ｍである。
【０３１９】
候補点Ｂ２２０７、仮想レフトカメラ２０７およびレフトカメラ２０１を頂点とする三角形Ａと、候補点Ｂ２２０７、写像点Ａ２２０６および写像点Ｄ２２０９を頂点とする三角形Ｂは相似である。三角形Ａと三角形Ｂの相似比はＤＮ：（ＤＮ＋ｂ）＝１：１．０５６となる。
【０３２０】
レフトカメラ２０１と仮想レフトカメラ２０７のカメラ間の基線長は５ｍｍである。ここから、写像点Ｄ２２０９と写像点Ａ２２０６の距離は５×１．０５６＝５．２８ｍｍとなる。
【０３２１】
写像点Ａと同一ＵＶ座標位置Ｈ２２１３の距離は、レフトカメラ２０１と仮想レフトカメラ２０７のカメラ間の基線長と等しい。このため写像点Ｄ２２０９と同一ＵＶ座標位置Ｈ２２１３の距離βは５．２８−５＝０．２８ｍｍとなる。
【０３２２】
β＝０．２８ｍｍをピクセル換算するとＳｅｎｓｏｒＸ＝３６ｍｍ、Ｘ軸方向表示解像度ｒｓｌ＿ｘ＝２５９２ｐｉｘｅｌであることから
【０３２３】
【数５１】
0005812716.tif 000052
【０３２４】
である。ここからＸ軸方向拡張探索範囲最大値ＳＳ＿ＥＸＴＥＮＤ＿ＭＡＸｘ＝２１として、
【０３２５】
【数５２】
0005812716.tif 000053
【０３２６】
よりも大きい整数のうち、最も小さい整数を設定する。
【０３２７】
レンズ主平面から後方処理対象面２２０４までの距離ＤＦは、ＤＦ＝ａ＋ＤｏｆＦ＝１．４８７ｍである。
【０３２８】
候補点Ｃ２２０８、仮想レフトカメラ２０７およびレフトカメラ２０１を頂点とする三角形Ｃと、候補点Ｃ２２０８、写像点Ａ２２０６および写像点Ｅ２２１０を頂点とする三角形Ｄは相似である。三角形Ｃと三角形Ｄの相似比はＤＦ：（ＤＦ＋ｂ）＝１：１．０２１となる。
【０３２９】
ライトカメラ２０２と仮想レフトカメラ２０７のカメラ間の基線長は５ｍｍである。ここから、写像点Ｅ２２１０と写像点Ａ２２０６の距離は５×１．０２１＝５．１０５ｍｍとなる。
【０３３０】
写像点Ａと同一ＵＶ座標位置Ｈ２２１３の距離は、レフトカメラ２０１と仮想レフトカメラ２０７のカメラ間の基線長と等しい。このため写像点Ｅ２２１０と同一ＵＶ座標位置Ｈ２２１３の距離Ｘは５．１０５−５＝０．１０５ｍｍとなる。
【０３３１】
Ｘ＝０．１０５ｍｍをピクセル換算すると、ＳｅｎｓｏｒＸ＝３６ｍｍ、Ｘ軸方向表示解像度ｒｓｌ＿ｘ＝２５９２ｐｉｘｅｌであることから、
【０３３２】
【数５３】
0005812716.tif 000054
【０３３３】
である。ここから、Ｘ軸方向拡張探索範囲最大値ＳＳ＿ＥＸＴＥＮＤ＿ＭＩＮｘ＝７として、
【０３３４】
【数５４】
0005812716.tif 000055
【０３３５】
よりも小さい整数のうち、最も大きい整数を設定する。
【０３３６】
ステップＳ２１０５は、本サブフローチャート６の終了を示している。以上が、本サブフローチャート６で表されるステップＳ２００３の説明である。
【０３３７】
ステップＳ２００４は、画像探索比ＳＲと基準マッチング処理条件を用いて、テンプレートマッチングにおける拡張マッチング処理条件を算出する。拡張マッチング処理条件は、Ｘ軸方向拡張ブロックサイズＢＳ＿ＥＸＴＥＮＤｘ、Ｙ軸方向拡張ブロックサイズＢＳ＿ＥＸＴＥＮＤｙ、Ｘ軸方向拡張探索範囲最小値ＳＳ＿ＥＸＴＥＮＤ＿ＭＩＮｘおよびＸ軸方向拡張探索範囲最大値ＳＳ＿ＥＸＴＥＮＤ＿ＭＡＸｘである。ＢＳ＿ＥＸＴＥＮＤｘ、ＢＳ＿ＥＸＴＥＮＤｙ、ＳＳ＿ＥＸＴＥＮＤ＿ＭＩＮｘおよびＳＳ＿ＥＸＴＥＮＤ＿ＭＡＸｘは、以下の数６．４のように定義される。数６．４より、ＢＳ＿ＥＸＴＥＮＤｘ＝３２、ＢＳ＿ＥＸＴＥＮＤｙ＝３２、ＳＳ＿ＥＸＴＥＮＤ＿ＭＩＮｘ＝１４およびＳＳ＿ＥＸＴＥＮＤ＿ＭＡＸｘ＝４２である。
【０３３８】
【数５５】
0005812716.tif 000056
【０３３９】
ステップＳ２００５はステップＳ５０５と、ステップＳ２００６はステップＳ５０６と、それぞれ同内容の処理であるので説明を省略する。
【０３４０】
ステップＳ２００７は、探索基準ブロック座標（ＢＢＣ＿Ｘ、ＢＢＣ＿Ｙ）にあるブロック画像に対する、近傍画像ＮＩと遠方画像ＦＩのそれぞれのマッチング座標を算出する。近傍画像ＮＩ内のＸ軸方向マッチング座標をＮＭＣ＿Ｘ、Ｙ軸方向マッチング座標をＮＭＣ＿Ｙ、遠方画像ＦＩ内のＸ軸方向マッチング座標をＦＭＣ＿Ｘ、Ｙ軸方向マッチング座標をＦＭＣ＿Ｙと定義する。ＮＭＣ＿Ｘ、ＮＭＣ＿Ｙ、ＦＭＣ＿ＸおよびＦＭＣ＿Ｙは以下の数６．５で表される。数６．５において、Ｘ軸方向マッチングポインタｍｘは、
【０３４１】
【数５６】
0005812716.tif 000057
【０３４２】
の範囲の整数値を取る。
【０３４３】
【数５７】
0005812716.tif 000058
【０３４４】
ステップＳ２００８からＳ２０１７は、ステップＳ５０８からステップＳ５１７と、それぞれ同内容の処理であるので説明を省略する。
【０３４５】
以上が、本サブフローチャート５の説明である。
【０３４６】
以上の説明から明らかなように、本実施例では処理対象深度長ＤｅｐｔｈＬｅｎｇｔｈを用いて、探索するｚ軸方向の範囲を設定することで、視差拡大倍率が大きい場合でも狭い探索範囲でマッチングを行なうことができる。これにより、実視点からより離れた仮想視点をより正確に生成することが可能になる。
【図１】
0005812716.tif 000059
【図２】
0005812716.tif 000060
【図３】
0005812716.tif 000061
【図４】
0005812716.tif 000062
【図５】
0005812716.tif 000063
【図６】
0005812716.tif 000064
【図７】
0005812716.tif 000065
【図８】
0005812716.tif 000066
【図９】
0005812716.tif 000067
【図１０】
0005812716.tif 000068
【図１１】
0005812716.tif 000069
【図１２】
0005812716.tif 000070
【図１３】
0005812716.tif 000071
【図１４】
0005812716.tif 000072
【図１５】
0005812716.tif 000073
【図１６】
0005812716.tif 000074
【図１７】
0005812716.tif 000075
【図１８】
0005812716.tif 000076
【図１９】
0005812716.tif 000077
【図２０】
0005812716.tif 000078
【図２１】
0005812716.tif 000079
【図２２】
0005812716.tif 000080