(57)【要約】【課題】ステレオ画像を構成する２枚の画像のズーム倍率のずれを補正できるようにする。【解決手段】撮像部１１−１，１１−２は、それぞれステレオ画像を構成する第１の画像および第２の画像を撮像する。ステレオ画像補正装置１２の水平加算部２１−１，２１−２は、それぞれ第１の画像、および第２の画像における各行について、水平方向の画素の画素値を加算して、それぞれ第１および第２の一次元配列値を求める。マッチング部２２は、第１および前記第２の一次元配列値の差分絶対値マップに基づいて、パスルートを求めて、調整パラメータであるシフト量を算出する。撮像倍率制御部２３は、調整パラメータであるシフト量に基づいて、第１または第２の画像の倍率の補正を制御する。本発明は、画像処理装置に適用することができる。【選択図】図１
2012090145.tif 000002
【特許請求の範囲】
【請求項１】
第１の画像および第２の画像を撮像する撮像手段と、
前記第１の画像、および第２の画像における各行について、水平方向に画素の画素値を加算して、それぞれ第１の一次元配列値、および第２の一次元配列値を求める一次元配列値算出手段と、
前記第１の一次元配列値および前記第２の一次元配列値の差分に基づいた調整パラメータを算出する調整パラメータ算出手段と、
前記調整パラメータに基づいて、前記第１の画像または前記第２の画像の倍率の補正を制御する補正制御手段と
を含む画像処理装置。
【請求項２】
調整パラメータ算出手段は、前記第１の一次元配列値および前記第２の一次元配列値の差分に基づいて、前記第１の一次元配列値および前記第２の一次元配列値を合わせ込むための調整パラメータを算出する
請求項１に記載の画像処理装置。
【請求項３】
調整パラメータ算出手段は、
前記第１の一次元配列値および前記第２の一次元配列値の差分絶対値からなる差分絶対値マップを生成する差分絶対値マップ生成手段と、
前記差分絶対値マップの一方の端部から他方の端部へのパスを構成する際の、前記差分絶対値マップの各ノード間のコストを計算するコスト計算手段と、
前記コスト計算手段により計算されたコストが最小となるパスよりシフト量を、調整パラメータとして算出するシフト量算出手段と
を含む
請求項２に記載の画像処理装置。
【請求項４】
前記差分絶対値マップ生成手段は、前記第１の一次元配列値の各要素を基準とした前記第２の一次元配列値の各要素との差分絶対値からなる第１の差分絶対値マップ、並びに、前記第２の一次元配列値の各要素を基準とした前記第１の一次元配列値の各要素との差分絶対値からなる第２の差分絶対値マップを生成する
請求項３に記載の画像処理装置。
【請求項５】
前記補正制御手段は、前記第１の差分絶対値マップに基づいたシフト量の傾き、および前記第２の差分絶対値マップに基づいたシフト量の傾きのうち、傾きが負の値として求められるシフト量の傾きに基づいて、前記第１の画像または前記第２の画像の倍率の補正を制御する
請求項４に記載の画像処理装置。
【請求項６】
前記補正制御手段は、前記調整パラメータであるシフト量の最大値および最小値、または最小二乗法に基づいて、前記シフト量の傾きを求め、前記傾きに基づいて、前記第１の画像または前記第２の画像の倍率の補正を制御する
請求項５に記載の画像処理装置。
【請求項７】
前記コスト計算手段は、前記差分絶対値マップの一方の端部から他方の端部へのパスを構成する際の、前記差分絶対値マップの各ノード間のコストを動的計画法により計算する
請求項３に記載の画像処理装置。
【請求項８】
前記調整パラメータ算出手段は、
前記第１の一次元配列値または前記第２の一次元配列値に複数の補正量に応じたシフト量の情報を記憶する記憶手段と、
前記記憶手段に記憶された補正量毎のシフト量に基づいて、前記第１の一次元配列値または前記第２の一次元配列値をシフトさせるシフト手段と、
前記シフト手段によりシフトされた前記第１の一次元配列値および前記第２の一次元配列値の各要素の差分絶対値和からなる評価値を、前記調整パラメータとして計算する評価値計算手段とを含み、
前記補正制御手段は、
前記調整パラメータである評価値のうち最小となる補正量を決定する補正量決定手段を含み、
前記補正量決定手段により決定された補正量で、前記第１の画像または前記第２の画像の倍率の補正を制御する
請求項２に記載の画像処理装置。
【請求項９】
第１の画像および第２の画像を撮像する撮像手段と、
前記第１の画像、および第２の画像における各行について、水平方向に画素の画素値を加算して、それぞれ第１の一次元配列値、および第２の一次元配列値を求める一次元配列値算出手段と、
前記第１の一次元配列値および前記第２の一次元配列値の差分に基づいた調整パラメータを算出する調整パラメータ算出手段と、
前記調整パラメータに基づいて、前記第１の画像または前記第２の画像の倍率の補正を制御する補正制御手段と
を含む画像処理装置の画像処理方法であって、
前記撮像手段における、前記第１の画像および第２の画像を撮像する撮像ステップと、
前記一次元配列値算出手段における、前記第１の画像、および第２の画像における各行について、水平方向に画素の画素値を加算して、それぞれ第１の一次元配列値、および第２の一次元配列値を求める一次元配列値算出ステップと、
前記調整パラメータ算出手段のおける、前記第１の一次元配列値および前記第２の一次元配列値の差分に基づいた調整パラメータを算出する調整パラメータ算出ステップと、
前記補正制御手段における、前記調整パラメータに基づいて、前記第１の画像または前記第２の画像の倍率の補正を制御する補正制御ステップと
を含む画像処理方法。
【請求項１０】
第１の画像および第２の画像を撮像する撮像手段と、
前記第１の画像、および第２の画像における各行について、水平方向に画素の画素値を加算して、それぞれ第１の一次元配列値、および第２の一次元配列値を求める一次元配列値算出手段と、
前記第１の一次元配列値および前記第２の一次元配列値の差分に基づいた調整パラメータを算出する調整パラメータ算出手段と、
前記調整パラメータに基づいて、前記第１の画像または前記第２の画像の倍率の補正を制御する補正制御手段と
を含む画像処理装置を制御するコンピュータに、
前記撮像手段における、前記第１の画像および第２の画像を撮像する撮像ステップと、
前記一次元配列値算出手段における、前記第１の画像、および第２の画像における各行について、水平方向に画素の画素値を加算して、それぞれ第１の一次元配列値、および第２の一次元配列値を求める一次元配列値算出ステップと、
前記調整パラメータ算出手段のおける、前記第１の一次元配列値および前記第２の一次元配列値の差分に基づいた調整パラメータを算出する調整パラメータ算出ステップと、
前記補正制御手段における、前記調整パラメータに基づいて、前記第１の画像または前記第２の画像の倍率の補正を制御する補正制御ステップと
を含む処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および方法、並びにプログラムに関し、特に、ステレオ画像における左右の画像の画角のずれ、すなわち、ズーム倍率のずれを補正できるようにした画像処理装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
ステレオ画像処理を応用した技術が一般に普及しつつある。
【０００３】
ステレオ画像処理とは、左右に配置された２のカメラにより、同一の被写体を撮像し、撮像された左右２枚の画像の視差を利用して、３次元の空間として認識させる処理である。
【０００４】
ステレオ画像処理においては、左右のカメラは、同一の高さに配置されて、同一の画角（ズーム倍率）で撮像していることが前提となる。
【０００５】
しかしながら、現実には、２のカメラの配置などの物理的な要素により左右の２枚の画像の画角（ズーム倍率）がずれてしまうことがある。このような場合、ステレオ立体視をしても、違和感のある処理結果となってしまい、３次元の空間としての認識を妨げてしまうことがあった。
【０００６】
そこで、ステレオ立体視における２枚の画像の画角のずれを補正する技術として、個々のカメラからズーム量を取得し、取得したズーム量から画角のずれを算出し、画角のずれを補正する技術が提案されている（特許文献１参照）。
【０００７】
また、左画像の四隅の特徴点の対応点を右画像より検出し、上部の２点間の水平方向の距離と下部の２点間の水平方向の距離の違いに基づいて画角のずれを算出して補正する技術が提案されている（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００２−２２３３８４号公報
【特許文献２】特開２００６−１５７４３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１の技術では、ズーム量をカメラから取得しているため、撮像時に処理するか、または、画像にズーム量に関する情報を付与する必要がある。また、ズームだけではなくフォーカス位置が左右で異なることにより画角のずれが生じる可能性があるが、この点には対応できない。
【００１０】
また、特許文献２の技術では、画像の解析のみで画角のずれ量を算出しているので、特許文献１の技術のように特殊な情報は必要ないが、結果の精度は対応点検出の精度に依存するため、エラーが生じる可能性が高い。
【００１１】
本発明はこのような状況に鑑みてなされたものであり、特に、ステレオ画像の左右の画像のいずれかについて、シフト量を算出し、シフト量に基づいて、精度よく左右の画像の画角（ズーム倍率）のずれを補正できるようにするものである。
【課題を解決するための手段】
【００１２】
本発明の一側面の画像処理装置は、第１の画像および第２の画像を撮像する撮像手段と、前記第１の画像、および第２の画像における各行について、水平方向に画素の画素値を加算して、それぞれ第１の一次元配列値、および第２の一次元配列値を求める一次元配列値算出手段と、前記第１の一次元配列値および前記第２の一次元配列値の差分に基づいた調整パラメータを算出する調整パラメータ算出手段と、前記調整パラメータに基づいて、前記第１の画像または前記第２の画像の倍率の補正を制御する補正制御手段とを含む。
【００１３】
調整パラメータ算出手段には、前記第１の一次元配列値および前記第２の一次元配列値の差分に基づいて、前記第１の一次元配列値および前記第２の一次元配列値を合わせ込むための調整パラメータを算出させるようにすることができる。
【００１４】
調整パラメータ算出手段には、前記第１の一次元配列値および前記第２の一次元配列値の差分絶対値からなる差分絶対値マップを生成する差分絶対値マップ生成手段と、前記差分絶対値マップの一方の端部から他方の端部へのパスを構成する際の、前記差分絶対値マップの各ノード間のコストを計算するコスト計算手段と、前記コスト計算手段により計算されたコストが最小となるパスよりシフト量を、調整パラメータとして算出するシフト量算出手段とを含ませるようにすることができる。
【００１５】
前記差分絶対値マップ生成手段には、前記第１の一次元配列値の各要素を基準とした前記第２の一次元配列値の各要素との差分絶対値からなる第１の差分絶対値マップ、並びに、前記第２の一次元配列値の各要素を基準とした前記第１の一次元配列値の各要素との差分絶対値からなる第２の差分絶対値マップを生成させるようにすることができる。
【００１６】
前記補正制御手段には、前記第１の差分絶対値マップに基づいたシフト量の傾き、および前記第２の差分絶対値マップに基づいたシフト量の傾きのうち、傾きが負の値として求められるシフト量の傾きに基づいて、前記第１の画像または前記第２の画像の倍率の補正を制御させるようにすることができる。
【００１７】
前記補正制御手段には、前記調整パラメータであるシフト量の最大値および最小値、または、最小二乗法に基づいて、前記シフト量の傾きを求め、前記傾きに基づいて、前記第１の画像または前記第２の画像の倍率の補正を制御させるようにすることができる。
【００１８】
前記コスト計算手段には、前記差分絶対値マップの一方の端部から他方の端部へのパスを構成する際の、前記差分絶対値マップの各ノード間のコストを動的計画法により計算させるようにすることができる。
【００１９】
前記調整パラメータ算出手段には、前記第１の一次元配列値または前記第２の一次元配列値に複数の補正量に応じたシフト量の情報を記憶する記憶手段と、前記記憶手段に記憶された補正量毎のシフト量に基づいて、前記第１の一次元配列値または前記第２の一次元配列値をシフトさせるシフト手段と、前記シフト手段によりシフトされた前記第１の一次元配列値および前記第２の一次元配列値の各要素の差分絶対値和からなる評価値を、前記調整パラメータとして計算する評価値計算手段とを含ませるようにすることができ、前記補正制御手段には、前記調整パラメータである評価値のうち最小となる補正量を決定する補正量決定手段を含ませるようにすることができ、前記補正量決定手段により決定された補正量で、前記第１の画像または前記第２の画像の倍率の補正を制御させるようにすることができる。
【００２０】
本発明の一側面の画像処理方法は、第１の画像および第２の画像を撮像する撮像手段と、前記第１の画像、および第２の画像における各行について、水平方向に画素の画素値を加算して、それぞれ第１の一次元配列値、および第２の一次元配列値を求める一次元配列値算出手段と、前記第１の一次元配列値および前記第２の一次元配列値の差分に基づいた調整パラメータを算出する調整パラメータ算出手段と、前記調整パラメータに基づいて、前記第１の画像または前記第２の画像の倍率の補正を制御する補正制御手段とを含む画像処理装置の画像処理方法であって、前記撮像手段における、前記第１の画像および第２の画像を撮像する撮像ステップと、前記一次元配列値算出手段における、前記第１の画像、および第２の画像における各行について、水平方向に画素の画素値を加算して、それぞれ第１の一次元配列値、および第２の一次元配列値を求める一次元配列値算出ステップと、前記調整パラメータ算出手段のおける、前記第１の一次元配列値および前記第２の一次元配列値の差分に基づいた調整パラメータを算出する調整パラメータ算出ステップと、前記補正制御手段における、前記調整パラメータに基づいて、前記第１の画像または前記第２の画像の倍率の補正を制御する補正制御ステップとを含む。
【００２１】
本発明の一側面のプログラムは、第１の画像および第２の画像を撮像する撮像手段と、前記第１の画像、および第２の画像における各行について、水平方向に画素の画素値を加算して、それぞれ第１の一次元配列値、および第２の一次元配列値を求める一次元配列値算出手段と、前記第１の一次元配列値および前記第２の一次元配列値の差分に基づいた調整パラメータを算出する調整パラメータ算出手段と、前記調整パラメータに基づいて、前記第１の画像または前記第２の画像の倍率の補正を制御する補正制御手段とを含む画像処理装置を制御するコンピュータに、前記撮像手段における、前記第１の画像および第２の画像を撮像する撮像ステップと、前記一次元配列値算出手段における、前記第１の画像、および第２の画像における各行について、水平方向に画素の画素値を加算して、それぞれ第１の一次元配列値、および第２の一次元配列値を求める一次元配列値算出ステップと、前記調整パラメータ算出手段のおける、前記第１の一次元配列値および前記第２の一次元配列値の差分に基づいた調整パラメータを算出する調整パラメータ算出ステップと、前記補正制御手段における、前記調整パラメータに基づいて、前記第１の画像または前記第２の画像の倍率の補正を制御する補正制御ステップとを含む処理を実行させる。
【００２２】
本発明の一側面おいては、第１の画像および第２の画像が撮像され、前記第１の画像、および第２の画像における各行について、水平方向に画素の画素値が加算されて、それぞれ第１の一次元配列値、および第２の一次元配列値が求められ、前記第１の一次元配列値および前記第２の一次元配列値の差分に基づいた調整パラメータが算出され、前記調整パラメータに基づいて、前記第１の画像または前記第２の画像の倍率の補正が制御される。
【００２３】
本発明の画像処理装置は、独立した装置であっても良いし、画像処理を行うブロックであっても良い。
【発明の効果】
【００２４】
本発明の一側面によれば、ステレオ画像における左右の画像の画角のずれ、すなわち、ズーム倍率のずれを補正することが可能となる。
【図面の簡単な説明】
【００２５】
【図１】本発明を適用したステレオ画像補正装置の一実施の形態の構成例を示すブロック図である。
【図２】図１のステレオ画像補正装置によるステレオ画像補正処理を説明するフローチャートである。
【図３】ステレオ画像を説明する図である。
【図４】ステレオ画像における行単位の水平方向の画素値の積算値からなる一次元配列値を説明する図である。
【図５】ステレオ画像における行単位の水平方向の画素値の積算値からなる一次元配列値を説明する図である。
【図６】図１のステレオ画像補正装置による一次元配列値の差分絶対値マップを説明する図である。
【図７】図１のステレオ画像補正装置によるシフト量計算処理を説明するフローチャートである。
【図８】図１のステレオ画像補正装置によるシフト量計算処理におけるコストの計算方法を説明する図である。
【図９】図１のステレオ画像補正装置によるシフト量計算処理におけるコストおよびシフト量の計算例を説明する図である。
【図１０】シフト量の例を説明する図である。
【図１１】画角のずれにより生じるシフト量を説明する図である。
【図１２】ステレオ画像のうち一方の画像を基準としたときの画角のずれにより生じるシフト量の傾きに基づいた補正方法を説明する図である。
【図１３】ステレオ画像のうち他方の画像を基準としたときの画角のずれにより生じるシフト量の傾きに基づいた補正方法を説明する図である。
【図１４】ステレオ画像の撮像部の撮像位置が上下にずれている場合を説明する図である。
【図１５】ステレオ画像の撮像部の撮像位置が上下にずれていて、かつ、画角がずれている場合に生じるシフト量の傾きに基づいた補正方法を説明する図である。
【図１６】本発明を適用したステレオ画像補正装置の他の実施の形態の構成例を示すブロック図である。
【図１７】ステレオ画像の画角のずれ量に応じて設定されるシフト量の傾きを説明する図である。
【図１８】図１６のステレオ画像補正装置によるステレオ画像補正処理を説明するフローチャートである。
【図１９】汎用のパーソナルコンピュータの構成例を説明する図である。
【発明を実施するための最良の形態】
【００２６】
以下、発明を実施するための形態（以下実施の形態とする）について説明する。なお、説明は以下の順序で行なう。
１．第１の実施の形態（シフト量を求めて画角のずれを補正する例）
２．第２の実施の形態（予めシフト量が求められている場合に画角のずれを補正する例）
【００２７】
＜１．第１の実施の形態＞
［ステレオ画像補正装置の構成例］
図１は、本発明を適用したステレオ画像補正装置のハードウェアの一実施の形態の構成例を示している。図１のステレオ画像補正装置１２は、撮像部１１−１，１１−２により撮像される、ステレオ画像を構成する２の入力画像の画角（ズーム倍率）のずれを補正して出力する。
【００２８】
より具体的には、ステレオ画像補正装置１２は、ステレオ画像を構成する撮像部１１−１，１１−２より入力される２の撮像画像のうち、一方の画像を基準画像とする。そして、ステレオ画像補正装置１２は、他方の画像を、拡大または縮小し、２のステレオ画像の画角を揃えるようにすることで、画角のずれを補正する。画角とは、撮像部１１−１，１１−２が撮像する画像のうち撮像素子に写る範囲を表す角度である。したがって、画角が広くなると撮像範囲が広くなり、逆に画角が狭くなると撮像範囲が狭くなる。これは、撮像部１１−１，１１−２のズーム倍率を高めると、撮像範囲が狭くなり、ズーム倍率を低くすると撮像範囲が広くなる関係と同様であると言える。このため、以降においては、画角およびズーム倍率は、撮像範囲を調整するパラメータとして同一のものとして扱うものとする。ただし、画角を制御するパラメータは角度であるのに対して、ズーム倍率を制御するパラメータは、倍率であり、パラメータそのものは異なるものである。
【００２９】
撮像部１１−１，１１−２は、撮像素子から構成されており、撮像した画像を画像データとしてステレオ画像補正装置１２に供給する。撮像部１１−１，１１−２は、それぞれが撮像した２の画像が、ステレオ画像を構成するように配設されている。
【００３０】
ステレオ画像補正装置１２は、水平加算部２１−１，２１−２、マッチング部２２、撮像倍率制御部２３、および補正部２４−１，２４−２を備えている。
【００３１】
水平加算部２１−１，２１−２は、それぞれ撮像部１１−１，１１−２により撮像された画像を行単位で水平方向に並ぶ画素の画素値を加算することで、一次元配列値を生成し、それぞれマッチング部２２に供給する。
【００３２】
マッチング部２２は、水平加算部２１−１，２１−２のそれぞれより供給されてくる一次元配列値に基づいて、いずれか一方の一次元配列値を基準としたときの他方の一次元配列値を合わせ込むために必要とされるシフト量を求め、調整パラメータとして、撮像倍率制御部２３に供給する。
【００３３】
より詳細には、マッチング部２２は、差分絶対値マップ生成部２２ａ、コスト計算部２２ｂ、パスマップ記憶部２２ｃ、およびシフト量計算部２２ｄを備えている。差分絶対値マップ生成部２２ａは、水平加算部２１−１，２１−２からの一次元配列値の各要素に付いて、総当りの差分絶対値からなるマップを生成する。コスト計算部２２ｂは、差分絶対値マップの一方の端部から他方の端部までの方向に向かって隣接するノード間で発生するコストを計算する。そして、コスト計算部２２ｂは、コストが最小となるノード間をパスとして選択し、パスとして選択したノード間の最小コストの計算結果を順次隣接するノード間のコスト計算に利用する処理を繰り返す。この間、コスト計算部２２ｂは、パスとして選択したノード間の情報をパスマップ記憶部２２ｃに記憶させる。シフト量計算部２２ｄは、パスマップ記憶部２２ｃに記憶されたパスのうち、最終的な総コストが最小となるノードからのパスをつなぐパスルートを求めた後、そのパスルートからパスルートを構成する各ノードのシフト量を求めて、これを調整パラメータとして撮像倍率制御部２３に供給する。尚、マッチング部２２は、２の一次元配列値のそれぞれを基準とした場合の２種類のシフト量を求め、それぞれを調整パラメータとして撮像倍率制御部２３に供給する。
【００３４】
撮像倍率制御部２３は、マッチング部２２より供給されてくる調整パラメータである２種類のシフト量の情報に基づいて、撮像部１１−１，１１−２のいずれかの画素位置に応じた補正量を計算して、対応する補正部２４−１，２４−２のいずれかで補正させる。より詳細には、撮像倍率制御部２３は、傾き計算部２３ａ、基準決定部２３ｂ、および補正量計算部２３ｃを備えている。傾き計算部２３ａは、２種類のシフト量のそれぞれについて、最大値および最小値の差をサンプル数で除する、または最小二乗法により傾きを求める。基準決定部２３ｂは、求められた２種類の傾きのうち、所定の傾きを補正量を求めるための基準に決定し、撮像部１１−１，１１−２で撮像された画像のうち、対応する画像を基準とする。補正量計算部２３ｃは、求められた傾きを用いて、画素位置毎の補正量を求め、補正部２４−１，２４−２のいずれか一方に対して、基準とならない画像の補正を制御する。
【００３５】
［図１のステレオ画像補正装置によるステレオ画像補正処理］
次に、図２のフローチャートを参照して、図１のステレオ画像補正装置１２によるステレオ画像補正処理について説明する。
【００３６】
ステップＳ１において、撮像部１１−１，１１−２は、それぞれステレオ画像を構成する画像を撮像し、撮像した画像をステレオ画像補正装置１２の水平加算部２１−１，２１−２に供給する。
【００３７】
ステップＳ２において、水平加算部２１−１，２１−２は、それぞれ供給されてきたステレオ画像を構成する画素の画素値を行単位で加算し、各行の加算値からなる一次元配列値を生成する。
【００３８】
すなわち、撮像部１１−１，１１−２が、例えば、図３で示されるように球状の被写体１０１を撮像するとき、撮像される画像は、図４の左部で示されるようにそれぞれ画像ＰＬ１，ＰＲ１のようなものとなる。画像ＰＬ１，ＰＲ１における黒色の球状の物体は、被写体１０１であり、画像中白色部分については、画素値を１とし、黒色部分は画素値を０とする。水平加算部２１−１，２１−２は、それぞれ画像ＰＬ１，ＰＲ１を行単位で水平方向に隣接する画素の画素値を加算し、一次元配列値を生成する。例えば、画素（ｘ，ｙ）の画素値をＩ（ｘ，ｙ）（ｘ：画像における水平方向座標，ｙ：画像における垂直方向座標）とした場合、ｔ行目のサンプル値Ｆ（ｔ）は、以下のように示される。
【００３９】
Ｆ（ｔ）＝Ｉ（０，ｔ）＋Ｉ（１，ｔ）＋・・・＋Ｉ（Ｗ−１，ｔ）
【００４０】
ここで、Ｗは、画像の水平方向画素数である。そして、画像ＰＬ１，ＰＲ１の行番号ｔに対するサンプル値Ｆ（ｔ）との関係は、それぞれ図４の右部における波形ＷＬ，ＷＲで示される関係となる。すなわち、画像ＰＬ１，ＰＲ１における被写体１０１が配置される垂直位置においては、サンプル値Ｆ（ｔ）が小さくなり、それ以外の範囲については、全画素の画素値が画素数分だけ加算されるため大きくなり、また、それらはいずれも同一の値となる。尚、サンプル値Ｆ（ｔ）は、離散変量であるため、波形ＷＬ，ＷＲは、離散変量であるサンプル値Ｆ（ｔ）を結んだ波形となっている。
【００４１】
また、一次元配列値は、離散変量であるサンプル値Ｆ（ｔ）を、画像を構成する行数（垂直方向の画素数）と同数の要素からなる配列値である。すなわち、例えば、方形状の立体を被写体としたときのステレオ画像を構成する画像の画素値マップが、図５の左部で示される画素値マップＰＬ１１，ＰＲ１１である場合、一次元配列値ＳＬ，ＳＲは、図５の右部で示されるものとなる。
【００４２】
ここで、図５の画素値マップＰＬ１１，ＰＲ１１は、８画素×８画素の画像の画素値マップであり、被写体の領域を画素値１とし、それ以外の領域を画素値０としている。したがって、撮像部１１−１により撮像される画像の画素値マップＰＬ１１においては、領域Ｚ１で囲まれる４画素×４画素の範囲の画素値が１とされて、被写体を構成している。また、撮像部１１−２により撮像される画像の画素値マップＰＬ１２においては、領域Ｚ２で囲まれる６画素×６画素の範囲の画素値が１とされて、被写体を構成している。
【００４３】
画像ＰＬ１１の場合、上から１，２，７，８行目は、全てゼロであるので、一次元配列値ＳＬの上から１，２，７，８段目の要素は、「０」となる。また、一次元配列値ＳＬの上から３乃至６行目は、左から３画素目乃至６画素目までの合計４画素が「１」であり、それ以外がゼロであるので、一次元配列値ＳＬの上から３乃至６段目の要素は、「４」となる。
【００４４】
また、同様に画像ＰＲ１１の場合、上から１，８行目は、全てゼロであるので、一次元配列値ＳＲの上から１，８段目の要素は、「０」となる。また、一次元配列値ＳＲの上から２乃至７行目は、左から２画素目乃至７画素目までの合計６画素が「１」であり、それ以外がゼロであるので、一次元配列値ＳＬの上から２乃至７段目の要素は、「６」となる。
【００４５】
ステップＳ３において、マッチング部２２は、差分絶対値マップ生成部２２ａを制御して、求められた２の一次元配列値に基づいて、それらの差分絶対値マップを生成する。差分絶対値マップとは、例えば、２の一次元配列値ＳＲ，ＳＬの場合、図６の差分絶対値マップＰＤのようなものである。例えば、一次元配列値ＳＲ，ＳＬの要素を（ａ０，ａ１，・・，ａ７）および（ｂ０，ｂ１，・・，ｂ７）で表現するものとする。また、差分絶対値マップＰＤの各ノードは、図６の一次元配列値ＳＲ，ＳＬの要素の配列に対応して、ＰＤ（ａｒ，ｂｓ）（ｒ＝０乃至７，ｓ＝０乃至７）で表現するものとする。この場合、差分絶対値マップＰＤのノードＰＤ（ａ０，ｂ０）は、｜ａ０−ｂ０｜であり、図６の場合、０（＝｜０−０｜）となる。また、差分絶対値マップＰＤのノードＰＤ（ａ１，ｂ５）は、｜ａ１−ｂ５｜であり、図６の場合、２（＝｜６−４｜）となる。このように差分絶対値マップは、２の一次元配列値の各要素間の総当りの差分絶対値を各ノードとするマップである。
【００４６】
ステップＳ４において、マッチング部２２は、シフト量計算処理を実行して、２の一次元配列値に基づいて、それぞれを基準として求められる画素単位のシフト量を求める。
【００４７】
［シフト量計算処理］
ここで、図７のフローチャートを参照して、シフト量計算処理について説明する。尚、図７のフローチャートにおいては、動的計画法に基づいたシフト量計算処理を例として説明するものとするが、動的計画法以外の方法であってもよいものである。
【００４８】
ステップＳ２１において、マッチング部２２は、コスト計算部２２ｂを制御して、ノードをカウントするためのカウンタｒを１にカウンタｓを０に初期化させる。
【００４９】
ステップＳ２２において、コスト計算部２２ｂは、ノードＰＤ（ａｒ，ｂｓ）を処理対象ノードに決定する。
【００５０】
ステップＳ２３において、コスト計算部２２ｂは、処理対象ノードからのパスの候補となるノードのうち、未処理のノードについてコスト計算対象ノードに決定する。
【００５１】
ステップＳ２４において、コスト計算部２２ｂは、処理対象ノード、およびコスト計算対象ノード間のコストを計算する。コストの計算は、処理対象ノード、およびコスト計算対象ノード間の位置関係、およびそれぞれのノード値の和により求められる。
【００５２】
ステップＳ２５において、コスト計算部２２ｂは、パスの候補となるノードのうち、未処理のノードが存在するか否かを判定し、未処理のノードがある場合、処理は、ステップＳ２３に戻る。すなわち、処理対象ノードと、その全てのコスト計算対象ノード間のコストが計算されるまで、ステップＳ２３乃至Ｓ２５の処理が繰り返される。
【００５３】
そして、ステップＳ２５において、未処理のパスの候補となるノードがないと判定された場合、すなわち、処理対象ノードと、その全てのコスト計算対象ノード間のコストが計算された場合、処理は、ステップＳ２６に進む。
【００５４】
ステップＳ２６において、コスト計算部２２ｂは、処理対象ノードと、その全てのコスト計算対象ノード間のコストのうち、最小コストとなるノードを処理対象ノードに対するパスノードに決定し、パスマップ記憶部２２ｃに記憶させる。
【００５５】
ステップＳ２７において、コスト計算部２２ｂは、パスノードのノード値を処理対象ノードのノード値と加算することで総コストを求め、さらに、パスノードのノード値として置換する。
【００５６】
ステップＳ２８において、コスト計算部２２ｂは、カウンタｓが最大値ｓ＿ｍａｘより大きいか否かを判定し、カウンタｓが最大値ｓ＿ｍａｘより大きくない場合、ステップＳ２９に進み、カウンタｓを１インクリメントして、処理は、ステップＳ２２に戻る。すなわち、一次元配列値ＳＬにおけるｂ０乃至ｂ７の全てについて、パスノードが求められるまで、ステップＳ２２乃至Ｓ２９の処理が繰り返される。
【００５７】
そして、ステップＳ２９において、カウンタｓが最大値ｓ＿ｍａｘより大きいと判定された場合、すなわち、一次元配列値ＳＬのｂ０乃至ｂ７の全てについて、パスノードが求められた場合、ステップＳ３０において、コスト計算部２２ｂは、カウンタｓを０に初期化する。
【００５８】
ステップＳ３１において、カウンタｒが最大値ｒ＿ｍａｘよりも大きいか否かを判定し、例えば、カウンタｒが最大値ｒ＿ｍａｘよりも大きくない場合、ステップＳ３２において、コスト計算部２２ｂは、カウンタｒを１インクリメントして、処理は、ステップＳ２２に戻る。すなわち、一次元配列値ＳＬ，ＳＲの全てについて、パスノードが求められるまで、ステップＳ２２乃至Ｓ３２の処理が繰り返される。
【００５９】
そして、ステップＳ３２において、カウンタｒが最大値ｒ＿ｍａｘよりも大きいと判定された場合、すなわち、一次元配列値ＳＬ，ＳＲの全てについて、パスノードが求められた場合、処理は、ステップＳ３３に進む。
【００６０】
ここで、パスとは、例えば、ステレオ画像を構成する２枚の画像のそれぞれの一次元配列値の、いずれか一方の一次元配列値を基準としたとき、基準の一次元配列値に対して他方の一次元配列値を合わせ込む際、一次元配列値の各要素が、どのように移動したかを示す軌跡である。また、パスに係るコストとは、パスにより規定されるノード間での移動があったときの尤もらしさの指標を示すものであり、コストが小さいほど尤もらしさが高く、コストが大きいほど尤もらしさが低い。尚、２枚の画像のそれぞれの一次元配列値は、いずれか一方の一次元配列値を基準とした場合、他方の一次元配列値は基準となる一次元配列値が拡大または縮小された一次元配列値であると考えられるため、一次元配列値の拡大縮小に伴って一次元配列値の各値は移動することが考えられるが、移動の前後で、一次元配列値内における順序が変わることはないと考えられる。このため、例えば、図６の差分絶対値マップＰＤにおいて、コスト計算対象ノードは、処理対象ノードの左側に隣接するノードに設定されるが、処理対象ノードよりも上側に隣接するノードに設定されない。
【００６１】
すなわち、例えば、図６の場合、処理対象ノードがノードＰＤ（ａ２，ｂ２）（ノード値が２）である場合、コスト計算対象ノードは、ノードＰＤ（ａ１，ｂ０），ＰＤ（ａ１，ｂ１），ＰＤ（ａ１，ｂ２）となる。
【００６２】
コストは、パスコストと、ノードコストの和となる。すなわち、パスコストは、処理対象ノードと、コスト計算対象ノードＰＤとの位置関係に基づいて決定される。例えば、図８の位置関係Ｃ１で示されるように、×印を含む処理対象ノードに対して、○印を含むコスト計算対象ノードが斜めに隣接されている場合、パスコストは、Ｐ×０（Ｐは定数）である。また、図８の位置関係Ｃ２で示されるように、×印を含む処理対象ノードに対して、○印を含むコスト計算対象ノードが１行分跨いで斜めに離されている場合、パスコストは、Ｐ×１（Ｐは定数）となる。さらに、図８の位置関係Ｃ３で示されるように、×印を含む処理対象ノードに対して、○印を含むコスト計算対象ノードが２行分跨いで斜めに離されている場合、パスコストは、Ｐ×２（Ｐは定数）となる。また、図８の位置関係Ｃ４で示されるように、×印を含む処理対象ノードに対して、○印を含むコスト計算対象ノードが水平方向に隣接する場合、パスコストは、Ｑ（Ｑは定数）となる。
【００６３】
また、ノードコストは、ノード値そのものであり、処理対象ノード、およびコスト計算対象ノードのノード値の和である。
【００６４】
したがって、例えば、Ｐ＝Ｑ＝２の場合、図６の処理対象ノードＰＤ（ａ２，ｂ２）に対して、コスト計算対象ノードＰＤ（ａ１，ｂ０）のとき、パスコストは、２であり、ノードコストは、８（＝２＋６）である。したがって、処理対象ノードＰＤ（ａ２，ｂ２）、およびコスト計算対象ノードＰＤ（ａ１，ｂ０）間のコストは、１０（＝８＋２）となる。また、図６の処理対象ノードＰＤ（ａ２，ｂ２）に対して、コスト計算対象ノードＰＤ（ａ１，ｂ１）のとき、パスコストは、０であり、ノードコストは、８（＝２＋６）である。したがって、処理対象ノードＰＤ（ａ２，ｂ２）、およびコスト計算対象ノードＰＤ（ａ１，ｂ１）間のコストは、８（＝０＋８）となる。さらに、図６の処理対象ノードＰＤ（ａ２，ｂ２）に対して、コスト計算対象ノードＰＤ（ａ１，ｂ２）のとき、パスコストは、２であり、ノードコストは、４（＝２＋２）である。したがって、処理対象ノードＰＤ（ａ２，ｂ２）、およびコスト計算対象ノードＰＤ（ａ１，ｂ１）間のコストは、６（＝４＋２）となる。
【００６５】
この結果、処理対象ノードがノードＰＤ（ａ２，ｂ２）に対しては、コスト計算対象ノードＰＤ（ａ１，ｂ０），ＰＤ（ａ１，ｂ１），ＰＤ（ａ１，ｂ２）のうち、コストが最小となるのは、ノードＰＤ（ａ１，ｂ２）である。このため、ノードＰＤ（ａ２，ｂ２）は、ノードＰＤ（ａ１，ｂ２）との間でパスが設定される。このとき、ノードＰＤ（ａ２，ｂ２）のノード値は、２から計算されたトータルコストである６に置換される。
【００６６】
例えば、図６の差分絶対値マップＰＤに対して、ステップＳ２２乃至Ｓ３２の処理が繰り返されることにより、Ｐ＝Ｑ＝２の場合、差分絶対値マップ生成部２２ａにより生成された差分絶対値マップＰＤは、図９の上段で示されるような差分絶対値マップＰＳのように変換される。また、同時に、図９の下段で示されるようなパスマップＰＭがパスマップ記憶部２２ｃに記憶される。尚、図９の下段におけるパスマップＰＭにおける矢印が設定されたパスを示す。
【００６７】
ステップＳ３３において、シフト量計算部２２ｄは、差分絶対値マップ生成部２２ａに記憶されている差分絶対値マップＰＳにおけるノードＰＳ（ａｒ＿ｍａｘ，ｂｘ）（ｘ＝０乃至７）の全ノード値のうち、最小となるノードを検索する。すなわち、図９の上段における差分絶対値マップＰＳのノードＰＳ（ａｒ＿ｍａｘ，ｂｘ）のノード値は、図中下から、（５０、４８、２８，２６，２４，２２，１６，１８）である。このため、シフト量計算部２２ｄは、図９の上段における差分絶対値マップＰＳの右列におけるノードのうち、ノード値が最小となる上から２段目のノード値１６となるノードを検索する。
【００６８】
ステップＳ３４において、シフト量計算部２２ｄは、パスマップ記憶部２２ｃに記憶されているパスマップより、ノード値が最小となるノードから順次パスを始点となるノードまで遡り、パスルートを検出する。
【００６９】
すなわち、例えば、図９の下段で示されるパスマップＰＭの場合、上述したように図９の上段で示される差分絶対値マップＰＳにおいて、ノード値が最小となるのは、ノードＰＳ（ａ７，ｂ６）のノード値が１６となるノードである。そこで、シフト量計算部２２ｄは、ノードＰＳ（ａ７，ｂ６）に設定されたパスを確認する。図９の下段で示されるように、ノードＰＳ（ａ７，ｂ６）のパスは、ノードＰＳ（ａ６，ｂ５）に設定されている。そこで、次に、シフト量計算部２２ｄは、ノードＰＳ（ａ６，ｂ５）に設定されたパスを確認する。図９の下段で示されるように、ノードＰＳ（ａ６，ｂ５）のパスは、ノードＰＳ（ａ５，ｂ４）に設定されている。
【００７０】
同様に、シフト量計算部２２ｄは、ノードＰＳ（ａ５，ｂ４）に設定されたパスを確認する。図９の下段で示されるように、ノードＰＳ（ａ５，ｂ４）のパスは、ノードＰＳ（ａ４，ｂ３）に設定されている。このため、シフト量計算部２２ｄは、ノードＰＳ（ａ４，ｂ３）に設定されたパスを確認する。図９の下段で示されるように、ノードＰＳ（ａ４，ｂ３）のパスは、ノードＰＳ（ａ３，ｂ２）に設定されている。さらに、シフト量計算部２２ｄは、ノードＰＳ（ａ３，ｂ２）に設定されたパスを確認する。図９の下段で示されるように、ノードＰＳ（ａ３，ｂ２）のパスは、ノードＰＳ（ａ２，ｂ２）に設定されている。また、シフト量計算部２２ｄは、ノードＰＳ（ａ２，ｂ２）に設定されたパスを確認する。図９の下段で示されるように、ノードＰＳ（ａ２，ｂ２）のパスは、ノードＰＳ（ａ１，ｂ２）に設定されている。シフト量計算部２２ｄは、ノードＰＳ（ａ１，ｂ２）に設定されたパスを確認する。図９の下段で示されるように、ノードＰＳ（ａ１，ｂ２）のパスは、ノードＰＳ（ａ０，ｂ１）に設定されている。
【００７１】
この結果、シフト量計算部２２ｄは、パスルートとして、図９のパスマップＰＭ内の太線の矢印で示されるように、ノードＰＳ（ａ０，ｂ１），ＰＳ（ａ１，ｂ２），ＰＳ（ａ２，ｂ２），ＰＳ（ａ３，ｂ２），ＰＳ（ａ４，ｂ３），ＰＳ（ａ５，ｂ４），ＰＳ（ａ６，ｂ５），ＰＳ（ａ７，ｂ６）を検出する。
【００７２】
ステップＳ３５において、シフト量計算部２２ｄは、この読み出されたパスルートに基づいて、シフト量を求め、撮像倍率制御部２３に供給する。シフト量とは、一次元配列値ＳＲの各要素ａ０乃至ａ７が、一次元配列値ＳＬの各要素ｂ０乃至ｂ７の値のどの位置の要素に対応しているかを示すものであり、基準となる対応する位置に対して、何行分シフトしているかを示す量である。したがって、パスルートが、ノードＰＭ（ａ０，ｂ０），（ａ１，ｂ１），（ａ２，ｂ２），（ａ３，ｂ３），（ａ４，ｂ４），（ａ５，ｂ５），（ａ６，ｂ６），（ａ７，ｂ７）で構成されている場合、いずれの要素も相互に対応する位置に存在するため、シフト量（０，０，０，０，０，０，０，０）となる。尚、シフト量（０，０，０，０，０，０，０，０）の各要素は、一次元配列値ＳＲの各要素ａ０乃至ａ７の一次元配列値ＳＬの各要素ｂ０乃至ｂ７に対するシフト量を要素数、すなわち、行数で示したものである。
【００７３】
このため、図９の下部で示されるパスマップＰＭ上の太線の矢印で示されるパスルートの場合、起点となるノードＰＭ（ａ０，ｂ１）は、基準となるノードＰＭ（ａ０，ｂ０）に対して、正方向に１行分だけシフトしているので、シフト量は１となる。また、ノードＰＭ（ａ１，ｂ２）は、基準となるノードＰＭ（ａ１，ｂ１）に対して、１行分だけ正方向にシフトしているので、シフト量は１となる。さらに、ノードＰＭ（ａ２，ｂ２）は、基準となるノードＰＭ（ａ２，ｂ２）そのものであり、シフトしていないので、シフト量は０となる。また、ノードＰＭ（ａ３，ｂ２）は、基準となるノードＰＭ（ａ３，ｂ３）に対して、１行分だけ負方向にシフトしているので、シフト量は−１となる。同様に、ノードＰＭ（ａ４，ｂ３）乃至（ａ７，ｂ６）は、基準となるノードＰＭ（ａ４，ｂ４）乃至（ａ７，ｂ７）に対して、１行分だけ負方向にシフトしているので、シフト量は−１となる。結果として、図９の下部で示されるパスマップＰＭにおける太線の矢印で示されるパスルートから導き出されるシフト量は、シフト量（１，１，０，−１，−１，−１，−１，−１）となる。
【００７４】
尚、このシフト量は、例えば、図１０の右部の一次元配列値ＳＲのａ０乃至ａ７が、（０，６，６，６，６，６，６，０）であり、一次元配列ＳＬのｂ０乃至ｂ７が（０，０，４，４，４，４，０，０）で示されるような場合、図１０の左部で示されるシフト量Ｓｔ（−１，−１，０，０，０，０，１，１）となる。すなわち、シフト量は、一次元配列値ＳＲを一次元配列値ＳＬに合わせ込む際の各要素のシフト方向とシフト量を示した値の一次元配列値となる。
【００７５】
ステップＳ３６において、マッチング部２２は、差分反転シフト量計算処理を実行し、上述したステップＳ２１乃至Ｓ３５の処理と同様の処理により、一次元配列値ＳＲ，ＳＬを入替えてシフト量を求める。尚、差分反転シフト量計算処理については、差分絶対値マップを転置して、一次元配列値ＳＲ，ＳＬを入替えるのみであり、その他の処理は、ステップＳ２１乃至Ｓ３５と同様であるので、その説明は省略する。尚、上述したコストに基づいた２の一次元配列値を合わせ込むためのシフト量を求めるシフト量計算処理は、基準となる２次元の画像形状に対して、対象となる２次元画像の形状を変形させて、基準となる２次元の画像形状に一致するようにマッチングさせる処理である、いわゆる弾性マッチング処理を、１次元配列値に応用した処理であると言える。
【００７６】
以上の処理によりステレオ画像を構成する２枚の画像からそれぞれを基準とした場合のシフト量が合計２種類求められることになる。
【００７７】
ここで、図２のフローチャートの説明に戻る。
【００７８】
ステップＳ４の処理により、ステレオ画像を構成する２枚の画像からそれぞれの画像を基準とした場合の２種類のシフト量が求められると、処理は、ステップＳ５に進む。
【００７９】
ステップＳ５において、撮像倍率制御部２３は、傾き計算部２３ａを制御して、２種類のそれぞれのシフト量の情報に基づいて、行単位での各要素に対応するシフト量の傾きを求めさせる。このとき、傾き計算部２３ａは、シフト量の最大値、および最小値の差分を画素数で割ることにより傾きを求めるか、または、最小二乗法により傾きを求める。
【００８０】
ここで、ステレオ画像を構成する２枚の画像のそれぞれについて求められる１次元配列値とシフト量との関係について説明する。
【００８１】
例えば、ステレオ画像を構成する２枚の画像のうち、基準となる一方の画像の一次元配列値の波形が、図１１の上段で示される波形Ｗ１０１で表現されるものとする。尚、図１１においては、横軸は、画像における各画素配列の行番号を示しており、縦軸は、１次元配列値を構成する各行に対応する要素の値である。また、１次元配列値は行番号に対応する各要素が離散変量として表現されるべきものであるが、図１１の波形は、それらの値を曲線近似で表現したものとする。
【００８２】
さらに、他方の画像が、例えば、基準画像よりズーム倍率が高く、基準画像と中央が同位置であって、かつ、中央周辺８０％の画像で構成されているものとする。この場合、他方の画像の一次元配列値の波形は、波形Ｗ１０１の両端部１０％部分が切断された、図１１の中段で示される波形Ｗ１０２を、図１１の下段で示されるように引き伸ばした波形Ｗ１０３となる。
【００８３】
したがって、ステレオ画像を構成する２枚の画像の基準となる一方の画像と同一の画像になるように、他方の画像を補正するのは、図１２の上段で示されるように、それぞれの画像の一次元配列値の波形Ｗ１０３を、波形Ｗ１０１となるように合わせ込むように補正する必要がある。すなわち、波形Ｗ１０３における極値Ｐ１１乃至Ｐ１５の行番号に対応する画素が、それぞれ対応する波形Ｗ１０１における極値Ｐ１乃至Ｐ５と同一の行番号の画素をシフトする補正により、他方の画像は、一方の画像と同一のズーム倍率の画像とすることができる。
【００８４】
このときの各行番号とシフト量との関係が、図１２の下段の直線として示されている。図１２の下段においては、図中横軸が、他方の画像の画素の各行番号であり、縦軸は、一方の画像における、他方の画像における行番号に対してシフトすべきシフト量が示されている。すなわち、他方の画像の波形Ｗ１０３の端部の行番号＝０は、波形Ｗ１０１の始端より１０％部分が切断された位置であるので、水平方向の画素数が画素数Ｈである場合、シフト量は、その１０％分に相当する行番号Ｓｔ１（＝Ｈ／１０）の画素とされる。また、他方の画像の波形Ｗ１０３の端部の行番号＝Ｈは、波形Ｗ１０１の終端より１０％部分が切断された位置であるので、水平方向の画素数が画素数Ｈである場合、シフト量は、その１０％分に相当する−Ｓｔ１（＝−Ｈ／１０）画素分とされる。この結果、各行番号の画素については、始端および終端のそれぞれのシフト量を結んだ直線Ｌ１により表現することができる。
【００８５】
傾き計算部２３ａは、この直線Ｌ１の傾きを波形Ｗ１０１で表現される一次元配列値の画像を基準としたときの、波形Ｗ１０３の各画素のシフト量の傾きとして求める。また、傾き計算部２３ａは、図１３で示されるように、同様の手法により、波形Ｗ１０３で表現される一次元配列値の画像を基準としたときの、波形Ｗ１０１の各画素のシフト量を傾きとして求める。
【００８６】
すなわち、図１３においては、波形Ｗ１０３で示される一次元配列値の画像を基準として、波形Ｗ１０１で示される一次元配列値の画像の画素を補正する場合、基準となる画像のズーム倍率が大きいために、補正しようとする画像の始端に対応する画素がない。このため、シフト量は、補正しようとする画像の始端より水平方向の画素数に対して１０％短い行番号Ｈ／１０の位置が、負の方向に水平方向の画素数の１０％に相当する−Ｓｔ１（−Ｈ／１０）画素分とされる。同様に、補正しようとする画像の終端より水平方向の画素数に対して１０％短い行番号９Ｈ／１０の行番号の画素である場合、シフト量は、正の方向に水平方向の画素数の１０％に相当するＨ／１０画素分とされる。この結果、各行番号の画素については、始端および終端のそれぞれのシフト量を結んだ直線Ｌ２により表現することができる。すなわち、傾き計算部２３ａは、直線Ｌ２の傾きを、波形Ｗ１０３で表現される一次元配列値の画像を基準としたときの、波形Ｗ１０１の各画素のシフト量を傾きとして求める。
【００８７】
ステップＳ６において、撮像倍率制御部２３は、基準決定部２３ｂを制御して、基準となる画像を決定し、対応するシフト量を決定する直線の傾きを決定する。すなわち、基準となる画像のズーム倍率の方が低く、補正しようとする画像のズーム倍率の方が高い場合、図１２で示されるように、直線Ｌ１が補正しようとする行番号が全範囲に定義されるため、全ての行の画素を補正することができる。一方、基準となる画像のズーム倍率の方が高く、補正しようとする画像のズーム倍率の方が低い場合、図１３で示されるように、直線Ｌ２が補正しようとする行番号の始端近傍および終端近傍を定義することができないため、全ての行の画素を補正することができない。そこで、基準決定部２３ｂは、図１２，図１３を参照して説明したように求められる直線Ｌ１，Ｌ２の傾きのうち、行番号の全範囲を定義することができる傾きが負の状態において定義される基準の画像を基準画像として決定する。
【００８８】
ステップＳ７において、撮像倍率制御部２３は、補正量計算部２３ｃを制御して、基準として決定された画像に対応する傾きに基づいて、補正量であるズーム倍率を計算させる。すなわち、図１２，図１３の場合、直線Ｌ１の傾きに基づいて、補正量であるズーム倍率を計算する。
【００８９】
ステップＳ８において、撮像倍率制御部２３は、補正量計算部２３ｃにより計算されたズーム倍率からなる補正量で補正部２４−１または２４−２のいずれか、基準ではない画像を拡大、または縮小させて補正する。
【００９０】
以上の処理により、ステレオ画像を構成する２枚の画像のズーム倍率のずれ、すなわち、画角のずれを補正することが可能となる。
【００９１】
ところで、以上の例においては、撮像部１１−１，１１−２の垂直方向に対して同一の高さで設定されることが前提である場合の例について説明してきたが、例えば、図１４で示されるように、撮像部１１−１，１１−２で示されるように、高さが異なる場合でも同様の処理で補正することができる。すなわち、図１４においては、撮像部１１’−２が、撮像部１１−１に対して垂直方向に画素数ｄ分だけずれて配設される場合、撮像部１１−１，１１’−２のそれぞれの一次元配列値の波形は、例えば、図１５の上段で示されるような関係となる。すなわち、図１５の上段においては、基準となる画像の一次元配列値の波形Ｗ２０１に対して、画素数ｄ分だけずれて、補正しようとする画像の一次元配列値の波形Ｗ２０２が構成される。このため、補正しようとする画像の一次元配列値の波形Ｗ２０２の極値Ｐ１１１乃至Ｐ１１５は、基準となる画像の極値Ｐ１０１乃至Ｐ１０５に対応する関係となる。
【００９２】
結果として、行単位のシフト量は、図１５の下段で示される直線Ｌ１’として求められることになる。すなわち、始端でのシフト量が、図１２における場合のシフト量にずれ幅の画素数ｄが加算されたＳｔ１＋ｄとされ、終端でのシフト量が、図１３における場合のシフト量にずれ幅の画素数ｄが加算された−Ｓｔ１＋ｄとされる。したがって、シフト量を示す直線Ｌ１は、撮像部１１−２のずれ幅である画素数ｄ分だけシフトした直線Ｌ１’となる。
【００９３】
それ以外の処理については、上述した処理と同様の処理によりズーム倍率のずれ、すなわち、画角のずれを補正すると共に、撮像部１１−１，１１−２間の垂直方向のずれも補正することが可能となる。
【００９４】
＜２．第２の実施の形態＞
［ステレオ画像補正装置のその他の構成例］
以上においては、動的計画法により差分絶対値マップ内において、最適なパスルートを求めた後、そのパスルートから求められるシフト量に基づいて、補正量を設定し、画角のずれ、すなわち、ズーム倍率を補正する例について説明してきた。しかしながら、動的計画法によりパスルートを求める処理については、差分絶対値マップの多くのノード間のコストを計算した上で、パスルートを設定するといった処理が必要となるため、その処理負荷が大きかった。
【００９５】
ところで、シフト量は、ズーム倍率のずれの大きさに応じて定まったものであり、一旦求められれば、求められたシフト量を繰り返し利用することができる。そこで、予めズーム倍率のずれの大きさに応じてシフト量を求めておき、全てのズーム倍率に対して求められたシフト量で一次元配列値を補正した上で、ステレオ画像を構成する２枚の画像のそれぞれの一次元配列値の差分絶対値和を求めるようにする。そして、求められた差分絶対値和が最小となるズーム倍率によるシフト量で、画像を補正するようにして、シフト量を求めるための処理負荷を低減させるようにしてもよい。
【００９６】
図１６は、シフト量を求めるための処理負荷を低減できるようにしたステレオ画像補正装置１２の構成例を示している。尚、図１のステレオ画像補正装置１２における構成と同一の機能を備えた構成については、同一の名称、および同一の符号を付すものとし、その説明は、適宜省略するものとする。
【００９７】
すなわち、図１６のステレオ画像補正装置１２において、図１のステレオ画像補正装置１２と異なる点は、マッチング部２２、および撮像倍率制御部２３に変えて、マッチング部４１、および撮像倍率計算部４２を設け、さらに、補正部４０−１，４０−２を備えるようにさせた点である。
【００９８】
マッチング部４１は、シフト量記憶部４１ａ、補正量計算部４１ｂ、および評価値計算部４１ｃを備えている。マッチング部４１は、シフト量記憶部４１ａに記憶されているズーム倍率のずれに応じて設定されるシフト量を順次読み出す。シフト量記憶部４１ａは、図７のフローチャートを参照して説明した処理により、ズーム倍率のずれ毎に予め計算されたシフト量を、ズーム倍率のずれ量に対応付けて記憶している。例えば、シフト量記憶部４１ａは、ズーム倍率のずれ量に応じて、図１７で示されるように、直線Ｌ１１，Ｌ１２で示されるようなシフト量の情報を記憶している。図１７においては、直線Ｌ１１のシフト量が始端においてシフト量がＳｔ１０１であり、終端においてシフト量が−Ｓｔ１０１とされている。また、直線Ｌ１２のシフト量が始端においてシフト量がＳｔ１０２（＜Ｓｔ１０１）であり、終端においてシフト量が−Ｓｔ１０２とされている。例えば、水平方向の画素数がＨである場合、シフト量Ｌ１１，Ｌ１２のそれぞれズーム倍率のずれが、２０％，１０％であれば、Ｓｔ１０１，Ｓｔ１０２は、それぞれＨ／１０，Ｈ／２０となる。尚、ズーム倍率のずれについては、図１７で示される２種類以上であり、複数の所定の倍率のずれごとにそれぞれシフト量が求められていることが望ましい。
【００９９】
マッチング部４１は、補正量計算部４１ｂを制御して、順次読み出した全てのズーム倍率のずれに応じたシフト量により一次元配列値の補正量を計算させる。そして、マッチング部４１は、補正量計算部４１ｂにより計算された補正量で、補正部４０−１，４０−２のそれぞれに対して水平加算部２１−１，２１−２により計算された一次元配列値を補正させる。
【０１００】
補正部４０−１，４０−２は、補正した一次元配列値を、マッチング部４１に供給する。そして、マッチング部４１は、評価値計算部４１ｃを制御して、順次異なるズーム倍率のずれに応じたシフト量による補正量で補正された一次元配列値の差分絶対値和をズーム倍率のずれに応じた評価値として計算させる。マッチング部４１は、ズーム倍率のずれの大きさ毎に求められた評価値を調整パラメータとして撮像倍率計算部４２に供給する。尚、このとき、マッチング部４１は、併せて、シフト量に応じて補正量の情報も撮像倍率計算部４２に供給する。
【０１０１】
撮像倍率計算部４２は、評価値記憶部４２ａ、シフト量決定部４２ｂ、および補正量記憶部４２ｃを備えている。撮像倍率計算部４２は、マッチング部４１より順次供給されてくるズーム倍率のずれの大きさ毎に求められた評価値、およびシフト量の情報を評価値記憶部４２ａに記憶させる。撮像倍率計算部４２は、シフト量決定部４２ｂを制御して、評価値を評価し、いずれのシフト量を用いるべきであるかを決定させる。そして、撮像倍率計算部４２は、シフト量決定部４２ｂにより決定されたシフト量に応じた、ズーム倍率を補正量として補正量記憶部４２ｃに記憶させ、補正量記憶部４２ｃに記憶されている補正量であるズーム倍率により補正部２４−１，２４−２のいずれかの画像を拡大、または縮小させるように制御する。
【０１０２】
［図１６のステレオ画像補正装置によるステレオ画像補正処理］
次に、図１８のフローチャートを参照して、図１６のステレオ画像補正装置１２によるステレオ画像補正処理について説明する。尚、図１８のステップＳ５１，ＳＳ６０，Ｓ６１の処理については、図２のステップＳ１，Ｓ７，Ｓ８の処理と同様であるので、その説明は省略するものとする。
【０１０３】
すなわち、ステップＳ５１において、撮像部１１−１，１１−２により画像が撮像されると、処理は、ステップＳ５２に進む。
【０１０４】
ステップＳ５２において、水平加算部２１−１，２１−２は、それぞれ供給されてきたステレオ画像を構成する画素の画素値を行単位で加算し、各行の加算値からなる一次元配列値を生成し、それぞれ補正部２１−１，２１−２、およびマッチング部４１に供給する。
【０１０５】
ステップＳ５３において、マッチング部４１は、シフト量記憶部４１ａに記憶されているシフト量のうち、未処理の倍率のずれに対応したシフト量のうち、未処理のズーム倍率のずれに対応したシフト量を処理対象シフト量に設定する。
【０１０６】
ステップＳ５４において、マッチング部４１は、補正量計算部４１ｂを制御して、処理対象シフト量に応じて一次元配列値の補正量を計算させる。
【０１０７】
ステップＳ５５において、マッチング部４１は、計算された補正量の情報を補正部４０−１，４０−２に供給し、それぞれ水平加算部２１−１，２１−２により計算された一次元配列値を補正させて、マッチング部４１に供給させる。
【０１０８】
ステップＳ５６において、マッチング部４１は、評価値計算部４１ｃを制御して、２の一次元配列値の各要素の差分絶対値和を、処理対象となっているズーム倍率のずれに対応した評価値として計算させて、撮像倍率計算部４２に供給する。この際、マッチング部４１は、処理対象となっているズーム倍率のずれに対応した補正量の情報も併せて撮像倍率計算部４２に供給する。
【０１０９】
ステップＳ５７において、撮像倍率計算部４２は、評価値記憶部４２ａを制御して、供給されてきた評価値および補正量の情報を、ズーム倍率のずれに対応付けて記憶させる。
【０１１０】
ステップＳ５８において、マッチング部４１は、シフト量記憶部４１ａに記憶されているシフト量のうち、処理対象シフト量に設定されていないシフト量が存在するか否かを判定する。ステップＳ５８において、例えば、処理対象シフト量に設定されていないシフト量が存在する場合、処理は、ステップＳ５３に戻る。すなわち、全てのシフト量について、評価値が求められるまで、ステップＳ５３乃至Ｓ５８の処理が繰り返される。ステップＳ５８において、全てのシフト量について評価値が求められた場合、処理は、ステップＳ５９に進む。
【０１１１】
ステップＳ５９において、撮像倍率計算部４２は、シフト量決定部４２ｂを制御して、評価値を評価し、いずれのシフト量を用いるべきであるかを決定させる。すなわち、評価値である一次元配列値の各要素の差分絶対値和が最小であるということは、そのズーム倍率のずれに対応付けられたシフト量に基づいた補正によりステレオ画像の２枚に対応する一次元配列値のずれが最小とされていることになるので、そのときのシフト量が用いるべきシフト量として決定される。
【０１１２】
ステップＳ６０において、撮像倍率計算部４２は、決定されたシフト量に対応して設定されている補正量であるズーム倍率を、補正量記憶部４２ｃに記憶させる。
【０１１３】
ステップＳ６１において、撮像倍率計算部４２は、補正量記憶部４２ｃに記憶されている補正量であるズーム倍率で補正部２４−１，２４−２を制御して、撮像部１１−１，１１−２により撮像された画像のいずれかを拡大、または縮小させる。
【０１１４】
以上の処理により補正すべき補正量を決定するにあたり、動的計画法などの処理によりシフト量を求める計算する必要がなくなるので、処理負荷を低減させることが可能となる。結果として、高速でステレオ画像の２枚の画像のズーム倍率のずれ、すなわち、画角のずれを補正することが可能となる。尚、図１６のステレオ画像補正装置１２においても、図１のステレオ画像補正装置１２と同様に、撮像部１１−１，１１−２の撮像位置のずれを補正することも可能である。ただし、この場合、予め撮像部１１−１，１１−２の撮像位置のずれに対応したシフト量計算処理が必要となる。
【０１１５】
また、以上においては、画像を画素単位で補正して、ズーム倍率、すなわち画角を補正する例について説明してきたが、撮像部１１−１，１１−２に撮像される画像を光学系の装置により調整してズーム倍率を調整するようにしてもよい。また、撮像部１１−１，１１−２がそれぞれ物理的に配設されている位置を撮像方向に対して前後させるようにして調整するようにしてもよい。
【０１１６】
本発明によれば、ステレオ画像の２枚のズーム倍率のずれ、すなわち、画角のずれを補正することが可能となる。
【０１１７】
ところで、上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【０１１８】
図１９は、汎用のパーソナルコンピュータの構成例を示している。このパーソナルコンピュータは、CPU(Central Processing Unit)１００１を内蔵している。CPU１００１にはバス１００４を介して、入出力インタ-フェイス１００５が接続されている。バス１００４には、ROM(Read Only Memory)１００２およびRAM(Random Access Memory)１００３が接続されている。
【０１１９】
入出力インタ-フェイス１００５には、ユーザが操作コマンドを入力するキーボード、マウスなどの入力デバイスよりなる入力部１００６、処理操作画面や処理結果の画像を表示デバイスに出力する出力部１００７、プログラムや各種データを格納するハードディスクドライブなどよりなる記憶部１００８、LAN（Local Area Network）アダプタなどよりなり、インターネットに代表されるネットワークを介した通信処理を実行する通信部１００９が接続されている。また、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む）、光磁気ディスク（ＭＤ(Mini Disc)を含む）、もしくは半導体メモリなどのリムーバブルメディア１０１１に対してデータを読み書きするドライブ１０１０が接続されている。
【０１２０】
CPU１００１は、ROM１００２に記憶されているプログラム、または磁気ディスク、光ディスク、光磁気ディスク、もしくは半導体メモリ等のリムーバブルメディア１０１１から読み出されて記憶部１００８にインストールされ、記憶部１００８からRAM１００３にロードされたプログラムに従って各種の処理を実行する。RAM１００３にはまた、CPU１００１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０１２１】
尚、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は、もちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。
【符号の説明】
【０１２２】
１１−１，１１−２  撮像部，  １２  ステレオ画像補正装置，  ２１−１，２１−２  水平加算部，  ２２  マッチング部，  ２３  撮像倍率制御部，  ２４−１，２４−２  補正部，  ４０−１，４０−２  補正部，  ４１  マッチング部，  ４２  撮像倍率制御部
【図１】
2012090145.tif 000003
【図２】
2012090145.tif 000004
【図３】
2012090145.tif 000005
【図４】
2012090145.tif 000006
【図５】
2012090145.tif 000007
【図６】
2012090145.tif 000008
【図７】
2012090145.tif 000009
【図８】
2012090145.tif 000010
【図９】
2012090145.tif 000011
【図１０】
2012090145.tif 000012
【図１１】
2012090145.tif 000013
【図１２】
2012090145.tif 000014
【図１３】
2012090145.tif 000015
【図１４】
2012090145.tif 000016
【図１５】
2012090145.tif 000017
【図１６】
2012090145.tif 000018
【図１７】
2012090145.tif 000019
【図１８】
2012090145.tif 000020
【図１９】
2012090145.tif 000021