(57)【特許請求の範囲】
【請求項１】
撮像装置を回転させながら連続して撮影された複数の撮影画像を接続して３６０度のパノラマ画像を生成する画像処理装置であって、
互いに隣接する前記撮影画像間の差分情報を算出する差分算出部と、
前記差分情報に基づいて、隣接する前記撮影画像を所定位置で接続した場合に生じる画像の破綻の度合いを示すデータを生成するデータ生成部と、
基準となる前記撮影画像と同じ画像を、前記基準となる前記撮影画像からＮ枚目の前記撮影画像に続くＮ＋１枚目の前記撮影画像として、前記基準となる前記撮影画像の特定位置から、前記Ｎ＋１枚目の前記撮影画像の前記特定位置までを用いて前記パノラマ画像を生成する場合に、画像の破綻度合いが最小となる前記撮影画像間の接続位置を前記データに基づいて決定する決定部と、
決定された前記接続位置に基づいて前記撮影画像を接続して、前記パノラマ画像を生成する画像生成部と
を備える画像処理装置。
【請求項２】
前記決定部は、複数の異なる前記特定位置について求められた前記接続位置のうち、前記パノラマ画像の破綻度合いが最小となる前記接続位置を最終的な前記接続位置とする
請求項１に記載の画像処理装置。
【請求項３】
前記データは、隣接する前記撮影画像を前記所定位置で接続した場合に生じる画像の破綻の度合いを、前記撮影画像の前記所定位置に対応するノードのエッジのエネルギとして有する有向グラフである
請求項２に記載の画像処理装置。
【請求項４】
前記データ生成部は、隣接する第１の前記撮影画像と第２の前記撮影画像の前記所定位置における前記差分情報と、前記第１の前記撮影画像と前記第２の前記撮影画像の前記所定位置に隣接する他の位置における前記差分情報との平均値を画像の破綻度合いとして算出し、前記平均値を前記第１の前記撮影画像の前記所定位置に対応するノードと、前記第２の前記撮影画像の前記他の位置に対応するノードとの間のエッジのエネルギとする
請求項３に記載の画像処理装置。
【請求項５】
前記決定部は、前記有向グラフにおける前記基準となる前記撮影画像の前記特定位置に対応するノードから、前記Ｎ＋１枚目の前記撮影画像の前記特定位置に対応するノードまでの経路のうち、前記経路上にあるノード間のエッジのエネルギの合計値が最小となる前記経路を特定することで、前記撮影画像間の前記接続位置を決定する
請求項４に記載の画像処理装置。
【請求項６】
前記画像生成部は、複数の異なる前記撮影画像のそれぞれを前記基準となる前記撮影画像として複数の前記パノラマ画像を生成し、
前記複数の前記パノラマ画像のうち、画像の破綻度合いが最小となる前記パノラマ画像を最終的な前記パノラマ画像として出力する出力部をさらに備える
請求項５に記載の画像処理装置。
【請求項７】
撮像装置を回転させながら連続して撮影された複数の撮影画像を接続して３６０度のパノラマ画像を生成する画像処理方法であって、
互いに隣接する前記撮影画像間の差分情報を算出し、
前記差分情報に基づいて、隣接する前記撮影画像を所定位置で接続した場合に生じる画像の破綻の度合いを示すデータを生成し、
基準となる前記撮影画像と同じ画像を、前記基準となる前記撮影画像からＮ枚目の前記撮影画像に続くＮ＋１枚目の前記撮影画像として、前記基準となる前記撮影画像の特定位置から、前記Ｎ＋１枚目の前記撮影画像の前記特定位置までを用いて前記パノラマ画像を生成する場合に、画像の破綻度合いが最小となる前記撮影画像間の接続位置を前記データに基づいて決定し、
決定された前記接続位置に基づいて前記撮影画像を接続して、前記パノラマ画像を生成する
ステップを含む画像処理方法。
【請求項８】
撮像装置を回転させながら連続して撮影された複数の撮影画像を接続して３６０度のパノラマ画像を生成する画像処理用のプログラムであって、
互いに隣接する前記撮影画像間の差分情報を算出し、
前記差分情報に基づいて、隣接する前記撮影画像を所定位置で接続した場合に生じる画像の破綻の度合いを示すデータを生成し、
基準となる前記撮影画像と同じ画像を、前記基準となる前記撮影画像からＮ枚目の前記撮影画像に続くＮ＋１枚目の前記撮影画像として、前記基準となる前記撮影画像の特定位置から、前記Ｎ＋１枚目の前記撮影画像の前記特定位置までを用いて前記パノラマ画像を生成する場合に、画像の破綻度合いが最小となる前記撮影画像間の接続位置を前記データに基づいて決定し、
決定された前記接続位置に基づいて前記撮影画像を接続して、前記パノラマ画像を生成する
ステップを含む処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は画像処理装置および方法、並びにプログラムに関し、特に３６０度のパノラマ画像を生成する場合に、より高品質なパノラマ画像を得ることができるようにした画像処理装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
例えば、デジタルカメラをおよそ３６度ずつ回転させながら、連続撮影した１０枚の撮影画像から、３６０度のパノラマ画像を生成することができる。すなわち、各撮影画像の中からおよそ３６度分の画角に相当する領域を切り出して、それらの切り出された画像をつなぎ合わせることで、３６０度のパノラマ画像を生成することができる。
【０００３】
このようなパノラマ画像は、具体的には以下のようにして生成される。
【０００４】
まず、互いに隣接する撮影画像を解析することで、隣接する撮影画像間の位置関係が求められる。そして、これらの位置関係を累積することで、１枚目の撮影画像を基準とした座標系における各撮影画像を撮影した方向（以下、撮影方向とも称する）が求められる。
【０００５】
このような１枚目の撮影画像を基準とした座標系における各撮影画像の撮影方向、すなわち１枚目の撮影画像を基準とした座標系における各撮影画像の位置関係は、一般的に３×３行列で表現することができ、同次変換行列（homography）と呼ばれている。
【０００６】
１枚目の撮影画像を基準とした座標系におけるｓ枚目の撮影画像の位置関係を表す同次変換行列をＨ１，ｓとすると、次式（１）の関係が成立する。
【０００７】
【数１】
0005870636.tif 000002
【０００８】
なお、式（１）において、Ｆは撮影画像の撮影時のレンズの焦点距離を示している。また、式（１）においてＸｔ，Ｙｔは、ｔ枚目（但し、１≦ｔ）の撮影画像を基準とする座標系におけるＸ座標およびＹ座標を示している。
【０００９】
式（１）は、ｓ枚目の撮影画像上の任意の位置（Ｘｓ，Ｙｓ）の画素に映し出された被写体は、１枚目の撮影画像上の位置（Ｘ１，Ｙ１）の画素にも映し出されていることを意味している。なお、ｓ＝１における同次変換行列Ｈ１，ｓは、単位行列である。また、画像解析により同次変換行列を求める方法は既知であるため、その詳細な説明は省略する。
【００１０】
さて、１枚目の撮影画像を基準とした座標系において、図１に示すような円筒面を考える。なお、図１において、互いに直交するＸ１軸，Ｙ１軸，Ｚ１軸は、１枚目の撮影画像を基準としたＸ１Ｙ１Ｚ１座標系の軸を示しており、ＣＬ１１は円筒面を表している。
【００１１】
円筒面ＣＬ１１は、Ｙ１軸を中心とする半径Ｆの円筒の側面となっている。いま、この円筒面ＣＬ１１のＺ１軸と交わる位置を原点とし、Ｙ１軸と平行な軸をＣｙ軸，Ｘ１Ｚ１平面上において円筒面ＣＬ１１に沿う軸をＣｘ軸とするＣｘＣｙ座標系の位置を（Ｃｘ，Ｃｙ）とする。すなわち、図１における円弧ＡＲ１１の長さがＣｘであり、直線ＳＬ１１の長さがＣｙである。なお、より詳細には図中、下方向がＣｙ軸の正の方向となっている。
【００１２】
図１から分かるように、Ｘ１Ｙ１Ｚ１座標系の原点Ｏから点（Ｃｘ，Ｃｙ）へと向かう方向は、Ｘ１Ｙ１Ｚ１座標系において、次式（２）を満たす（Ｘ１，Ｙ１，Ｚ１）方向と同値である。
【００１３】
【数２】
0005870636.tif 000003
【００１４】
また、式（１）および式（２）から以下のことがいえる。すなわち、ｓ枚目の撮影画像（１≦ｓ≦１０）の任意の位置（Ｘｓ，Ｙｓ）の画素の画素値を、円筒面ＣＬ１１上の次式（３）を満たす位置（Ｃｘ，Ｃｙ）にマッピング（コピー）する。このようにして、円筒面ＣＬ１１上の各位置（Ｃｘ，Ｃｙ）の画素値を確定していけば、円筒面ＣＬ１１上に３６０度のパノラマ画像を構築することができる。
【００１５】
【数３】
0005870636.tif 000004
【００１６】
以下、図２乃至図５を参照して、各撮影画像が円筒面ＣＬ１１にマッピングされてパノラマ画像が構築される様子について、再度説明する。
【００１７】
図２乃至図５には、円筒面ＣＬ１１を展開した２次元平面上に配置された投影画像、すなわち撮影画像をマッピングして得られた画像が示されており、図中、横方向はＣｘ軸方向を示している。
【００１８】
図２では、円筒面ＣＬ１１を展開した２次元平面の図中、横方向の長さ（角度）は、０度から３６０度までとされており、この角度はＣｘＣｙ座標系におけるＣｘ座標に相当する。
【００１９】
また、図２では、画像Ｐ１乃至画像Ｐ１０は、１枚目乃至１０枚目の撮影画像を、それぞれｓ＝１乃至１０として上述した式（３）により円筒面ＣＬ１１にマッピングして得られた画像である。例えば、画像Ｐ１は、式（３）における変数ｓをｓ＝１として計算することで、１枚目の撮影画像を円筒面ＣＬ１１上にマッピングした画像である。
【００２０】
ここで、画像Ｐ１乃至画像Ｐ１０において斜線が施されている領域は、１枚目乃至１０枚目の撮影画像の画素がマッピングされた領域、すなわち投影画像の領域である。また、画像Ｐ１乃至画像Ｐ１０の斜線が施されていない領域は、撮影画像の撮影範囲外の部分であったために、１枚目乃至１０枚目の撮影画像の画素がマッピングされなかった領域である。
【００２１】
例えば、円筒面ＣＬ１１は１枚目の撮影画像を基準として定められるため、画像Ｐ１上の投影画像の中心の位置は０度の位置となっている。
【００２２】
画像Ｐ１乃至画像Ｐ１０の投影画像の領域は、画素の画素値が確定しているので、これらの１０枚の画像の画像データを組み合わせれば、３６０度のパノラマ画像が得られることになる。
【００２３】
ここで、説明を分かり易くするため、画像Ｐ１上の斜線が施された領域の図２中、左端、つまり投影画像の左端がＣｘ＝０の位置となるように、Ｃｘ座標系にオフセットを加えると、図３に示すようになる。
【００２４】
図３に示す画像Ｐ１乃至画像Ｐ１０では、加えられたオフセットの分だけ、斜線が施された投影画像の領域が移動されている。
【００２５】
ここで、Ｃｘの座標の単位として、円筒面ＣＬ１１の１周分が３６となるようにする場合を考える。このＣｘは、最終的な３６０度のパノラマ画像における横方向の画素ピッチと密接に関係している。
【００２６】
円筒面ＣＬ１１の１周分が３６となるようにするということは、最終的な３６０度のパノラマ画像の横方向（Ｃｘ軸の方向）の長さが３６画素であることを意味する。なお、通常、最終的な３６０度のパノラマ画像の横方向の長さは数千であるが、ここでは説明を簡単にするために３６という小さい数字としている。
【００２７】
このようにＣｘの座標の単位を定めた場合に、図３に示した各画像Ｐ１乃至画像Ｐ１０が配置される２次元平面の横方向を、角度に代えてＣｘの座標系を用いて表すと、図４に示すようになる。
【００２８】
なお、図４においても、各画像Ｐ１乃至画像Ｐ１０における斜線が施された領域は投影画像の領域を表している。
【００２９】
ところで、図４において、各画像Ｐ１乃至画像Ｐ１０における投影画像の一部の領域をつなぎ合わせると、３６０度のパノラマ画像を得ることができる。
【００３０】
具体的には例えば、図５に示すように、画像Ｐ１乃至画像Ｐ１０の投影画像の領域のうちの領域ＴＲ１乃至領域ＴＲ１０をつなぎ合わせると、３６０度のパノラマ画像を得ることができる。
【００３１】
図５の例では、領域ＴＲ１は画像Ｐ１上のＣｘ座標が１０から１４までの領域とされている。また、領域ＴＲ２は画像Ｐ２上のＣｘ座標が１５から１８までの領域とされ、領域ＴＲ３は画像Ｐ３上のＣｘ座標が１９から２１までの領域とされ、領域ＴＲ４は画像Ｐ４上のＣｘ座標が２２から２６までの領域とされている。
【００３２】
領域ＴＲ５は画像Ｐ５上のＣｘ座標が２７から２９までの領域とされ、領域ＴＲ６は画像Ｐ６上のＣｘ座標が３０から３１までの領域とされ、領域ＴＲ７は画像Ｐ７上のＣｘ座標が３２から３４までの領域とされている。
【００３３】
さらに、領域ＴＲ８は画像Ｐ８上のＣｘ座標が３５の領域、およびＣｘ座標が０から３までの領域とされ、領域ＴＲ９は画像Ｐ９上のＣｘ座標が４から５までの領域とされ、領域ＴＲ１０は画像Ｐ１０上のＣｘ座標が６から９までの領域とされている。
【００３４】
以上のように、領域ＴＲ１乃至領域ＴＲ１０をつなぎ合わせれば、３６０度のパノラマ画像が得られる。
【００３５】
また、パノラマ画像に関する技術として、各撮影画像上の領域を切り出してつなぎ合わせ、パノラマ画像を生成するときに、撮影画像上の切り出される領域の端において動被写体が分断されないようにする技術が提案されている（例えば、特許文献１参照）。この技術を用いれば、パノラマ画像上に動被写体の一部だけが分断されて表示されているなどの、画像の破綻を抑制することができるので、高品質なパノラマ画像を得ることができる。
【先行技術文献】
【特許文献】
【００３６】
【特許文献１】特開２０１１−９７２４６号公報
【発明の概要】
【発明が解決しようとする課題】
【００３７】
ところで、上述した３６０度のパノラマ画像を生成するときに、撮影画像に動被写体が映っている場合について考えてみる。
【００３８】
例えば、図５に示した例では、各撮影画像は、１枚目から１０枚目まで連続して撮影されている。換言すれば、それらの撮影画像のなかには、同時刻に撮影された撮影画像は１組も存在しない。１つのカメラで撮影しているので当然である。したがって、動被写体を撮影した場合、ある撮影画像においては動被写体が映っていても、別の撮影画像ではその動被写体が映っていないこともあり得る。
【００３９】
例えば、図６に示すように１枚目の撮影画像に対応する画像Ｐ１において、Ｃｘ座標が１３乃至１６である領域に、１つの動被写体ＭＢ１１が投影されていたとする。なお、図６において、図５における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【００４０】
この動被写体ＭＢ１１は、２枚目の撮影画像を撮影したときには移動しており、例えば２枚目の撮影画像に対応する画像Ｐ２において、Ｃｘ座標が１０乃至１３である領域に投影されていたとする。
【００４１】
さらに、１枚目の撮影画像に対応する画像Ｐ１において、Ｃｘ座標が８乃至１０である領域に、別の動被写体ＭＢ１２が投影されているとする。また、この動被写体ＭＢ１２は１０枚目の撮影画像を撮影したときには移動しており、１０枚目の撮影画像に対応する画像Ｐ１０において、Ｃｘ座標が１２乃至１４である領域に投影されていたとする。
【００４２】
ここで、３６０度のパノラマ画像を生成するのに、各画像Ｐ１乃至画像Ｐ１０における領域ＴＲ１乃至領域ＴＲ１０が用いられるとすると、最終的に得られるパノラマ画像上において、動被写体ＭＢ１１や動被写体ＭＢ１２は分断された画像となってしまう。
【００４３】
具体的には、パノラマ画像の生成には、１枚目の撮影画像に対応する画像Ｐ１における領域ＴＲ１が用いられる。この領域ＴＲ１には、動被写体ＭＢ１１の一部のみが投影されているが、パノラマ画像の生成時に領域ＴＲ１と接続される領域ＴＲ２には、動被写体ＭＢ１１が投影されていない。したがって、最終的に得られたパノラマ画像上には、動被写体ＭＢ１１の一部のみが映っていることになる。
【００４４】
同様に、領域ＴＲ１に一部のみが投影されている動被写体ＭＢ１２は、パノラマ画像の生成時に領域ＴＲ１と接続される領域ＴＲ１０には投影されていない。そのため、最終的に得られたパノラマ画像上には、動被写体ＭＢ１２の一部のみが映っていることになる。
【００４５】
このように、各撮影画像に投影される動被写体の動きによっては、動被写体が分断されてしまい、最終的に得られたパノラマ画像は動被写体の一部のみが投影された不自然なものとなってしまう。そのため、３６０度のパノラマ画像を生成するにあたり、このような動被写体の分断の発生を抑制するような手法が求められている。
【００４６】
なお、特許文献１に記載の技術では、動被写体による画像の破綻をある程度抑制することが可能であるが、この技術では３６０度という周回した画像に対応することはできなかった。すなわち、最初（１枚目）の撮影画像と最後の撮影画像とのつなぎ目の部分について、動被写体の分断が生じないようにつなぎ目を定めることはできなかった。
【００４７】
本技術は、このような状況に鑑みてなされたものであり、３６０度のパノラマ画像を生成する場合に、より高品質なパノラマ画像を得ることができるようにするものである。
【課題を解決するための手段】
【００４８】
本技術の一側面の画像処理装置は、撮像装置を回転させながら連続して撮影された複数の撮影画像を接続して３６０度のパノラマ画像を生成する画像処理装置であって、互いに隣接する前記撮影画像間の差分情報を算出する差分算出部と、前記差分情報に基づいて、隣接する前記撮影画像を所定位置で接続した場合に生じる画像の破綻の度合いを示すデータを生成するデータ生成部と、基準となる前記撮影画像と同じ画像を、前記基準となる前記撮影画像からＮ枚目の前記撮影画像に続くＮ＋１枚目の前記撮影画像として、前記基準となる前記撮影画像の特定位置から、前記Ｎ＋１枚目の前記撮影画像の前記特定位置までを用いて前記パノラマ画像を生成する場合に、画像の破綻度合いが最小となる前記撮影画像間の接続位置を前記データに基づいて決定する決定部と、決定された前記接続位置に基づいて前記撮影画像を接続して、前記パノラマ画像を生成する画像生成部とを備える。
【００４９】
前記決定部には、複数の異なる前記特定位置について求められた前記接続位置のうち、前記パノラマ画像の破綻度合いが最小となる前記接続位置を最終的な前記接続位置とさせることができる。
【００５０】
前記データを、隣接する前記撮影画像を前記所定位置で接続した場合に生じる画像の破綻の度合いを、前記撮影画像の前記所定位置に対応するノードのエッジのエネルギとして有する有向グラフとすることができる。
【００５１】
前記データ生成部には、隣接する第１の前記撮影画像と第２の前記撮影画像の前記所定位置における前記差分情報と、前記第１の前記撮影画像と前記第２の前記撮影画像の前記所定位置に隣接する他の位置における前記差分情報との平均値を画像の破綻度合いとして算出させ、前記平均値を前記第１の前記撮影画像の前記所定位置に対応するノードと、前記第２の前記撮影画像の前記他の位置に対応するノードとの間のエッジのエネルギとさせることができる。
【００５２】
前記決定部には、前記有向グラフにおける前記基準となる前記撮影画像の前記特定位置に対応するノードから、前記Ｎ＋１枚目の前記撮影画像の前記特定位置に対応するノードまでの経路のうち、前記経路上にあるノード間のエッジのエネルギの合計値が最小となる前記経路を特定することで、前記撮影画像間の前記接続位置を決定させることができる。
【００５３】
前記画像生成部には、複数の異なる前記撮影画像のそれぞれを前記基準となる前記撮影画像として複数の前記パノラマ画像を生成させ、画像処理装置には、前記複数の前記パノラマ画像のうち、画像の破綻度合いが最小となる前記パノラマ画像を最終的な前記パノラマ画像として出力する出力部をさらに設けることができる。
【００５４】
本技術の一側面の画像処理方法またはプログラムは、撮像装置を回転させながら連続して撮影された複数の撮影画像を接続して３６０度のパノラマ画像を生成する画像処理方法またはプログラムであって、互いに隣接する前記撮影画像間の差分情報を算出し、前記差分情報に基づいて、隣接する前記撮影画像を所定位置で接続した場合に生じる画像の破綻の度合いを示すデータを生成し、基準となる前記撮影画像と同じ画像を、前記基準となる前記撮影画像からＮ枚目の前記撮影画像に続くＮ＋１枚目の前記撮影画像として、前記基準となる前記撮影画像の特定位置から、前記Ｎ＋１枚目の前記撮影画像の前記特定位置までを用いて前記パノラマ画像を生成する場合に、画像の破綻度合いが最小となる前記撮影画像間の接続位置を前記データに基づいて決定し、決定された前記接続位置に基づいて前記撮影画像を接続して、前記パノラマ画像を生成するステップを含む。
【００５５】
本技術の一側面においては、撮像装置を回転させながら連続して撮影された複数の撮影画像を接続して３６０度のパノラマ画像を生成する場合に、互いに隣接する前記撮影画像間の差分情報が算出され、前記差分情報に基づいて、隣接する前記撮影画像を所定位置で接続した場合に生じる画像の破綻の度合いを示すデータが生成され、基準となる前記撮影画像と同じ画像を、前記基準となる前記撮影画像からＮ枚目の前記撮影画像に続くＮ＋１枚目の前記撮影画像として、前記基準となる前記撮影画像の特定位置から、前記Ｎ＋１枚目の前記撮影画像の前記特定位置までを用いて前記パノラマ画像を生成する場合に、画像の破綻度合いが最小となる前記撮影画像間の接続位置が前記データに基づいて決定され、決定された前記接続位置に基づいて前記撮影画像が接続されて、前記パノラマ画像が生成される。
【発明の効果】
【００５６】
本技術の一側面によれば、より高品質なパノラマ画像を得ることができる。
【図面の簡単な説明】
【００５７】
【図１】撮影画像が投影される円筒面について説明する図である。
【図２】円筒面上に投影された画像について説明する図である。
【図３】円筒面上に投影された画像について説明する図である。
【図４】円筒面上に投影された画像について説明する図である。
【図５】パノラマ画像の生成について説明する図である。
【図６】パノラマ画像上における動被写体の分断について説明する図である。
【図７】円筒面上に投影された投影画像について説明する図である。
【図８】投影画像から生成される有向グラフについて説明する図である。
【図９】投影画像から生成される有向グラフについて説明する図である。
【図１０】投影画像から生成される有向グラフについて説明する図である。
【図１１】投影画像から生成される有向グラフについて説明する図である。
【図１２】投影画像から生成される有向グラフについて説明する図である。
【図１３】差分累積値について説明する図である。
【図１４】有向グラフのエッジに与えられるエネルギについて説明する図である。
【図１５】有向グラフ上の特定のノードを通る経路について説明する図である。
【図１６】有向グラフ上の特定のノードを通る経路について説明する図である。
【図１７】経路選択とパノラマ画像での動被写体の分断について説明する図である。
【図１８】有向グラフ上の特定のノードを通る経路について説明する図である。
【図１９】有向グラフ上の特定のノードを通る経路について説明する図である。
【図２０】有向グラフ上の特定のノードを通る経路について説明する図である。
【図２１】有向グラフ上の特定のノードを通る経路について説明する図である。
【図２２】画像処理装置の構成例を示す図である。
【図２３】パノラマ画像生成処理について説明するフローチャートである。
【図２４】マッピング処理について説明するフローチャートである。
【図２５】マッピング処理の擬似コードを示す図である。
【図２６】マッピング処理の擬似コードを示す図である。
【図２７】第１キャンバス領域の縦方向の長さについて説明する図である。
【図２８】投影画像に対する加工について説明する図である。
【図２９】差分累積値算出の擬似コードを示す図である。
【図３０】差分累積値算出の擬似コードを示す図である。
【図３１】有向グラフ生成の擬似コードを示す図である。
【図３２】有向グラフ生成の擬似コードを示す図である。
【図３３】有向グラフ生成の擬似コードを示す図である。
【図３４】経路探索の擬似コードを示す図である。
【図３５】パノラマ画像生成の擬似コードを示す図である。
【図３６】画像処理装置の他の構成例を示す図である。
【図３７】パノラマ画像生成処理について説明するフローチャートである。
【図３８】画像セット生成の擬似コードを示す図である。
【図３９】コンピュータの構成例を示す図である。
【発明を実施するための形態】
【００５８】
以下、図面を参照して、本技術を適用した実施の形態について説明する。
【００５９】
〈第１の実施の形態〉
［本技術の概要］
まず、本技術の概要について説明する。
【００６０】
例えば、カメラ等の撮像装置を回転移動させながら連続して撮影した撮影画像と、それらの撮影画像の位置関係を示す同次変換行列が得られているものとする。ここでは、１０枚の撮影画像が得られているものとする。
【００６１】
このとき、１枚目の撮影画像を基準としたＸ１Ｙ１Ｚ１座標系に対して、上述したＣｘＣｙ座標系を定義し、各撮影画像を式（３）により円筒面ＣＬ１１上に射影すると、図７に示す投影画像が得られる。
【００６２】
なお、図７は、撮影画像が投影された円筒面ＣＬ１１を展開した２次元平面を示しており、図中、横方向はＣｘＣｙ座標系におけるＣｘ軸方向を示している。また、図７では、円筒面ＣＬ１１の１周分が３６となるようにＣｘが定められているとともに、２次元平面（円筒面ＣＬ１１）に投影された１枚目の撮影画像の図中、左端の位置がＣｘ＝０となるようにオフセットが加えられている。
【００６３】
図７では、投影画像ＰＲ１乃至投影画像ＰＲ１０は、１枚目乃至１０枚目の撮影画像を式（３）により円筒面ＣＬ１１にマッピング（投影）して得られた画像を示している。また、投影画像ＰＲ１１は、円筒面ＣＬ１１上において投影画像ＰＲ１を周回分、すなわちＣｘ＝３６だけ図中、右方向に移動させたものを示している。
【００６４】
このようにして得られた各投影画像の一部がつなぎ合わせられて３６０度のパノラマ画像が生成されるが、本技術では互いに隣接する投影画像のつなぎ目、すなわちパノラマ画像の生成に用いられる投影画像の領域の端部分の位置が、有向グラフが利用されて定められる。
【００６５】
例えば、円筒面ＣＬ１１上にマッピングされた各投影画像ＰＲ１乃至投影画像ＰＲ１１に基づいて、図８に示す有向グラフが生成される。
【００６６】
なお、図８において横方向はＣｘＣｙ座標系におけるＣｘ軸方向を示しており、縦方向は撮影画像（投影画像）の撮影された順番、すなわち変数ｓを示している。ここでは、上述したように１枚目の投影画像が１１枚目（ｓ＝１１）の投影画像としても用いられている。
【００６７】
有向グラフは向き（矢印）を有するグラフであるが、図８に示す有向グラフは、煩雑になるので矢印ではなく線分で描かれている。
【００６８】
したがって、例えばこの有向グラフのＱ１１乃至Ｑ１４の領域の部分は、より詳細には図９乃至図１２に示すようになっている。なお、図９乃至図１２において、横方向はＣｘＣｙ座標系におけるＣｘ軸方向を示しており、縦方向は撮影画像（投影画像）の撮影された順番を示している。
【００６９】
図９は、図８の有向グラフの領域Ｑ１１の部分を拡大表示した図である。図９では、投影画像ＰＲ１と投影画像ＰＲ２が存在する領域に図中、円で示されるノードが設けられ、各ノードが矢印により接続されている。
【００７０】
この例では、Ｃｘ軸方向に隣接する各ノードは矢印により接続されるとともに、投影画像ＰＲ１が存在する領域に設けられたノードのうち、一部のノードは、それらのノードの図中、右下にあるノードと矢印で接続されている。
【００７１】
なお、以下、ｓ枚目（但し、１≦ｓ≦１１）の投影画像ＰＲｓに対応する領域におけるＣｘ軸方向の位置（Ｃｘ座標）がＣｘであるノードを、位置（Ｃｘ，ｓ）にあるノードとも称することとする。
【００７２】
また、図１０は、図８の有向グラフの領域Ｑ１２の部分を拡大表示した図である。この例においてもＣｘ軸方向に隣接する各ノードは矢印により接続されており、自分自身から見て図中、右下方向に他のノードがあるノードにつては、そのノードと右下にあるノードとが矢印で接続されている。
【００７３】
さらに、図１１は図８の有向グラフの領域Ｑ１３の部分を拡大表示した図であり、この例においてもＣｘ軸方向および図中、右下方向に隣接する各ノードは矢印により接続されている。
【００７４】
同様に、図１２は図８の有向グラフの領域Ｑ１４の部分を拡大表示した図であり、この例においてもＣｘ軸方向および図中、右下方向に隣接する各ノードは矢印により接続されている。
【００７５】
例えば図１２において、位置（Ｃｘ，ｓ）＝（３４，７）にあるノードと、位置（３５，７）にあるノードとを結ぶ矢印Ｗ１１は、位置（３４，７）から位置（３５，７）へのエッジを意味している。
【００７６】
また、例えば位置（Ｃｘ，ｓ）＝（３４，６）にあるノードと、位置（３５，７）にあるノードとを結ぶ矢印Ｗ１２は、位置（３４，６）から位置（３５，７）へのエッジを意味している。すなわち、各ノードを接続する矢印はエッジを意味している。
【００７７】
このように、図８に示した有向グラフは、図中、左から右方向に、または図中、左上から右下方向に向かう有向なグラフである。
【００７８】
具体的には、図７に示した各投影画像ＰＲ１乃至投影画像ＰＲ１１から、以下のようにして図８の有向グラフが生成される。
【００７９】
まず、図８のｓ＝１の列のノード（矢印の始点あるいは終点）が、投影画像ＰＲ１の図７中、横方向の両端を１ずつ減らすことで定められる。すなわち、投影画像ＰＲ１は、Ｃｘ＝０から２２に存在しているので、それらのＣｘ方向の両端が除かれたＣｘ＝１から２１の各位置、つまり位置（１，１）から位置（２１，１）の各位置にノードが設けられる。そして、これらのノードを始点および終点とする図８中、右方向（＋Ｃｘ軸方向）の矢印が加えられる。
【００８０】
続いて、図８のｓ＝２の列のノードが、投影画像ＰＲ２の図７中、横方向の両端を１ずつ減らすことで定められる。すなわち、投影画像ＰＲ２は、Ｃｘ＝４から２６に存在しているので、それらのＣｘ方向の両端が除かれたＣｘ＝５から２５の各位置、つまり位置（５，２）から位置（２５，２）の各位置にノードが設けられる。そして、これらのノードを始点および終点とする図８中、右方向（＋Ｃｘ軸方向）の矢印が加えられる。
【００８１】
以下、同様にして、図８のｓ＝３乃至１１の各列のノードが生成されていく。さらに、図８において、ｓ＝１乃至１０である任意の位置（Ｃｘ，ｓ）について、その位置（Ｃｘ，ｓ）と、位置（Ｃｘ＋１，ｓ＋１）の２つの位置にノードがある場合には、位置（Ｃｘ，ｓ）を始点とし、位置（Ｃｘ＋１，ｓ＋１）を終点とする右下方向の矢印（エッジ）が加えられる。
【００８２】
以上のようにして、各投影画像から１つの有向グラフが生成される。なお、より詳細には、この有向グラフの各ノード間を結ぶ矢印（エッジ）には、エネルギが与えられ、そのエネルギに基づいて各投影画像のつなぎ目、つまりパノラマ画像の生成に用いられる領域の端の位置（接続位置）が定められる。
【００８３】
有向グラフの各ノード間の矢印（エッジ）のエネルギは、それらの２つのノードに対応する投影画像の領域の差分等により求められる。以下、ノード間の矢印に与えられるエネルギの算出方法について説明する。
【００８４】
例えば、図１３に示すように、３つの動被写体ＭＢ３１乃至動被写体ＭＢ３３を被写体として撮影画像を撮影したとする。なお、図１３において、横方向および縦方向はＣｘ軸方向およびＣｙ軸方向を示している。また、図１３において、図７における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【００８５】
例えば、動被写体ＭＢ３１が図中、右方向、つまりＣｘＣｙ座標系における＋Ｃｘ軸方向に移動していたとする。また、動被写体ＭＢ３２が図中、上方向、つまりＣｘＣｙ座標系における−Ｃｙ軸方向に移動しており、動被写体ＭＢ３３が図中、右斜め下方向に移動していたとする。
【００８６】
このとき、１枚目の撮影画像を撮影した後、２枚目の撮影画像を撮影するので、これらの２枚の撮影の間で動被写体ＭＢ３１乃至動被写体ＭＢ３３は移動している。
【００８７】
したがって、１枚目の撮影画像を円筒面ＣＬ１１にマッピングして得られた投影画像ＰＲ１と、２枚目の投影画像ＰＲ２とでは、ＣｘＣｙ座標系における動被写体ＭＢ３１乃至動被写体ＭＢ３３の位置は異なっている。
【００８８】
ここで、投影画像ＰＲ１と投影画像ＰＲ２が互いに重なる部分について差分を求めると、差分画像ＤＰ１１が得られる。例えば、この差分画像ＤＰ１１の画素の画素値は、その画素と同じ位置にある投影画像ＰＲ１の画素の画素値と、投影画像ＰＲ２の画素の画素値の差分の絶対値とされる。
【００８９】
したがって、差分画像Ｄ１１Ｐにおいて画素の画素値が所定の閾値以上となる画素、例えば画素値が０でない画素からなる領域は、動被写体が投影されていた領域である。図１３では、差分画像ＤＰ１１において斜線が施されていない領域が、動被写体の領域を示している。
【００９０】
さらに、差分画像ＤＰ１１のＣｙ軸方向に並ぶ画素、すなわちＣｘ座標が同じである画素の画素値をＣｙ軸方向に蓄積すると（Ｃｘ軸上に写像すると）、矢印ＤＦ１１に示すように投影画像ＰＲ１と投影画像ＰＲ２の差分累積値Diff[1,2](Cx)が得られる。
【００９１】
ここで、例えば差分累積値Diff[1,2](5)の値は、差分画像ＤＰ１１におけるＣｘ＝５である各画素の画素値の総和とされる。
【００９２】
このようにして得られた差分累積値Diff[1,2](Cx)の値が０でない位置Ｃｘの部分では、１枚目と２枚目の撮影画像、すなわち投影画像ＰＲ１と投影画像ＰＲ２には、動被写体が存在していたことになる。逆に、差分累積値Diff[1,2](Cx)の値が０となる位置Ｃｘの部分では、１枚目と２枚目の撮影画像（投影画像ＰＲ１と投影画像ＰＲ２）には、動被写体が存在していなかったことになる。
【００９３】
なお、以下ではｓ枚目の撮影画像に対応する投影画像ＰＲｓと、ｓ＋１枚目の撮影画像に対応する投影画像ＰＲｓ＋１とから得られた差分画像から求まる位置Ｃｘの差分累積値をDiff[s,s+1](Cx)で表すこととする。
【００９４】
本技術では、以上のようにして得られた差分累積値Diff[s,s+1](Cx)が図８に示した有向グラフに反映される。すなわち、各差分累積値Diff[s,s+1](Cx)に基づいて、ノード間の矢印（エッジ）のエネルギが定められる。
【００９５】
具体的には、例えば図８の有向グラフの領域Ｑ１２の部分、つまり図１０に拡大表示した部分の各ノードにエネルギが与えられると、図１４に示すようになる。なお、図１４において、横方向はＣｘ軸方向を示しており、縦方向は撮影画像（投影画像）が撮影された順番を示している。
【００９６】
図１４では、各ノード間の矢印（エッジ）の太さが、その矢印に与えられたエネルギの大きさを示しており、矢印が太いほどエネルギが大きいことを表している。
【００９７】
例えば、位置（Ｃｘ，１）にあるノードを始点とし、位置（Ｃｘ＋１，２）にあるノードを終点とする図中、右下方向の矢印（エッジ）のエネルギは、差分累積値Diff[1,2](Cx)と差分累積値Diff[1,2](Cx+1)の平均値とされる。
【００９８】
したがって、それらのノードの位置に対応する投影画像の位置にある動被写体のＣｙ方向の面積や、その動被写体の動きが大きいほど差分累積値は大きくなり、その結果、ノード間の矢印のエネルギも大きくなる。つまりノード間の矢印が太くなる。なお、図１４中、右方向、つまりＣｘ軸方向に並ぶノード間の矢印のエネルギは、基本的に０とされる。
【００９９】
さて、３６０度のパノラマ画像の生成に用いる投影画像の領域の境界位置を決定することを、有向グラフの位置（Ｃｘ，１）にあるノードから、いくつかのノードを経由して位置（Ｃｘ，１１）にあるノードに到達する経路（パス）を定めることに対応させるとする。
【０１００】
具体的には、例えば図８の有向グラフのｓ＝１から２の部分に着目して、図１５に示すように位置（Ｃｘ，ｓ）＝（４，１）のノードから出発し、位置（１４，１）および位置（１５，２）を経由して位置（２２，２）に到達する経路ＰＴ１１を考えるとする。
【０１０１】
この経路ＰＴ１１は、投影画像ＰＲ１における位置Ｃｘ＝４乃至１４までの領域と、投影画像ＰＲ２における位置Ｃｘ＝１５乃至２２までの領域とを、３６０度のパノラマ画像の生成に使用することに対応する。
【０１０２】
図１４に示した有効グラフのノード間の矢印のエネルギによれば、位置（１４，１）にあるノードを始点とし、位置（１５，２）にあるノードを終点とする右下方向の矢印には小さなエネルギが与えられている。そのため、経路ＰＴ１１上にあるエッジ（ノード間の矢印）のエネルギの合計を、経路ＰＴ１１のエネルギ合計値として求めると、そのエネルギ合計値は小さな値となる。
【０１０３】
ここで、各ノード間の矢印のエネルギは、それらのノードの位置に対応する投影画像の位置にある動被写体のＣｙ方向の面積や、その動被写体の動きが小さいほど、小さくなる。したがって、経路ＰＴ１１のエネルギ合計値が小さいほど、投影画像ＰＲ１と投影画像ＰＲ２のつなぎ目において、動被写体の分断が少ないなど、画像の破綻が少なくなる。
【０１０４】
一方、図１６に示すように、位置（Ｃｘ，ｓ）＝（４，１）のノードから出発し、位置（１９，１）および位置（２０，２）を経由して位置（２２，２）に到達する経路ＰＴ１２を考えるとする。
【０１０５】
この経路ＰＴ１２は、投影画像ＰＲ１における位置Ｃｘ＝４乃至１９までの領域と、投影画像ＰＲ２における位置Ｃｘ＝２０乃至２２までの領域とを、３６０度のパノラマ画像の生成に使用することに対応する。
【０１０６】
図１４に示した有効グラフのノード間の矢印のエネルギによれば、位置（１９，１）にあるノードを始点とし、位置（２０，２）にあるノードを終点とする右下方向の矢印には大きなエネルギが与えられている。
【０１０７】
そのため、経路ＰＴ１２のエネルギ合計値は大きな値となり、この経路ＰＴ１２により定まる投影画像ＰＲ１と投影画像ＰＲ２の領域をつなぎ合わせてパノラマ画像を生成すると、画像の破綻が大きくなり、パノラマ画像の品質が劣化してしまうことが分かる。
【０１０８】
このように、経路ＰＴ１１により定まる投影画像の領域を用いてパノラマ画像を生成した場合と、経路ＰＴ１２により定まる投影画像の領域を用いてパノラマ画像を生成した場合とでは、図１７に示すようにパノラマ画像の品質は大きく異なる。
【０１０９】
なお、図１７において、横方向はＣｘ軸方向を示しており、縦方向はＣｙ軸方向を示している。また、図１７において、図１３における場合と対応する部分には、同一の符号を付してあり、その説明は適宜省略する。
【０１１０】
図１７では、点線ＢＤ１１は、経路ＰＴ１１により定まる投影画像の境界位置（接続位置）を示しており、点線ＢＤ１２は、経路ＰＴ１２により定まる投影画像の境界位置（接続位置）を示している。
【０１１１】
例えば、経路ＰＴ１１により定まる点線ＢＤ１１が境界位置とされる場合、投影画像ＰＲ１における点線ＢＤ１１よりも左側の領域と、投影画像ＰＲ２における点線ＢＤ１１よりも右側の領域とがつなぎ合わされてパノラマ画像ＷＰ１１が生成される。すなわち、投影画像ＰＲ１における位置Ｃｘ＝０から１４までの領域と、投影画像ＰＲ２における位置Ｃｘ＝１５から２６までの領域とが接続されてパノラマ画像ＷＰ１１とされる。
【０１１２】
この場合、投影画像ＰＲ１と投影画像ＰＲ２における点線ＢＤ１１近傍には、動被写体はないので、破綻のない高品質なパノラマ画像ＷＰ１１が得られる。
【０１１３】
これに対して、経路ＰＴ１２により定まる点線ＢＤ１２が境界位置とされる場合、投影画像ＰＲ１における点線ＢＤ１２よりも左側の領域と、投影画像ＰＲ２における点線ＢＤ１２よりも右側の領域とがつなぎ合わされてパノラマ画像ＷＰ１２が生成される。すなわち、投影画像ＰＲ１における位置Ｃｘ＝０から１９までの領域と、投影画像ＰＲ２における位置Ｃｘ＝２０から２６までの領域とが接続されてパノラマ画像ＷＰ１２とされる。
【０１１４】
この場合、投影画像ＰＲ１における点線ＢＤ１２近傍には動被写体ＭＢ３３があり、投影画像ＰＲ２における動被写体ＭＢ３３は点線ＢＤ１２とは離れた位置にあるので、点線ＢＤ１２近傍において、画像の破綻が生じている。
【０１１５】
すなわち、パノラマ画像ＷＰ１２の点線ＢＤ１２近傍では、動被写体ＭＢ３３の一部だけが映っており、その動被写体ＭＢ３３よりも右側には、さらに同じ動被写体ＭＢ３３が映っている。
【０１１６】
以上のことから、一般的に以下のことがいえる。すなわち、ｓ枚目の投影画像と、ｓ＋１枚目の投影画像との重なる部分の差分から差分累積値Diff[s,s+1](Cx)を求め、この差分累積値Diff[s,s+1](Cx)を図８の有向グラフのエネルギに反映させるとする。
【０１１７】
そして、図８の有向グラフ上にある経路（パス）を考え、この経路が位置（Ｃｘ’，ｓ）にあるノードを始点とし、位置（Ｃｘ’＋１，ｓ＋１）にあるノードを終点とする右下方向の矢印を通ったとする。
【０１１８】
このとき、そのような経路を定めることを、ｓ枚目の投影画像における位置ＣｘがＣｘ’以下である領域と、ｓ＋１枚目の投影画像における位置ＣｘがＣｘ’＋１以上である領域とを用いてパノラマ画像を生成することに対応させるとする。
【０１１９】
この場合、決定された経路のエネルギ合計値が大きければ、ｓ枚目とｓ＋１枚目の投影画像において、位置Ｃｘ＝Ｃｘ’，Ｃｘ’＋１の部分に動被写体が存在していることになる。そのため、生成されたパノラマ画像には、位置Ｃｘ＝Ｃｘ’，Ｃｘ’＋１の部分で動被写体の分断による破綻が生じる。逆に、決定された経路のエネルギ合計値が小さければ、投影画像のつなぎ目（接続位置）に動被写体は存在しないので、破綻のない高品質なパノラマ画像が得られることになる。
【０１２０】
そこで、図８の有向グラフにおいて、エネルギ合計値が最小となる経路を検出すれば、その経路により定まる各投影画像の領域を用いて、動被写体による破綻の少ないパノラマ画像を得ることができる。
【０１２１】
具体的には、まず、有向グラフにおける位置（Ｃｘ，ｓ）＝（１，１）にあるノードから出発して、位置（Ｃｘ，ｓ）＝（１，１１）にあるノードに到着する経路（パス）を考え、この経路のなかでエネルギ合計値が最小となる経路が探索される。例えば、エネルギ合計値が最小となる経路の探索は、動的計画法（dynamic programming）などにより求めることができる。
【０１２２】
これにより、例えば図１８に示す経路ＰＴ３１が、エネルギ合計値が最小となる経路として得られる。なお、図１８において、横方向はＣｘ軸方向を示しており、縦方向は撮影画像（投影画像）の撮影された順番を示している。
【０１２３】
図１８では、図８に示した有向グラフと同じ有向グラフ上に位置（１，１）のノードを出発点とし、位置（１，１１）のノードを到着点とする経路ＰＴ３１が示されている。
【０１２４】
このように、位置（１，１）のノードを出発点とする、エネルギ合計値が最小となる経路ＰＴ３１が得られると、次に有向グラフにおける位置（Ｃｘ，ｓ）＝（２，１）のノードから出発して、位置（２，１１）のノードに到着する経路のうち、エネルギ合計値が最小となる経路が探索される。
【０１２５】
同様にして、有向グラフ上の位置Ｃｘ＝３から２１について、位置（Ｃｘ，ｓ）＝（Ｃｘ，１）のノードから出発して、位置（Ｃｘ，１１）のノードに到着する経路のうち、エネルギ合計値が最小となる経路が探索される。
【０１２６】
例えば、有向グラフにおける位置（Ｃｘ，ｓ）＝（４，１）のノードから出発して、位置（４，１１）のノードに到着する経路のうち、エネルギ合計値が最小となる経路が探索され、その結果、例えば図１９に示す経路ＰＴ３２が得られる。
【０１２７】
また、例えば有向グラフにおける位置（Ｃｘ，ｓ）＝（１１，１）のノードから出発して、位置（１１，１１）のノードに到着する経路のうち、エネルギ合計値が最小となる経路が探索され、その結果、例えば図２０に示す経路ＰＴ３３が得られる。
【０１２８】
さらに、例えば有向グラフにおける位置（Ｃｘ，ｓ）＝（２１，１）のノードから出発して、位置（２１，１１）のノードに到着する経路のうち、エネルギ合計値が最小となる経路が探索され、その結果、例えば図２１に示す経路ＰＴ３４が得られる。
【０１２９】
なお、図１９乃至図２１において、横方向はＣｘ軸方向を示しており、縦方向は撮影画像（投影画像）の撮影された順番を示している。
【０１３０】
このようにして、有向グラフの位置Ｃｘ＝１乃至２１までの２１個の各位置（Ｃｘ，１）について、それらの位置を出発点とする経路のなかのエネルギ合計値が最小となる経路が求められる。そして、それらの２１個の経路のうち、エネルギ合計値が最小となる経路が、最終的に最も破綻の少ないパノラマ画像を生成するための経路となる。このような経路が特定されると、その経路に基づいて生成されたパノラマ画像が、最終的な３６０度のパノラマ画像として出力される。
【０１３１】
以上のようにして、本技術では、投影画像から生成された有効グラフが利用されて、破綻のない高品質なパノラマ画像が生成される。
【０１３２】
［画像処理装置の構成例］
次に、以上において説明した本技術を適用した画像処理装置の具体的な実施の形態について説明する。
【０１３３】
図２２は、本技術を適用した画像処理装置の構成例を示す図である。この画像処理装置１１は、取得部２１、投影画像生成部２２、差分累積値算出部２３、有向グラフ生成部２４、経路探索部２５、およびパノラマ画像生成部２６から構成される。
【０１３４】
取得部２１は、撮像装置により連続して撮影されたＮ枚の撮影画像、および各撮影画像と１枚目の撮影画像との位置関係を示す同次変換行列等を取得して投影画像生成部２２に供給する。投影画像生成部２２は、取得部２１から供給された撮影画像や同次変換行列に基づいて、撮影画像を円筒面上に射影（マッピング）し、投影画像を生成する。また、投影画像生成部２２は、生成された投影画像を差分累積値算出部２３、有向グラフ生成部２４、およびパノラマ画像生成部２６に供給する。
【０１３５】
差分累積値算出部２３は、投影画像生成部２２から供給された投影画像に基づいて、隣接する投影画像間の差分累積値を算出し、有向グラフ生成部２４に供給する。有向グラフ生成部２４は、投影画像生成部２２から供給された投影画像と、差分累積値算出部２３から供給された差分累積値とに基づいて有向グラフを生成し、経路探索部２５に供給する。
【０１３６】
経路探索部２５は、有向グラフ生成部２４から供給された有向グラフに基づいて、エネルギ合計値が最小となる有向グラフ上の経路を探索し、得られた経路をパノラマ画像生成部２６に供給する。経路探索部２５は、エネルギ合計値算出部３１を備えており、エネルギ合計値算出部３１は、経路探索部２５による経路探索時に各経路のエネルギ合計値を算出する。
【０１３７】
パノラマ画像生成部２６は、経路探索部２５から供給された経路と、投影画像生成部２２から供給された投影画像とに基づいて、３６０度のパノラマ画像を生成し、出力する。パノラマ画像生成部２６は、使用領域決定部３２を備えており、使用領域決定部３２は、径路探索部２５から供給された経路に基づいて、投影画像におけるパノラマ画像の生成に用いる領域を決定する。
【０１３８】
［パノラマ画像生成処理の説明］
次に、図２３のフローチャートを参照して、画像処理装置１１により行なわれるパノラマ画像生成処理について説明する。
【０１３９】
ステップＳ１１において、取得部２１は、Ｎ枚の撮影画像、各撮影画像と１枚目の撮影画像との位置関係を示す同次変換行列、および各撮影画像の焦点距離Ｆを示す情報を取得して、投影画像生成部２２に供給する。
【０１４０】
ここで、取得部２１により取得される撮影画像は、例えばカメラ等の撮像装置を回転させながら連続して撮影された画像とされる。また、Ｎ枚の各撮影画像の焦点距離は同じであるものとする。
【０１４１】
ステップＳ１２において、投影画像生成部２２はマッピング処理を行い、取得部２１から供給された撮影画像や同次変換行列に基づいて投影画像を生成する。
【０１４２】
ここで、図２４のフローチャートを参照して、ステップＳ１２の処理に対応するマッピング処理について説明する。なお、このマッピング処理は、図２５および図２６に示す擬似コードを実行することにより行なわれる処理と等価である。
【０１４３】
ステップＳ４１において、投影画像生成部２２は、ｓ枚目（但し、１≦ｓ≦Ｎ）の撮影画像がマッピングされる第１キャンバス領域を確保する。
【０１４４】
例えば、投影画像生成部２２は上述したＣｘＣｙ座標系に第１キャンバス領域を定める。このとき、第１キャンバス領域の−Ｃｘ軸方向側の端における、第１キャンバス領域のＣｙ軸方向の中間の位置が、ＣｘＣｙ座標系の原点となるように第１キャンバス領域が配置される。
【０１４５】
また、第１キャンバス領域のＣｘ軸方向の幅width（以下、横幅とも称する）は２πＦとされ、第１キャンバス領域のＣｙ軸方向の幅height（以下、縦幅とも称する）は、撮影画像のＣｙ軸方向の画素数に0.9を乗算した値とされる。ここで、横幅widthの算出に用いられるＦは撮影画像の焦点距離である。
【０１４６】
なお、第１キャンバス領域の縦幅heightを、撮影画像のＣｙ軸方向の画素数の９０％の長さとするのは、例えば図２７に示すように、投影画像のＣｙ軸方向側の端をＣｘ軸方向と平行とするためである。なお、図２７において、横方向および縦方向はそれぞれＣｘ軸方向およびＣｙ軸方向を示している。
【０１４７】
例えば、縦幅heightが撮影画像のＣｙ軸方向の画素数とほぼ同じである領域ＣＡ１１を第１キャンバス領域として確保したとする。また、撮影画像をＣｘＣｙ座標系の円筒面にマッピングして得られた画像が画像ＴＲ３１であるとする。
【０１４８】
この場合、画像ＴＲ３１のうちの領域ＣＡ１１内にある部分が投影画像とされるが、領域ＣＡ１１を大きくとりすぎると、領域Ｑ３１や領域Ｑ３２の部分には、撮影画像の撮影範囲外の部分が対応することになってしまい、有効な画素値が存在しなくなる。そうすると、得られた投影画像のＣｙ軸方向側の端は、Ｃｘ軸方向と平行ではなくなってしまう。
【０１４９】
そこで、第１キャンバス領域の縦幅heightをある程度小さくし、例えば領域ＣＡ１２を第１キャンバス領域とすれば、得られる投影画像のＣｙ軸方向側の端はＣｘ軸方向と平行となる。
【０１５０】
ユーザが撮像装置を回転させながら連続して撮影画像を撮影する場合、Ｃｙ軸と平行な直線を軸としてＣｘ軸方向に撮像装置が回転されるが、撮像装置がＣｙ軸方向にぶれることもある。撮像装置のＣｙ軸方向へのぶれが大きいなど、特にユーザが不安定な撮影をしている場合には、円筒面に投影される撮影画像の位置が大きく変化するので、縦幅heightをより小さく設定する必要がある。
【０１５１】
ステップＳ４２において、投影画像生成部２２は、ｓ枚目の撮影画像の第１キャンバス領域への書き込みを行い、ｓ枚目の投影画像とする。
【０１５２】
すなわち、投影画像生成部２２は、第１キャンバス領域上の各位置（Ｃｘ，Ｃｙ）（但し、０≦Ｃｘ＜width，-height/2≦Ｃｙ≦height/2）について、上述した式（３）を満たす位置（Ｘｓ，Ｙｓ）を求める。ここで、位置（Ｘｓ，Ｙｓ）はｓ枚目の撮影画像を基準とした座標系上の位置である。
【０１５３】
そして、投影画像生成部２２は、求めた位置（Ｘｓ，Ｙｓ）にｓ枚目の撮影画像の画素がある場合、その画素の画素値を第１キャンバス領域上の位置（Ｃｘ，Ｃｙ）にある画素の画素値とする。つまり、撮影画像上の位置（Ｘｓ，Ｙｓ）にある画素が有効な画素であれば、その画素の画素値が第１キャンバス領域上の位置（Ｃｘ，Ｃｙ）に書き込まれる（マッピングされる）。
【０１５４】
このようにして、各位置（Ｃｘ，Ｃｙ）について、撮影画像の画素のマッピングを行なうと、第１キャンバス領域上に投影画像が生成される。なお、これらのステップＳ４１およびステップＳ４２の処理は、図２５の擬似コードにおけるＦＣ１１の部分に相当する。
【０１５５】
ステップＳ４３において、投影画像生成部２２は、生成したｓ枚目の投影画像のＣｘ軸方向側の端がＣｙ軸に平行となるように投影画像を加工する。
【０１５６】
具体的には、投影画像生成部２２は、第１キャンバス領域上のＣｙ座標が同じである画素からなる画素列について、その画素列のなかにステップＳ４２の処理により画素値が与えられていない画素がある場合には、その画素列の画素の画素値を無効とする。
【０１５７】
例えば、図２８の上側に示すように、第１キャンバス領域ＣＡ３１が確保され、この第１キャンバス領域ＣＡ３１へと撮影画像をマッピングすることで、画像ＴＲ４１が得られたとする。なお、図２８において、横方向および縦方向はそれぞれＣｘ軸方向およびＣｙ軸方向を示している。また、直線Ｌ１１および直線Ｌ１２は、Ｃｙ軸に平行な直線である。
【０１５８】
このようにして得られる画像ＴＲ４１の左右の端は、Ｃｙ軸方向と平行になるとは限らない。図２８の例では、画像ＴＲ４１の左右の端はＣｙ軸方向と平行となっていない。
【０１５９】
画像処理装置１１では、差分累積値を用いてパノラマ画像を生成する等の理由から、各投影画像の左右の端はＣｙ軸に平行であることが望ましい。そこで、投影画像生成部２２は、画像ＴＲ４１における直線Ｌ１１よりも図中、左側の部分と、画像ＴＲ４１における直線Ｌ１２よりも図中、右側の部分とを除去する。すなわち、それらの部分の画素値が無効とされる。これにより、図中、下側に示すように第１キャンバス領域ＣＡ３１上に矩形の投影画像ＴＲ４２が得られる。
【０１６０】
このようなステップＳ４３の処理は、図２５の擬似コードにおけるＦＣ１２の部分に相当する。
【０１６１】
図２４のフローチャートの説明に戻り、ステップＳ４４において、投影画像生成部２２は、全ての撮影画像を処理したか否かを判定する。例えば、Ｎ枚の撮影画像について、それらの撮影画像に対応する投影画像が生成された場合、全ての撮影画像が処理されたと判定される。
【０１６２】
ステップＳ４４において、まだ全ての撮影画像が処理されていないと判定された場合、処理はステップＳ４１に戻り、上述した処理が繰り返される。すなわち、まだ処理されていない撮影画像が第１キャンバス領域に投影され、投影画像とされる。
【０１６３】
これに対して、ステップＳ４４において全ての撮影画像が処理されたと判定された場合、ステップＳ４５において、投影画像生成部２２は、投影画像に対するオフセット処理を行なう。
【０１６４】
例えば、投影画像生成部２２は、１枚目の投影画像の左端がＣｘＣｙ座標系の原点の位置に移動されるように、オフセット値を求める。すなわち、ＣｘＣｙ座標系の原点から、１枚目の投影画像の左端までの距離が算出される。換言すれば、第１キャンバス領域の+Ｃｘ軸方向側の端から、その端からみて−Ｃｘ軸方向にある画素値が無効である最初の画素までの距離がオフセット値とされる。
【０１６５】
オフセット値が求められると、投影画像生成部２２は、ｓ枚目（但し、１≦ｓ≦Ｎ）の投影画像に対して、ＣｘＣｙ座標系に第２キャンバス領域を確保する。
【０１６６】
ここで、第２キャンバス領域のＣｘ軸方向の幅およびＣｙ軸方向の幅は、それぞれwidthおよびheightとされる。つまり、第２キャンバス領域は、第１キャンバス領域と同じ大きさの領域とされる。また、第２キャンバス領域の−Ｃｘ軸方向側の端における、第２キャンバス領域のＣｙ軸方向の中間の位置が、ＣｘＣｙ座標系の原点となるように第２キャンバス領域が配置される。
【０１６７】
続いて投影画像生成部２２は、ｓ枚目の第１キャンバス領域における位置（tmpCx，Cy）にある画素の画素値を、ｓ枚目の第２キャンバス領域における位置（Ｃｘ，Ｃｙ）に書き込む。すなわち、第１キャンバス領域の位置（tmpCx，Cy）にある画素の画素値が、第２キャンバス領域の位置（Ｃｘ，Ｃｙ）にある画素の画素値とされる。ここでtmpCxは、オフセット値をoffsetCxとすると、（Cx- offsetCx）で表される。
【０１６８】
そして、１枚目乃至Ｎ枚目について第２キャンバス領域への書き込みが行なわれると、これらの第２キャンバス領域の画像データが投影画像とされる。より詳細には、第２キャンバス領域内の有効な画素からなる画像が投影画像である。
【０１６９】
このようにして各投影画像をオフセット値分だけＣｘ軸方向にシフトさせると、１枚目の投影画像の端がＣｘＣｙ座標系の原点に位置するようになる。ステップＳ４５で行なわれるオフセット処理は、図２６の擬似コードに相当する。
【０１７０】
投影画像生成部２２は、生成した１枚目乃至Ｎ枚目の各投影画像を、差分累積値算出部２３、有向グラフ生成部２４、およびパノラマ画像生成部２６に供給する。投影画像が生成されると、マッピング処理は終了し、その後、処理は図２３のステップＳ１３へと進む。
【０１７１】
図２３のフローチャートの説明に戻り、ステップＳ１３において、差分累積値算出部２３は、投影画像生成部２２から供給された各投影画像に基づいて投影画像間の差分累積値を算出し、有向グラフ生成部２４に供給する。
【０１７２】
例えば、差分累積値算出部２３は図２９および図３０に示す擬似コードを実行することで、差分累積値を算出する。
【０１７３】
すなわち、差分累積値算出部２３は幅width＝２πＦとし、幅heightを撮影画像のＣｙ軸方向の画素数に0.9を乗算した値とする。
【０１７４】
そして、差分累積値算出部２３は１≦ｓ≦Ｎ−１として、ｓ枚目の投影画像とｓ＋１枚目の投影画像との差分累積値Diff[s,s+1](Cx)を求める。
【０１７５】
具体的には、差分累積値算出部２３はｓ枚目の投影画像の位置Ｃｘ、つまりＣｘ座標が所定のＣｘである位置に有効な画素があり、かつｓ＋１枚目の投影画像の位置Ｃｘに有効な画素があるという条件が満たされているか否かを判定する。
【０１７６】
差分累積値算出部２３は、そのような条件が満たされている場合、各Ｃｙ（但し、-height/2≦Ｃｙ≦height/2）について、ｓ枚目の投影画像の位置（Ｃｘ，Ｃｙ）の画素の画素値と、ｓ＋１枚目の投影画像の位置（Ｃｘ，Ｃｙ）の画素の画素値との差分（差分絶対値）を求める。差分累積値算出部２３は、このようにして各Ｃｙについて求めた画素値の差分の総和を差分累積値Diff[s,s+1](Cx)とする。
【０１７７】
また、所定の位置Ｃｘについて上述の条件が満たされていない場合には、差分累積値算出部２３は、その位置Ｃｘについての差分累積値Diff[s,s+1](Cx)を無効とする。
【０１７８】
このようにして差分累積値算出部２３は、ｓの値（但し、１≦ｓ≦Ｎ−１）ごとに０≦Ｃｘ＜widthの範囲の各Ｃｘについて連続する投影画像間の差分累積値Diff[s,s+1](Cx)を算出する。
【０１７９】
また、差分累積値算出部２３は、１枚目の投影画像をＮ＋１枚目の投影画像として、Ｎ枚目の投影画像とＮ＋１枚目の投影画像の間の差分累積値Diff[N,N+1](Cx)を求める。
【０１８０】
すなわち、差分累積値算出部２３は、Ｎ枚目の投影画像の位置Ｃｘに有効な画素があり、かつ１枚目、つまりＮ＋１枚目の投影画像の位置Ｃｘに有効な画素があるという条件が満たされているか否かを判定する。そして、差分累積値算出部２３は、条件が満たされている場合、各Ｃｙ（但し、-height/2≦Ｃｙ≦height/2）について、Ｎ枚目の投影画像の位置（Ｃｘ，Ｃｙ）の画素の画素値と、Ｎ＋１枚目（１枚目）の投影画像の位置（Ｃｘ，Ｃｙ）の画素の画素値との差分（差分絶対値）を求める。差分累積値算出部２３は、このようにして各Ｃｙについて求めた画素値の差分の総和を差分累積値Diff[N,N+1](Cx)とする。
【０１８１】
また、所定の位置Ｃｘについて上述の条件が満たされていない場合には、差分累積値算出部２３は、その位置Ｃｘについての差分累積値Diff[N,N+1](Cx)を無効とする。
【０１８２】
差分累積値算出部２３は、以上のようにして求めた差分累積値Diff[s,s+1](Cx)を、有向グラフ生成部２４に供給する。このように差分累積値を算出することは、投影画像間の差分情報を求めて投影画像から動被写体を検出することと等価である。
【０１８３】
ステップＳ１４において、有向グラフ生成部２４は、投影画像生成部２２から供給された投影画像と、差分累積値算出部２３から供給された差分累積値Diff[s,s+1](Cx)とに基づいて有向グラフを生成し、経路探索部２５に供給する。
【０１８４】
例えば、有向グラフ生成部２４は、図３１乃至図３３に示す擬似コードを実行することで、差分累積値に基づくエネルギが与えられた有効グラフを構築する。
【０１８５】
具体的には、有向グラフ生成部２４は、各ｓ（但し、１≦ｓ≦Ｎ）について、ｓ枚目の投影画像の位置Ｃｘ、つまりＣｘ座標が所定のＣｘである位置に有効な画素があり、かつｓ枚目の投影画像の位置Ｃｘ＋１に有効な画素があるかを判定する。
【０１８６】
そして、有向グラフ生成部２４は、ｓ枚目の投影画像の位置Ｃｘと位置Ｃｘ＋１に有効な画素がある場合、有効グラフにおける位置（Ｃｘ，ｓ）のノードから、位置（Ｃｘ＋１，ｓ）のノードへの矢印（エッジ）に対するエネルギ値として０をセットする。有向グラフ生成部２４は、この処理を０≦Ｃｘ＜width-1を満たす全てのＣｘについて行なう。ここで、撮影画像の焦点距離をＦとしてwidth＝２πＦである。
【０１８７】
また、有向グラフ生成部２４は、ｓ枚目の投影画像の位置Ｃｘ＝width-1に有効な画素があり、かつｓ枚目の投影画像の位置Ｃｘ＝０に有向な画素がある場合、有効グラフの位置（width-1，ｓ）のノードから、位置（０，ｓ）のノードへのエッジに対するエネルギ値として０をセットする。
【０１８８】
さらに、有向グラフ生成部２４は、ｓ＝Ｎ＋１について、１枚目（Ｎ＋１枚目）の投影画像の位置Ｃｘに有効な画素があり、かつ１枚目の投影画像の位置Ｃｘ＋１に有効な画素があるか否かを判定する。そして、有向グラフ生成部２４は、１枚目の投影画像の位置Ｃｘと位置Ｃｘ＋１に有効な画素がある場合、有効グラフにおける位置（Ｃｘ，Ｎ＋１）のノードから、位置（Ｃｘ＋１，Ｎ＋１）のノードへのエッジに対するエネルギ値として０をセットする。
【０１８９】
以上の処理により図８の有向グラフの右方向への矢印（エッジ）に対してエネルギが与えられる。この処理は図３１および図３２に示す擬似コードに相当する。
【０１９０】
次に、有向グラフ生成部２４は、各ｓ（但し、１≦ｓ≦Ｎ）について、差分累積値Diff[s,s+1](Cx)が有効であり、かつ差分累積値Diff[s,s+1](Cx+1)が有効であるかを判定する。そして有向グラフ生成部２４は、それらの差分累積値が有効である場合、位置（Ｃｘ，ｓ）のノードから、位置（Ｃｘ＋１，ｓ＋１）のノードへのエッジに対するエネルギ値として、差分累積値Diff[s,s+1](Cx)と差分累積値Diff[s,s+1](Cx+1)の平均値をセットする。
【０１９１】
有向グラフ生成部２４は、この処理を０≦Ｃｘ＜width-1を満たす全てのＣｘについて行なう。
【０１９２】
また、有向グラフ生成部２４は、各ｓ（但し、１≦ｓ≦Ｎ）について、差分累積値Diff[s,s+1](width-1)が有効であり、かつ差分累積値Diff[s,s+1](0)が有効であるかを判定する。そして有向グラフ生成部２４は、それらの差分累積値が有効である場合、位置（width-1，ｓ）のノードから、位置（０，ｓ＋１）のノードへのエッジに対するエネルギ値として、差分累積値Diff[s,s+1](width-1)と差分累積値Diff[s,s+1](0)の平均値をセットする。
【０１９３】
これらの処理により、図８の有向グラフの図８中、右下方向への矢印（エッジ）に対してエネルギが与えられ、有向グラフが構築される。なお、これらの処理は図３３に示す擬似コードに相当する。また、有向グラフ生成部２４で生成される有向グラフでは、各ノード間のエッジにエネルギが与えられるが、このエネルギはそれらのノードの位置で投影画像を接続したときに生じる画像の破綻の度合いを示している。
【０１９４】
このようにして各ノード間にエネルギが与えられて有向グラフが構築されると、得られた有向グラフは経路探索部２５に供給され、処理はステップＳ１５に進む。
【０１９５】
ステップＳ１５において、経路探索部２５は、有向グラフ生成部２４から供給された有向グラフに基づいて、エネルギ合計値が最小となる経路（以下、エネルギ最小経路とも称する）を探索する。
【０１９６】
例えば、経路探索部２５は図３４に示す擬似コードを実行することで、エネルギ最小経路を探索する。
【０１９７】
具体的には、経路探索部２５は、各経路のエネルギ合計値の最小値minTotalの初期値として、画像処理装置１１が取り扱える最大値をセットする。
【０１９８】
次に、経路探索部２５は、０≦Ｃｘ＜width-1を満たすＣｘのなかから、まだ未処理のＣｘを選択する。ここで、width＝２πＦである。
【０１９９】
そして、経路探索部２５は選択したＣｘについて、位置（Ｃｘ，１）のノードから位置（Ｃｘ＋１，１）のノードへのエッジにエネルギがセットされているか、または位置（Ｃｘ，１）のノードから位置（Ｃｘ＋１，２）のノードへのエッジにエネルギがセットされている場合、次の処理を行なう。
【０２００】
すなわち、経路探索部２５は、有向グラフにおいて位置（Ｃｘ，１）から出発して、位置（Ｃｘ，Ｎ＋１）に至る経路のうち、エネルギ合計値が最小となる経路を動的計画法により算出する。このとき、エネルギ合計値算出部３１は、各経路についてその経路上にあるノード間のエッジのエネルギの合計値をエネルギ合計値として算出する。
【０２０１】
このようにして得られた位置（Ｃｘ，１）から位置（Ｃｘ，Ｎ＋１）に至る、エネルギ合計値が最小となる経路が経路path(Cx)とされる。また、この経路path(Cx)のエネルギ合計値がtotal(Cx)とされる。
【０２０２】
経路探索部２５は、選択した位置Ｃｘについて経路path(Cx)とエネルギ合計値total(Cx)を求めると、エネルギ最小経路minPathと、そのエネルギ最小経路minPathのエネルギ合計値、つまり各経路のエネルギ合計値の最小値minTotalとを更新する。
【０２０３】
すなわち、今回求めた経路path(Cx)のエネルギ合計値total(Cx)が、最小値minTotal未満である場合、つまりtotal(Cx)＜minTotalである場合、経路探索部２５は、今回求めた経路path(Cx)をエネルギ最小経路minPathとする。また、経路探索部２５は、その経路path(Cx)のエネルギ合計値total(Cx)を、新たな最小値minTotalとする。
【０２０４】
なお、total(Cx)≧minTotalである場合には、エネルギ最小経路minPathと最小値minTotalの更新は行なわれない。
【０２０５】
経路探索部２５は、０≦Ｃｘ＜width-1を満たす全てのＣｘを順番に選択しながら、各Ｃｘについて経路path(Cx)とエネルギ合計値total(Cx)を求め、エネルギ最小経路minPathと最小値minTotalを更新することで、最終的なエネルギ最小経路minPathを求める。エネルギ最小経路minPathは、基準となる１枚目の投影画像の所定位置から、Ｎ＋１枚目の投影画像の所定位置までを用いてパノラマ画像を生成する場合に、パノラマ画像において生じる画像の破綻が最も小さくなるような、各投影画像の接続位置を示している。
【０２０６】
経路探索部２５は、最終的に得られたエネルギ最小経路minPathをパノラマ画像生成部２６に供給し、処理はステップＳ１５からステップＳ１６に進む。
【０２０７】
ステップＳ１６において、パノラマ画像生成部２６は、経路探索部２５から供給されたエネルギ最小経路minPathと、投影画像生成部２２から供給された投影画像とに基づいて３６０度のパノラマ画像を生成し、出力する。
【０２０８】
例えば、パノラマ画像生成部２６は図３５に示す擬似コードを実行することで、３６０度のパノラマ画像を生成する。
【０２０９】
具体的には、パノラマ画像生成部２６は、３６０度のパノラマ画像用としてパノラマ用キャンバス領域をＣｘＣｙ座標系に確保する。
【０２１０】
このとき、パノラマ用キャンバス領域の−Ｃｘ軸方向側の端における、パノラマ用キャンバス領域のＣｙ軸方向の中間の位置が、ＣｘＣｙ座標系の原点となるようにパノラマ用キャンバス領域が配置される。また、パノラマ用キャンバス領域のＣｘ軸方向の横幅widthは２πＦとされ、パノラマ用キャンバス領域のＣｙ軸方向の縦幅heightは、撮影画像のＣｙ軸方向の画素数に0.9を乗算した値とされる。
【０２１１】
次に、パノラマ画像生成部２６の使用領域決定部３２は、０≦Ｃｘ＜widthを満たす所定のＣｘについて、有向グラフ上のエネルギ最小経路minPathが、位置（Ｃｘ，ｓ）にあるノードを通るｓを求め、求めたｓをappropriateSとする。すなわち、エネルギ最小経路minPathにおいて、Ｃｘ座標が選択された所定のＣｘであるノードの位置（Ｃｘ，ｓ）が求められ、その位置（Ｃｘ，ｓ）のｓがappropriateSとされる。
【０２１２】
また、パノラマ画像生成部２６は、このようにして得られたｓ＝appropriateSについて、appropriateS枚目の投影画像の位置（Ｃｘ，Ｃｙ）（但し、-height/2≦Ｃｙ≦height/2）にある画素の画素値を、パノラマ用キャンバス領域の位置（Ｃｘ，Ｃｙ）に書き込む。すなわち、appropriateS枚目の投影画像におけるＣｘ座標が所定のＣｘである各位置（Ｃｘ，Ｃｙ）の画素の画素値が、パノラマ用キャンバス領域の位置（Ｃｘ，Ｃｙ）にある画素の画素値とされる。
【０２１３】
パノラマ画像生成部２６は、以上の処理を０≦Ｃｘ＜widthを満たす各Ｃｘについて行なうことで、パノラマ用キャンバス領域の各画素に画素値を書き込み、最終的な３６０度のパノラマ画像とする。すなわち、パノラマ用キャンバス領域に書き込まれた各画素からなる画像が３６０度のパノラマ画像とされる。
【０２１４】
ここで使用領域決定部３２がエネルギ最小経路に基づいて、各Ｃｘ座標の値についてパノラマ画像の生成に用いる投影画像を求めることは、エネルギ最小経路に基づいて、パノラマ画像の生成に用いる投影画像の領域の境界位置（接続位置）を決定することと等しい。
【０２１５】
パノラマ画像生成部２６は、パノラマ画像を生成すると、生成したパノラマ画像を出力し、パノラマ画像生成処理は終了する。
【０２１６】
以上のようにして、画像処理装置１１は、投影画像から得られた差分累積値に基づいて有向グラフを生成し、得られた有向グラフ上のエネルギ合計値が最小となる経路に基づいて各投影画像をつなぎ合わせて３６０度のパノラマ画像を生成する。
【０２１７】
このように、有向グラフを利用することで、画像の破綻が最小となるようにパノラマ画像の生成に用いる各投影画像間の接続位置を定めることができ、破綻の少ない高品質なパノラマ画像を得ることができる。
【０２１８】
なお、ステップＳ１４における有向グラフの生成時には位置（Ｃｘ，ｓ）のノードを始点とし、位置（Ｃｘ＋１，ｓ）のノードを終点とするエッジのエネルギとして０をセットすると説明したが、有効な投影画像の端部分では所定の正の値をエネルギとしてセットするようにしてもよい。このようにすることで、エネルギ合計値が最小となる経路を探索すると、その経路は投影画像の中央部分を通りやすくなり、投影画像の端部分は通りにくくなる。
【０２１９】
これにより、３６０度のパノラマ画像に用いられる各投影画像の領域として、投影画像の中央部分の領域がより使われやすくなり、端部分は使われにくくなる。一般的に、カメラ等の撮像装置では、画像の中央部分が鮮明に映るように設計されているので、このようなエネルギ設定を行なうことにより、パノラマ画像の生成に用いられる投影画像も鮮明な部分である中央部分が多く用いられることになる。その結果、より鮮明なパノラマ画像を得ることができるようになる。
【０２２０】
また、以上においては１枚目の投影画像を基準として、１枚目の投影画像の各位置に対応する有向グラフのノードから、Ｎ＋１枚目の投影画像の各位置に対応するノードまでのエネルギ最小経路を求めると説明したが、基準となる画像は１枚目の投影画像でなくてもよい。
【０２２１】
例えば、２枚目の投影画像が基準とされる場合、すなわち２枚目の投影画像が１番目の投影画像とされる場合、１枚目の投影画像がＮ番目の投影画像とされ、２枚目の投影画像と同じ画像が１枚目の投影画像に続くＮ＋１番目の投影画像とされる。そして、２枚目の投影画像の各位置に対応するノードから、Ｎ＋１番目の投影画像の各位置に対応するノードまでのエネルギ最小経路が求められ、そのエネルギ最小経路に基づいて、パノラマ画像が生成される。
【０２２２】
〈第２の実施の形態〉
［画像処理装置の構成例］
ところで、第１の実施の形態において説明した、有向グラフを利用してパノラマ画像を生成する方法（以下、有向グラフ手法とも称する）によれば、動被写体をなるべく分断することなく、パノラマ画像の生成に用いる投影画像のつなぎ目を決定することができる。しかしながら、有向グラフ手法では、場合によってはどのようなつなぎ目としても、動被写体の分断が生じてしまうこともあり得る。
【０２２３】
そこで、さらに高品質なパノラマ画像が得られるように、３６０度以上の角度だけ回転させながら被写体の撮影を行なっていくつかのパノラマ画像を生成し、それらのパノラマ画像のうち、最も破綻の少ないものを最終的なパノラマ画像としてもよい。
【０２２４】
具体的には、例えば有向グラフ手法では、３６度ずつ撮像装置を回転させながら１０枚の撮影画像を撮影していたところを、さらに余分な撮影を行なうようにする。すなわち、例えば３６度ずつ撮像装置を回転させながら、１２枚の撮影画像を撮影するようにする。
【０２２５】
そして、１枚目から１０枚目までの撮影画像が用いられて有向グラフ手法により３６０度のパノラマ画像が生成される。同様にして、２枚目から１１枚目の撮影画像が用いられて、有向グラフ手法により３６０度のパノラマ画像が生成され、３枚目から１２枚目の撮影画像が用いられて、有向グラフ手法により３６０度のパノラマ画像が生成される。
【０２２６】
このようにして、３つのパノラマ画像が得られると、それらのなかから、最も高品質なパノラマ画像、つまり動被写体による破綻が少ないパノラマ画像が最終的なパノラマ画像として出力される。
【０２２７】
例えば、パノラマ画像の動被写体による破綻を評価する指標としては、パノラマ画像生成時に求められるエネルギ最小経路minPathのエネルギ合計値である最小値minTotalを用いることができる。これは、最小値minTotalが、動被写体の破綻が最小となる経路を求めた際の動被写体の破綻の度合いを示しているからである。
【０２２８】
以上のように、いくつかのパノラマ画像を生成し、それらのパノラマ画像のうちの最も破綻の少ないものを最終的なパノラマ画像として出力する場合、画像処理装置は、例えば図３６に示すように構成される。
【０２２９】
図３６の画像処理装置８１は、取得部９１、画像セット生成部９２、投影画像生成部２２、差分累積値算出部２３、有向グラフ生成部２４、経路探索部２５、パノラマ画像生成部２６、および出力部９３から構成される。なお、図３６において、図２２における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【０２３０】
取得部９１は、撮像装置により連続して撮影されたＭｍａｘ枚の撮影画像、各撮影画像と１枚目の撮影画像との位置関係を示す同次変換行列、および撮影画像の焦点距離Ｆを取得して画像セット生成部９２に供給する。ここで、取得部９１より取得されるＭｍａｘ枚の撮影画像は、ユーザが撮像装置を３６０度以上回転移動させながら連続して撮影することで得られた画像である。
【０２３１】
画像セット生成部９２は、取得部９１から供給された撮影画像、同次変換行列、および焦点距離Ｆに基づいて、１つのパノラマ画像を生成するのに必要な１周分（３６０度分）の撮影画像のセットを求める。
【０２３２】
ここで、１周分の撮影画像のセット（以下、画像セットとも称する）は、ユーザが撮像装置を３６０度だけ回転移動させながら連続して撮影することで得られた撮影画像のセットである。また、より詳細には、画像セットには、撮影画像間の位置関係を示す同次変換行列と焦点距離Ｆも含まれている。
【０２３３】
画像セット生成部９２は、いくつかの画像セットを求め、得られたそれらの画像セットを投影画像生成部２２に供給する。
【０２３４】
投影画像生成部２２は、画像セット生成部９２から供給された画像セットごとに、画像セットに含まれる撮影画像の投影画像を生成し、差分累積値算出部２３、有向グラフ生成部２４、およびパノラマ画像生成部２６に供給する。
【０２３５】
差分累積値算出部２３乃至パノラマ画像生成部２６は、画像セットごとに差分累積値の算出、有向グラフの生成、エネルギ最小経路の探索、およびパノラマ画像の生成を行なう。このとき、経路探索部２５は、画像セットごとに探索により得られたエネルギ最小経路と、最小値minTotal（すなわち、エネルギ最小経路のエネルギ合計値）をパノラマ画像生成部２６に供給する。また、パノラマ画像生成部２６は、画像セットごとにパノラマ画像と、そのパノラマ画像の最小値minTotalを出力部９３に供給する。
【０２３６】
出力部９３は、パノラマ画像生成部２６から供給された最小値minTotalに基づいて、パノラマ画像生成部２６から供給されたパノラマ画像のなかから最終的なパノラマ画像を選択し、選択したパノラマ画像を出力する。
【０２３７】
［画像セットについて］
ところで、１枚目の撮影画像を基準とした座標系におけるｓ枚目（但し、１＜ｓ≦Ｍｍａｘ）の撮影画像の位置関係を表す同次変換行列をＨ１，ｓとすると、次式（４）の関係が成立する。
【０２３８】
【数４】
0005870636.tif 000005
【０２３９】
なお、式（４）において、Ｆは撮影画像の焦点距離を示している。また、式（４）においてＸｔ，Ｙｔは、ｔ枚目（但し、１≦ｔ）の撮影画像を基準とする座標系におけるＸ座標およびＹ座標を示しており、ｓ＝１における同次変換行列Ｈ１，１は単位行列である。
【０２４０】
式（４）の同次変換行列Ｈ１，ｓは、９個のスカラ量Ｈ１，ｓ［ａ，ｂ］（但し、１≦ａ≦３，１≦ｂ≦３）よりなる３×３行列である。
【０２４１】
このような同次変換行列Ｈ１，ｓの意味を考えれば明らかなように、次式（５）で示される３次元ベクトルの方向が、１枚目の撮影画像を基準とした座標系におけるｓ枚目の撮影画像の撮影方向である。ここで、ｓ枚目の撮影画像の撮影方向とは、１枚目の撮影画像を基準とした座標系の原点から、ｓ枚目の撮影画像の中心に向かう方向である。
【０２４２】
【数５】
0005870636.tif 000006
【０２４３】
さらにいえば、スカラ量Ｈ１，ｓ［１，３］の値が、１枚目の撮影画像を基準としたＸ１Ｙ１Ｚ１座標系におけるｓ枚目の撮影画像の撮影方向のＸ１座標である。
【０２４４】
そこで、各ｓのスカラ量Ｈ１，ｓ［１，３］の値を調べ、次式（６）を満たすｓの値を求めることでＭ（１）＝ｓとなる。
【０２４５】
【数６】
0005870636.tif 000007
【０２４６】
ここで、Ｍ（ｔ）とは、Ｍｍａｘ枚の撮影画像群のなかのｔ枚目の撮影画像を撮影した方向を始点、つまり撮像装置の回転角度を０度としたときに、３６０度未満の回転のなかで撮影された最後の撮影画像が何番目（何枚目）の画像であるかを示している。
【０２４７】
したがって式（６）の例では、１枚目の撮影画像の撮影方向を０度として、０度から３６０度（より詳細には３６０度を含まない）まで撮像装置を回転させながら撮影を行なったときに、１枚目からｓ枚目までの合計ｓ枚の撮影画像が撮影されたことになる。
【０２４８】
以上のことから、１枚目の撮影画像を基準とした３６０度のパノラマ画像を生成するには、１枚目乃至ｓ枚目までのｓ枚の撮影画像を画像セットとして用いればよいことになる。
【０２４９】
また、２枚目の撮影画像を基準としたＸ２Ｙ２Ｚ２座標系における、ｓ枚目の撮影画像の位置関係を表す同次変換行列をＨ２，ｓとすると、この同次変換行列Ｈ２，ｓは、次式（７）の計算により求めることができる。すなわち、同次変換行列Ｈ１，２の逆行列と、同次変換行列Ｈ１，ｓとの積により同次変換行列Ｈ２，ｓが求まる。
【０２５０】
【数７】
0005870636.tif 000008
【０２５１】
ここで、同次変換行列Ｈ２，ｓの要素であるＨ２，ｓ［１，３］の値が、２枚目の撮影画像を基準とした座標系におけるｓ枚目の撮影画像の撮影方向のＸ２座標である。そこで、各ｓのＨ２，ｓ［１，３］の値を調べ、次式（８）を満たすｓの値を求めることでＭ（２）＝ｓが求まる。
【０２５２】
【数８】
0005870636.tif 000009
【０２５３】
さらに、３枚目の撮影画像を基準としたＸ３Ｙ３Ｚ３座標系における、ｓ枚目の撮影画像の位置関係を表す同次変換行列をＨ３，ｓとすると、この同次変換行列Ｈ３，ｓは、次式（９）の計算により求めることができる。
【０２５４】
【数９】
0005870636.tif 000010
【０２５５】
ここで、同次変換行列Ｈ３，ｓの要素であるＨ３，ｓ［１，３］の値が、３枚目の撮影画像を基準とした座標系におけるｓ枚目の撮影画像の撮影方向のＸ３座標である。そこで、各ｓのＨ３，ｓ［１，３］の値を調べ、次式（１０）を満たすｓの値を求めることでＭ（３）＝ｓが求まる。
【０２５６】
【数１０】
0005870636.tif 000011
【０２５７】
同様にして、Ｍ（４），Ｍ（５），・・・と、各Ｍ（ｋ）の値を決定していくことができる。例えば、ｔ枚目の撮影画像を基準としたＸｔＹｔＺｔ座標系における、ｓ枚目の撮影画像の位置関係を表す同次変換行列をＨｔ，ｓとすると、この同次変換行列Ｈｔ，ｓは、次式（１１）の計算により求めることができる。すなわち、同次変換行列Ｈ１，ｔの逆行列と、同次変換行列Ｈ１，ｓとの積により同次変換行列Ｈｔ，ｓが求まる。
【０２５８】
【数１１】
0005870636.tif 000012
【０２５９】
ここで、同次変換行列Ｈｔ，ｓの要素であるＨｔ，ｓ［１，３］の値が、ｔ枚目の撮影画像を基準とした座標系におけるｓ枚目の撮影画像の撮影方向のＸｔ座標である。そこで、各ｓのＨｔ，ｓ［１，３］の値を調べ、次式（１２）を満たすｓの値を求めることでＭ（ｔ）＝ｓが求まる。
【０２６０】
【数１２】
0005870636.tif 000013
【０２６１】
もちろん、ここでは撮影画像の撮影枚数はＭｍａｘであるので、あまりに大きいｔについては、Ｍ（ｔ）は存在しないことになる。そこで、Ｍ（ｔ）枚目の撮影画像が存在（確定）しているｔについてのみ、１周分の画像セットを生成すればよい。
【０２６２】
［パノラマ画像生成処理の説明］
次に、図３７のフローチャートを参照して、画像処理装置８１により行なわれるパノラマ画像生成処理について説明する。
【０２６３】
なお、以下においては、ユーザからみて右方向（時計回りの方向）にユーザが撮像装置を回転させながら撮影画像を撮影する場合について説明するが、左方向に回転させながら撮影を行なった場合でも同様の処理が行なわれる。
【０２６４】
ステップＳ９１において、取得部９１は、Ｍｍａｘ枚の撮影画像、各撮影画像と１枚目の撮影画像との位置関係を示す同次変換行列、および各撮影画像の焦点距離Ｆを示す情報を取得して、画像セット生成部９２に供給する。
【０２６５】
ステップＳ９２において、画像セット生成部９２は、取得部９１から供給された撮影画像、同次変換行列、および焦点距離Ｆに基づいて、いくつかの画像セットを生成し、投影画像生成部２２に供給する。
【０２６６】
具体的には、画像セット生成部９２は図３８に示す擬似コードを実行することで、いくつかの画像セットを生成する。
【０２６７】
すなわち、画像セット生成部９２は、基準となる撮影画像の撮影された順番、つまり何枚目に撮影された撮影画像であるかを示す値をｔ（但し、１≦ｔ≦Ｍｍａｘ）として、ｔの値を選択する。例えば、ｔの値として１からＭｍａｘまで順番に選択されていく。
【０２６８】
続いて、画像セット生成部９２は、上述した式（１１）の計算を行なうことで、ｔ枚目の撮影画像を基準とした座標系におけるｓ枚目の撮影画像の位置を示す同次変換行列Ｈｔ，ｓを算出する。
【０２６９】
また、画像セット生成部９２は、求めた同次変換行列Ｈｔ，ｓの要素であるＨｔ，ｓ［１，３］について、式（１２）を満たすｓの値を求めることで、ｔ枚目の撮影画像を基準とした３６０度のパノラマ画像の生成に用いる最後のＭ（ｔ）枚目の撮影画像を特定する。
【０２７０】
このとき、式（１２）を満たすｓの値が存在する場合には、画像セット生成部９２は、ｔ枚目からｓ枚目（Ｍ（ｔ）枚目）までの撮影画像、同次変換行列Ｈｔ，ｓ、および焦点距離Ｆからなる画像セットを、ｔ枚目の撮影画像を基準とした３６０度のパノラマ画像の画像セットとする。
【０２７１】
そして、画像セット生成部９２は、次のｔの値を選択し、上述した処理を繰り返し行なう。また、式（１２）を満たすｓの値が存在しない場合、ｔ枚目以上の撮影画像を基準とした３６０度のパノラマ画像の画像セットは得られないので、画像セット生成部９２は、画像セットを生成する処理を終了する。
【０２７２】
このようにして複数の画像セットが生成されると、画像セット生成部９２は、生成した画像セットを投影画像生成部２２に供給し、その後、処理はステップＳ９３に進む。なお、以下においては、ステップＳ９２の処理により、１枚目の撮影画像を基準とする画像セットから、Ｔ枚目の撮影画像を基準とする画像セットまでの合計Ｔ個の画像セットが得られたものとして説明を続ける。なお、ここでいうＴとは、図３８に示す擬似コードにおけるＴｍａｘのことである。
【０２７３】
ステップＳ９２の処理が行なわれると、その後、ステップＳ９３乃至ステップＳ９７の処理が行なわれるが、これらの処理は図２３のステップＳ１２乃至ステップＳ１６の処理と同様であるので、その説明は省略する。
【０２７４】
但し、ステップＳ９３乃至ステップＳ９７では、Ｔ個の画像セットのそれぞれについて処理が行なわれ、Ｔ個の画像セットに対応するＴ個の３６０度のパノラマ画像が生成される。
【０２７５】
例えば、ｔ個目（１≦ｔ≦Ｔ）の画像セットについての投影画像の生成時には、ｔ枚目の撮影画像を基準とした座標系に対して円筒面上にＣｘＣｙ座標系が定められる。すなわち、画像セットに含まれている同次変換行列Ｈｔ，ｓや焦点距離Ｆが用いられて、各撮影画像の円筒面へのマッピング処理が行なわれ、投影画像が生成される。
【０２７６】
また、パノラマ画像生成部２６は、Ｔ個のパノラマ画像を生成すると、それらのパノラマ画像生成時に求められた最小値minTotalと、パノラマ画像とを出力部９３に供給する。
【０２７７】
ステップＳ９８において、出力部９３は、パノラマ画像生成部２６から供給された最小値minTotalに基づいて、パノラマ画像生成部２６からのパノラマ画像から最終的なパノラマ画像を選択する。
【０２７８】
各パノラマ画像について求められた最小値minTotalは、そのパノラマ画像の生成に用いられた投影画像から構築された有向グラフにおける、各経路のエネルギ合計値のうちの最小値である。つまり、最小値minTotalは、エネルギ最小経路のエネルギ合計値であり、パノラマ画像の動被写体等による破綻度合いを示している。したがって、最小値minTotalが最も小さいパノラマ画像が、破綻が少ない最も高品質なパノラマ画像ということになる。
【０２７９】
そこで、出力部９３は、Ｔ個のパノラマ画像のうち、最小値minTotalが最小となるパノラマ画像を、最終的な３６０度のパノラマ画像として選択し、出力する。パノラマ画像が出力されると、パノラマ画像生成処理は終了する。
【０２８０】
以上のようにして、画像処理装置８１は、撮像装置を３６０度以上回転移動させながら撮影された複数の撮影画像から、３６０度のパノラマ画像の生成に必要な画像セットを複数生成し、それらの画像セットごとにパノラマ画像を生成する。そして、画像処理装置８１は、得られたパノラマ画像のうち、最も高品質なパノラマ画像を最終的なパノラマ画像として出力する。
【０２８１】
このように、パノラマ画像の生成に用いる基準（開始点）となる撮影画像の位置を変えながら複数のパノラマ画像を生成することで、さらに高品質なパノラマ画像を得ることができる。
【０２８２】
ところで、上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウェアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
【０２８３】
図３９は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
【０２８４】
コンピュータにおいて、CPU（Central Processing Unit）２０１，ROM（Read Only Memory）２０２，RAM（Random Access Memory）２０３は、バス２０４により相互に接続されている。
【０２８５】
バス２０４には、さらに、入出力インターフェース２０５が接続されている。入出力インターフェース２０５には、入力部２０６、出力部２０７、記録部２０８、通信部２０９、及びドライブ２１０が接続されている。
【０２８６】
入力部２０６は、キーボード、マウス、マイクロホンなどよりなる。出力部２０７は、ディスプレイ、スピーカなどよりなる。記録部２０８は、ハードディスクや不揮発性のメモリなどよりなる。通信部２０９は、ネットワークインターフェースなどよりなる。ドライブ２１０は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア２１１を駆動する。
【０２８７】
以上のように構成されるコンピュータでは、CPU２０１が、例えば、記録部２０８に記録されているプログラムを、入出力インターフェース２０５及びバス２０４を介して、RAM２０３にロードして実行することにより、上述した一連の処理が行われる。
【０２８８】
コンピュータ（CPU２０１）が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア２１１に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【０２８９】
コンピュータでは、プログラムは、リムーバブルメディア２１１をドライブ２１０に装着することにより、入出力インターフェース２０５を介して、記録部２０８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部２０９で受信し、記録部２０８にインストールすることができる。その他、プログラムは、ROM２０２や記録部２０８に、あらかじめインストールしておくことができる。
【０２９０】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０２９１】
また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【０２９２】
例えば、本技術は、１つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【０２９３】
また、上述のフローチャートで説明した各ステップは、１つの装置で実行する他、複数の装置で分担して実行することができる。
【０２９４】
さらに、１つのステップに複数の処理が含まれる場合には、その１つのステップに含まれる複数の処理は、１つの装置で実行する他、複数の装置で分担して実行することができる。
【０２９５】
さらに、本技術は、以下の構成とすることも可能である。
【０２９６】
［１］
撮像装置を回転させながら連続して撮影された複数の撮影画像を接続して３６０度のパノラマ画像を生成する画像処理装置であって、
互いに隣接する前記撮影画像間の差分情報を算出する差分算出部と、
前記差分情報に基づいて、隣接する前記撮影画像を所定位置で接続した場合に生じる画像の破綻の度合いを示すデータを生成するデータ生成部と、
基準となる前記撮影画像と同じ画像を、前記基準となる前記撮影画像からＮ枚目の前記撮影画像に続くＮ＋１枚目の前記撮影画像として、前記基準となる前記撮影画像の特定位置から、前記Ｎ＋１枚目の前記撮影画像の前記特定位置までを用いて前記パノラマ画像を生成する場合に、画像の破綻度合いが最小となる前記撮影画像間の接続位置を前記データに基づいて決定する決定部と、
決定された前記接続位置に基づいて前記撮影画像を接続して、前記パノラマ画像を生成する画像生成部と
を備える画像処理装置。
［２］
前記決定部は、複数の異なる前記特定位置について求められた前記接続位置のうち、前記パノラマ画像の破綻度合いが最小となる前記接続位置を最終的な前記接続位置とする
［１］に記載の画像処理装置。
［３］
前記データは、隣接する前記撮影画像を前記所定位置で接続した場合に生じる画像の破綻の度合いを、前記撮影画像の前記所定位置に対応するノードのエッジのエネルギとして有する有向グラフである
［１］または［２］に記載の画像処理装置。
［４］
前記データ生成部は、隣接する第１の前記撮影画像と第２の前記撮影画像の前記所定位置における前記差分情報と、前記第１の前記撮影画像と前記第２の前記撮影画像の前記所定位置に隣接する他の位置における前記差分情報との平均値を画像の破綻度合いとして算出し、前記平均値を前記第１の前記撮影画像の前記所定位置に対応するノードと、前記第２の前記撮影画像の前記他の位置に対応するノードとの間のエッジのエネルギとする
［３］に記載の画像処理装置。
［５］
前記決定部は、前記有向グラフにおける前記基準となる前記撮影画像の前記特定位置に対応するノードから、前記Ｎ＋１枚目の前記撮影画像の前記特定位置に対応するノードまでの経路のうち、前記経路上にあるノード間のエッジのエネルギの合計値が最小となる前記経路を特定することで、前記撮影画像間の前記接続位置を決定する
［４］に記載の画像処理装置。
［６］
前記画像生成部は、複数の異なる前記撮影画像のそれぞれを前記基準となる前記撮影画像として複数の前記パノラマ画像を生成し、
前記複数の前記パノラマ画像のうち、画像の破綻度合いが最小となる前記パノラマ画像を最終的な前記パノラマ画像として出力する出力部をさらに備える
［１］乃至［５］の何れかに記載の画像処理装置。
【符号の説明】
【０２９７】
１１  画像処理装置，  ２１  取得部，  ２２  投影画像生成部，  ２３  差分累積値算出部，  ２４  有向グラフ生成部，  ２５  経路探索部，  ２６  パノラマ画像生成部，  ３１  エネルギ合計値算出部，  ３２  使用領域決定部，  ８１  画像処理装置，  ９１  取得部，  ９２  画像セット生成部，  ９３  出力部
【図１】
0005870636.tif 000014
【図２】
0005870636.tif 000015
【図３】
0005870636.tif 000016
【図４】
0005870636.tif 000017
【図５】
0005870636.tif 000018
【図６】
0005870636.tif 000019
【図７】
0005870636.tif 000020
【図８】
0005870636.tif 000021
【図９】
0005870636.tif 000022
【図１０】
0005870636.tif 000023
【図１１】
0005870636.tif 000024
【図１２】
0005870636.tif 000025
【図１３】
0005870636.tif 000026
【図１４】
0005870636.tif 000027
【図１５】
0005870636.tif 000028
【図１６】
0005870636.tif 000029
【図１７】
0005870636.tif 000030
【図１８】
0005870636.tif 000031
【図１９】
0005870636.tif 000032
【図２０】
0005870636.tif 000033
【図２１】
0005870636.tif 000034
【図２２】
0005870636.tif 000035
【図２３】
0005870636.tif 000036
【図２４】
0005870636.tif 000037
【図２５】
0005870636.tif 000038
【図２６】
0005870636.tif 000039
【図２７】
0005870636.tif 000040
【図２８】
0005870636.tif 000041
【図２９】
0005870636.tif 000042
【図３０】
0005870636.tif 000043
【図３１】
0005870636.tif 000044
【図３２】
0005870636.tif 000045
【図３３】
0005870636.tif 000046
【図３４】
0005870636.tif 000047
【図３５】
0005870636.tif 000048
【図３６】
0005870636.tif 000049
【図３７】
0005870636.tif 000050
【図３８】
0005870636.tif 000051
【図３９】
0005870636.tif 000052