(57)【特許請求の範囲】
【請求項１】
撮影方向に関する情報が関連付けられた対象画像および方向に関する情報が関連付けられた天球画像を保持する記憶部と、
前記対象画像内のマスクすべき領域を抽出するマスク領域抽出部と、
前記対象画像内の前記マスクすべき領域をマスクした対象画像を生成するマスク処理部と、
前記天球画像の方向を前記対象画像の撮影方向に合わせる位置合わせ部と、
前記位置合わせ部による位置合わせの後、マスク処理された対象画像および前記天球画像をテクスチャとして３次元対象空間にマッピングするマッピング処理部と、
前記対象画像の撮影場所を視点位置として、前記３次元対象空間を指定された視線方向に見たときの３次元対象画像を生成する３次元画像生成部と、
前記３次元対象画像を画面に表示させる表示制御部とを含むことを特徴とする画像表示装置。
【請求項２】
前記マスク領域抽出部は、前記マスクすべき領域として前記対象画像内の空に相当する領域を抽出し、
前記マスク処理部は、前記対象画像内の前記空に相当する領域をマスクした対象画像を生成することを特徴とする請求項１に記載の画像表示装置。
【請求項３】
前記マスク領域抽出部は、前記対象画像の撮影時のカメラの仰角の情報をもとに対象画像の地平線の位置を判定し、地平線よりも上側の領域内で前記空に相当する領域を抽出することを特徴とする請求項２に記載の画像表示装置。
【請求項４】
前記マッピング処理部は、前記天球画像がマッピングされた前記３次元対象空間に、マスク処理された前記対象画像を重ねてマッピングすることにより、前記対象画像内の前記マスクすべき領域に前記天球画像の一部が貼り付けられた画像を前記３次元対象空間上に生成することを特徴とする請求項１から３のいずれかに記載の画像表示装置。
【請求項５】
前記３次元対象画像に仮想的に挿入すべきオブジェクトを前記３次元対象空間の内側または外側に配置するオブジェクト挿入部をさらに含み、
前記マッピング処理部は、前記オブジェクトを前記３次元対象空間にマッピングすることを特徴とする請求項１から４のいずれかに記載の画像表示装置。
【請求項６】
前記マッピング処理部は、前記オブジェクトが前記３次元対象空間の外側に配置されている場合は、前記オブジェクトがマッピングされた前記３次元対象空間に、マスク処理された前記対象画像を重ねてマッピングすることにより、前記対象画像に前記オブジェクトが合成された画像を前記３次元対象空間上に生成することを特徴とする請求項５に記載の画像表示装置。
【請求項７】
前記マッピング処理部は、前記オブジェクトが前記３次元対象空間の内側に配置されている場合は、マスク処理された前記対象画像がマッピングされた前記３次元対象空間に、前記オブジェクトを重ねてマッピングすることにより、前記対象画像に前記オブジェクトが合成された画像を前記３次元対象空間上に生成することを特徴とする請求項５に記載の画像表示装置。
【請求項８】
前記対象画像はパノラマ画像であり、前記３次元対象空間は３次元パノラマ空間であることを特徴とする請求項１から７のいずれかに記載の画像表示装置。
【請求項９】
撮影方向に関する情報が関連付けられた対象画像および方向に関する情報が関連付けられた天球画像が保持された記憶デバイスから、表示対象の対象画像と天球画像を読み出すステップと、
前記対象画像内のマスクすべき領域を抽出するステップと、
前記対象画像内の前記マスクすべき領域をマスクした対象画像を生成するステップと、
前記天球画像の方向を前記対象画像の撮影方向に合わせる位置合わせステップと、
位置合わせの後、マスク処理された対象画像および前記天球画像をテクスチャとして３次元対象空間にマッピングするステップと、
前記対象画像の撮影場所を視点位置として、前記３次元対象空間を指定された視線方向に見たときの３次元対象画像を生成するステップとを含むことを特徴とする画像表示方法。
【請求項１０】
撮影方向に関する情報が関連付けられた対象画像および方向に関する情報が関連付けられた天球画像が保持された記憶デバイスから、表示対象の対象画像と天球画像を読み出す機能と、
前記対象画像内のマスクすべき領域を抽出する機能と、
前記対象画像内の前記マスクすべき領域をマスクした対象画像を生成する機能と、
前記天球画像の方向を前記対象画像の撮影方向に合わせる位置合わせ機能と、
位置合わせの後、マスク処理された対象画像および前記天球画像をテクスチャとして３次元対象空間にマッピングする機能と、
前記対象画像の撮影場所を視点位置として、前記３次元対象空間を指定された視線方向に見たときの３次元対象画像を生成する機能とをコンピュータに実現させることを特徴とするプログラム。
【請求項１１】
請求項１０のプログラムを格納したことを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、パノラマ画像を表示する装置および方法に関する。
【背景技術】
【０００２】
デジタルスチルカメラやデジタルビデオカメラが普及しており、撮影した静止画や動画をコンピュータに保存して閲覧、加工したり、ゲーム機やテレビジョン（ＴＶ）システムの画面に表示する機会が多くなっている。また、撮影した動画をインターネットの投稿サイトにアップロードし、他のユーザと動画を共有することも盛んである。
【０００３】
デジタルカメラの中には、パノラマ画像の撮影が可能なものもあり、手軽に視野角の広いパノラマ画像を撮影することができるようになってきた。また、撮影方向を変えながら、デジタルカメラの撮影した複数の画像を貼り合わせることでパノラマ画像を生成するソフトウエアツールもよく利用されている。
【０００４】
ユーザが撮影したこのようなパノラマ画像の投稿を受け付け、インターネットで公開する３６０ｃｉｔｉｅｓというサイト（http;//www.360cities.net）もあり、世界中のユーザが投稿したパノラマ画像を閲覧することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
パノラマ画像は撮影場所から全方位を見た画像を撮影するものであるから、野外でパノラマ画像を撮影すると、パノラマ画像の天井部分には、撮影者の頭上に広々と広がる空が写し出させているだけであることが多い。パノラマ画像の大部分を占める空の領域に何らかの視覚効果を与える画像処理を施せば、パノラマ画像に新鮮味を与えたり、多様性をもたらすことが期待できる。また、撮影されたパノラマ画像に別のオブジェクトを挿入して描画すれば、仮想的に実在していない物体が写り込んだパノラマ画像を生成することができ、意外性がもたらされたり、楽しさが加わることも期待できる。
【０００６】
本発明はこうした課題に鑑みてなされたものであり、その目的は、パノラマ画像を加工して表示することのできる技術を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のある態様のパノラマ画像表示装置は、撮影方向に関する情報が関連付けられたパノラマ画像および方向に関する情報が関連付けられた天球画像を保持する記憶部と、前記パノラマ画像内のマスクすべき領域を抽出するマスク領域抽出部と、前記パノラマ画像内の前記マスクすべき領域をマスクしたパノラマ画像を生成するマスク処理部と、前記天球画像の方向を前記パノラマ画像の撮影方向に合わせる位置合わせ部と、前記位置合わせ部による位置合わせの後、マスク処理されたパノラマ画像および前記天球画像をテクスチャとして３次元パノラマ空間にマッピングするマッピング処理部と、前記パノラマ画像の撮影場所を視点位置として、前記３次元パノラマ空間を指定された視線方向に見たときの３次元パノラマ画像を生成する３次元画像生成部と、前記３次元パノラマ画像を画面に表示させる表示制御部とを含む。
【０００８】
本発明の別の態様も、パノラマ画像表示装置である。この装置は、撮影方向に関する情報が関連付けられたパノラマ画像および方向に関する情報が関連付けられた仮想画像を保持する記憶部と、前記パノラマ画像内のマスクすべき領域を抽出するマスク領域抽出部と、前記パノラマ画像内の前記マスクすべき領域をマスクしたパノラマ画像を生成するマスク処理部と、前記仮想画像の方向を前記パノラマ画像の撮影方向に合わせる位置合わせ部と、前記位置合わせ部による位置合わせの後、マスク処理されたパノラマ画像に前記仮想画像を重ね合わせた拡張現実画像を画面に表示させる表示制御部とを含む。
【０００９】
本発明の別の態様は、パノラマ画像表示方法である。この方法は、撮影方向に関する情報が関連付けられたパノラマ画像および方向に関する情報が関連付けられた天球画像が保持された記憶デバイスから、プロセッサが表示対象のパノラマ画像と天球画像を読み出すステップと、プロセッサが前記パノラマ画像に対してマスクすべき領域を指定するステップと、プロセッサが前記天球画像の方向を前記パノラマ画像の撮影方向に合わせるステップと、位置合わせの後、プロセッサが前記パノラマ画像のマスクすべき領域に前記天球画像を重ね合わせて描画するステップとを含む。
【００１０】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１１】
本発明によれば、パノラマ画像を効果的に加工して表示することができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態に係るパノラマ画像表示装置の構成図である。
【図２】図１のパノラマ画像表示装置に接続される入力デバイスの一例であるコントローラの構成図である。
【図３】図３（ａ）〜（ｄ）は、パノラマ画像を撮影するために用いられる全方位撮影システムの機構と撮影方向を説明する図である。
【図４】図４（ａ）はカメラの方位角θ、図４（ｂ）はカメラの仰角φを説明する図である。
【図５】図５（ａ）〜（ｃ）は、カメラの初期位置が方位角θの方向にある場合に撮影されるパノラマ画像を説明する図である。
【図６】図６（ａ）〜（ｃ）は、カメラの仰角φ＝６０°の場合に撮影されるパノラマ画像を説明する図である。
【図７Ａ】複数の画像をつなぎ合わせてパノラマ画像を作成する方法を説明する図である。
【図７Ｂ】複数の画像をつなぎ合わせてパノラマ画像を作成する方法を説明する図である。
【図８】図１のパノラマ画像表示装置によるパノラマ画像生成手順を説明するフローチャートである。
【図９Ａ】撮影されたパノラマ画像の例を示す図である。
【図９Ｂ】セグメンテーションにより、領域分割されたパノラマ画像を示す図である。
【図９Ｃ】フィルタリング処理されたパノラマ画像を示す図である。
【図９Ｄ】パノラマ画像内の空領域を指定するマスクを示す図である。
【図９Ｅ】空領域がマスク処理されたパノラマ画像を示す図である。
【図１０】パノラマ画像がマッピングされる３次元パノラマ空間と天球の関係を説明する図である。
【図１１Ａ】図９Ｅのマスク処理後のパノラマ画像の空領域に天球画像が貼り付けられた例を示す図である。
【図１１Ｂ】図９Ｅのマスク処理後のパノラマ画像の空領域に星空が貼り付けられ例を示す図である。
【発明を実施するための形態】
【００１３】
本発明の実施の形態の概要を説明する。パノラマ画像内の空が写された領域を抽出し、パノラマ画像の空領域を透明するマスク処理を施す。パノラマ画像がマッピングされるパノラマ球などの３次元パノラマ空間の外側に天球を想定し、空の画像などを天球画像として用意しておき、パノラマ画像がマッピングされる３次元パノラマ空間にマッピングする。これにより、パノラマ画像の透明に切り抜かれた空領域に天球画像が貼り付けられた３次元パノラマ画像が生成される。天球内にパノラマ画像には撮影されていない別のオブジェクトを配置し、オブジェクトも合わせて３次元パノラマ空間にマッピングすれば、生成される３次元パノラマ画像にオブジェクトを挿入することもできる。なお、天球を複数設けて複数の天球画像を３次元パノラマ空間にマッピングしてもよい。たとえば、雲の天球と空の天球を設け、雲の天球には雲の画像を、空の天球には太陽、月、星などの天体の画像を用意してもよい。
【００１４】
図１は、実施の形態に係るパノラマ画像表示装置１００の構成図である。図１に示すパノラマ画像表示装置１００の機能構成は、一例として、パーソナルコンピュータ、ゲーム機、携帯機器、携帯端末などにハードウェア、ソフトウェアまたはその組み合わせによって実装することができる。これらの機能構成の一部がサーバに実装され、一部がクライアントに実装され、パノラマ画像表示装置１００は、ネットワークを介してサーバ−クライアントシステムとして実現されてもよい。
【００１５】
パノラマ画像・付加データ記憶部２４は、撮影場所に関する情報と撮影方位に関する情報が関連付けられたパノラマ画像を保持する。撮影場所や撮影方位に関する情報などの付加データはパノラマ画像のデータファイルに直接付加されてもよく、付加データはパノラマ画像とは別のファイルとして管理されてもよい。
【００１６】
撮影場所に関する情報は、たとえば、ＧＰＳ（Global Positioning System）により与えられる緯度・経度情報を含む。撮影方位に関する情報は、たとえば、方位センサなどから得られるパノラマ画像の中心点の方位角の情報を含み、それ以外に撮影時のカメラの仰角やロール角の情報を含んでもよい。
【００１７】
撮影方位に関する情報としてパノラマ画像の中心点の方位角が与えられれば、カメラを左右方向にパンした角度にもとづいて、パノラマ画像の任意の点の方位を計算上、求めることができる。パノラマ画像の中心点の方位角とパン角にもとづいて計算された、パノラマ画像の真北、真南、真東、真西の方位にあるピクセルの座標値を撮影方位に関する情報としてパノラマ画像にもたせてもよい。
【００１８】
パノラマ画像取得部１０は、表示対象のパノラマ画像をパノラマ画像・付加データ記憶部２４から取得する。表示対象のパノラマ画像は、たとえば、ユーザが地図などで撮影場所を指定することで特定される。
【００１９】
マスク領域抽出部１１は、表示対象のパノラマ画像内のマスクすべき領域を抽出する。マスクすべき領域は、たとえば、パノラマ画像に写された空の領域である。空の領域は、パノラマ画像の色情報をもとに判定することができる。パノラマ画像では撮影者の頭上は空が広がっていることが多いため、空領域は、カメラの仰角の大きいところで連続した広がりのある領域として検出されることが多い。
【００２０】
パノラマ画像には撮影時のカメラの仰角の情報が付されているので、マスク領域抽出部１１は、カメラの仰角の情報をもとにパノラマ画像の地平線の位置を判定し、パノラマ画像の地平線よりも上側の領域内で空の領域を抽出してもよい。あるいは、カメラの仰角が所定の閾値よりも大きい領域は、確実に地平線よりも上側の領域であるから、その領域内で空の領域を抽出してもよい。これにより、地平線よりも下側の領域で空に似た色の領域があっても、空領域と混同して抽出するエラーを回避することができる。
【００２１】
マスク処理部１２は、マスク領域抽出部１１により抽出されたマスクすべき領域をマスクしたパノラマ画像を生成する。マスク領域抽出部１１が空領域をマスクすべき領域として抽出した場合は、抽出された空領域をマスクとしてパノラマ画像にマスク処理を施して、空領域をマスクしたパノラマ画像を生成する。パノラマ画像のマスク処理は、たとえば、元のパノラマ画像からマスクで指定される領域を透明にするか、その領域をクリッピングした画像を生成することによってなされる。マスク処理には、マスク領域の画素値をクリアする２値マスクに限らず、マスク領域の画素値をアルファブレンドする多値マスクを利用してもよい。マスク処理部１２は、マスク処理後のパノラマ画像をパノラマ画像・付加データ記憶部２４に保存する。
【００２２】
天球画像データ記憶部２６には、マスク処理後のパノラマ画像に重ね合わせる天球の画像データが保持されている。天球は、パノラマ画像がマッピングされる３次元パノラマ空間よりも外側にあり、天球の表面に設定された天空の画像が天球画像である。さまざまな地点から見た天球画像が視点の緯度経度に対応づけて天球画像データ記憶部２６に記憶されている。天球画像には、たとえば、太陽、月、星などの天体や雲などが含まれ、天体の運行モデルや気象モデルにもとづいて天体や雲が移動してもよい。また、天球画像は、実写にもとづいて生成されたものであってもよく、コンピュータグラフィックスを用いて生成されたものであってもよい。
【００２３】
位置合わせ部２０は、天球画像の方向をマスク処理後のパノラマ画像の撮影方向に合わせる。具体的には、位置合わせ部２０は、パノラマ画像の撮影場所の緯度経度を中心とする天球の中心を、パノラマ画像がマッピングされる３次元パノラマ空間の中心に合わせ、たとえば北極星の方角を基準として、パノラマ画像のパン角およびチルト角で決まる撮影方向に合うように天球画像の回転角を計算して天球画像を回転させる。
【００２４】
オブジェクトデータ記憶部２８には、パノラマ画像に挿入すべきオブジェクトの３次元データが保持されている。所定の緯度、経度、高度に静止している静的オブジェクトの他、動きモデルにもとづいて３次元空間を移動する動的オブジェクトがある。
【００２５】
オブジェクト挿入部２２は、パノラマ画像に挿入すべきオブジェクトを天球内の指定された空間位置に配置する。オブジェクトは、天球とパノラマ画像がマッピングされる３次元パノラマ空間の間、すなわち３次元パノラマ空間の外側に配置してもよく、３次元パノラマ空間の内部に配置してもよい。オブジェクト挿入部２２によるオブジェクトの挿入はオプションである。
【００２６】
位置合わせ部２０によるパノラマ画像と天球画像の位置合わせの後、マッピング処理部１４は、マスク処理後のパノラマ画像および天球画像をテクスチャとして３次元パノラマ空間にマッピングする処理を行う。
【００２７】
全天球パノラマ画像の場合は、３次元パノラマ空間として球を想定し、球面マッピングにより、パノラマ画像を球面にテクスチャマッピングする。あるいは、３次元パノラマ空間として立方体を想定し、キューブマッピングにより、パノラマ画像を立方体表面にテクスチャマッピングしてもよい。また、パノラマ画像がチルト方向の成分をもたず、パン方向にのみ広がる画像である場合、３次元パノラマ空間として円柱を想定し、パノラマ画像を円柱面にテクスチャマッピングしてもよい。パノラマ画像がパン方向の成分をもたず、チルト方向にのみ広がる画像である場合も同様である。
【００２８】
マッピング処理部１４は、天球画像を３次元パノラマ空間にマッピングした後に、マスク処理後のパノラマ画像を３次元パノラマ空間に重ねてマッピングする。これにより、パノラマ画像内のマスク領域に天球画像の一部を貼り付けた画像が３次元パノラマ空間上に生成される。
【００２９】
オブジェクト挿入部２２によりオブジェクトが３次元パノラマ空間の内側または外側に配置されている場合は、マッピング処理部１４は、配置されたオブジェクトも３次元パノラマ空間にマッピングする。
【００３０】
マッピング処理部１４は、オブジェクトが３次元パノラマ空間の外側に配置されている場合は、オブジェクトを３次元パノラマ空間にマッピングした後に、マスク処理後のパノラマ画像を３次元パノラマ空間に重ねてマッピングする。これにより、オブジェクトがパノラマ画像の空領域に貼り付けられ、オブジェクトがパノラマ画像に写された建物などと重なる場合は、建物で隠れるように描画される。
【００３１】
マッピング処理部１４は、オブジェクトが３次元パノラマ空間の内側に配置されている場合は、マスク処理後のパノラマ画像を３次元パノラマ空間にマッピングした後に、オブジェクトを３次元パノラマ空間に重ねてマッピングする。これにより、オブジェクトがパノラマ画像に重ね合わされ、オブジェクトがパノラマ画像に写された建物などと重なる場合は、建物の手前にオブジェクトが描画される。
【００３２】
３次元画像生成部１６は、マッピング処理部１４によりパノラマ画像、天球画像およびオブジェクトがマッピングされた３次元パノラマ空間内を指定された視線方向に見たときの３次元パノラマ画像を生成する。３次元パノラマ空間が球の場合、視点は球の中心に置かれ、立方体の場合、視点は立方体内部の中心に置かれ、円柱の場合、視点は円柱の中心軸上に置かれる。視点は表示対象のパノラマ画像を撮影した場所であり、視線方向は、その撮影場所から周囲を見る方向であり、方位角と仰角で特定される。３次元画像生成部１６は、方位角と仰角で特定される視線方向で３次元パノラマ空間を見たときの３次元画像を生成する。
【００３３】
表示制御部１８は、生成された３次元パノラマ画像をディスプレイ装置の画面に表示させる。
【００３４】
ユーザインタフェース部４０は、ディスプレイの画面に表示されるグラフィックスに対して、ユーザが入力デバイスを用いて操作することを可能にするグラフィカルユーザインタフェースである。ユーザインタフェース部４０は、画面に表示された地図や３次元パノラマ画像に対するゲーム機のコントローラ、マウス、キーボードなどの入力デバイスからユーザの指示を受け付ける。図２は、入力デバイスの一例であるコントローラ１０２を示し、その構成の詳細については後述する。
【００３５】
ユーザインタフェース部４０は、指定されたパノラマ画像をパノラマ画像・付加データ記憶部２４から取得するように、パノラマ画像取得部１０に指示する。
【００３６】
ユーザは、たとえば、コントローラ１０２のアナログスティック１１８または方向キー群１１６などを操作することにより、３次元パノラマ空間を見る視線方向を変更する指示を入力することができる。ユーザインタフェース部４０の視線方向設定部３２は、ユーザが指示する視線方向を３次元画像生成部１６に与える。３次元画像生成部１６は、３次元パノラマ空間を指定された視線方向から見た場合の画像を生成する。
【００３７】
画角設定部３１は、ユーザが表示されたパノラマ画像に対してズーム操作をしたときの画角を設定し、パノラマ画像取得部１０と３次元画像生成部１６に設定された画角の情報を与える。画角の異なるパノラマ画像がパノラマ画像・付加データ記憶部２４に記憶されている場合、パノラマ画像取得部１０は、設定された画角にもっとも近い画角のパノラマ画像を読み出し、表示対象のパノラマ画像を切り替える。３次元画像生成部１６は、設定された画角に応じて３次元パノラマ画像を拡大・縮小することで、ズームイン・ズームアウトの視覚効果を実現する。
【００３８】
パノラマ画像には、撮影高度に関する情報も付与されており、パノラマ画像・付加データ記憶部２４は、同一の撮影位置に対して異なる高度で撮影されたパノラマ画像を保持してもよい。その場合、ユーザは、たとえば、コントローラ１０２の筐体前面の左側にあるＬ１／Ｌ２ボタン１６１、１６２を操作することにより、高度を変更する指示を入力することができる。Ｌ１ボタン１６１を押すことにより、高度を上げる指示を、Ｌ２ボタン１６２を押すことにより、高度を下げる指示を与えることができる。
【００３９】
表示制御部１８は、現在表示されているパノラマ画像について、同一撮影場所で異なる高度で撮影したパノラマ画像があることを、たとえば、画面の上部、下部に小さな矢印を示すことでユーザに知らせてもよい。画面の上部に上向きの矢印があれば、現在よりも撮影高度の高い画像があることを示し、画面の下部に下向きの矢印があれば、現在よりも撮影高度の低い画像があることを示す。
【００４０】
ユーザインタフェース部４０の高度設定部３４は、ユーザから高度を変更する指示を受け取ると、同一撮影位置であるが、指定された高度に対応するパノラマ画像をパノラマ画像・付加データ記憶部２４から取得するように、パノラマ画像取得部１０に指示する。パノラマ画像取得部１０は、Ｌ１ボタン１６１が押された場合は、現在表示されているパノラマ画像よりも撮影高度のより高いパノラマ画像を取得し、Ｌ２ボタン１６２が押された場合は、撮影高度のより低いパノラマ画像を取得する。
【００４１】
表示制御部１８は、撮影高度の異なるパノラマ画像に切り替えて表示する際、たとえば、ユーザがエレベータで上下しているかのような感覚を与えるために、特別なエフェクトを画像に施してもよい。たとえば、より高度の高いパノラマ画像に切り替える場合、現在表示されているパノラマ画像を下にスクロールさせて、より高度の高いパノラマ画像が上から降りてくるように表示させることで、ユーザはあたかも階上に行ったかのような感覚をもつことができる。
【００４２】
パノラマ画像には、撮影日時に関する情報も付与されており、パノラマ画像・付加データ記憶部２４は、同一の撮影位置に対して撮影日時の異なるパノラマ画像を保持してもよい。その場合、ユーザは、たとえば、コントローラ１０２の筐体前面の右側にあるＲ１／Ｒ２ボタン１５１、１５２を操作することにより、撮影日時を変更する指示を入力することができる。Ｒ１ボタン１５１を押すことにより、遅い日時にシフトする指示を、Ｒ２ボタン１５２を押すことにより、早い日時にシフトする指示を与えることができる。
【００４３】
表示制御部１８は、現在表示されているパノラマ画像について、異なる日時に撮影したパノラマ画像があることを、たとえば、時計やカレンダーのアイコンを画面の隅に示すことでユーザに知らせてもよい。朝、昼、夜など時間帯の異なるパノラマ画像が存在するときは時計のアイコンを、春、夏、秋、冬など季節の異なるパノラマ画像が存在するときはカレンダーのアイコンを表示する。
【００４４】
ユーザインタフェース部４０の日時設定部３６は、ユーザから日時を変更する指示を受け取った場合、同一撮影位置であるが、指定された日時に対応するパノラマ画像をパノラマ画像・付加データ記憶部２４から取得するように、パノラマ画像取得部１０に指示する。パノラマ画像取得部１０は、Ｒ１ボタン１５１が押された場合は、現在表示されているパノラマ画像よりも撮影日時のより遅いパノラマ画像を取得し、Ｒ２ボタン１５２が押された場合は、撮影日時のより早いパノラマ画像を取得する。
【００４５】
これにより、たとえば、同一撮影場所であっても、朝の時間帯に撮影されたパノラマ画像から夜の時間帯にパノラマ画像に切り替えたり、春に撮影されたパノラマ画像から秋に撮影されたパノラマ画像に切り替えるなど、時間帯や季節などが異なるパノラマ画像に切り替えることができる。表示制御部１８は、パノラマ画像を切り替えるとき、フェイドイン・フェイドアウトなどのエフェクトを画像に施してもよい。
【００４６】
視点位置設定部３０は、パノラマ画像の撮影場所を視点位置に設定し、視点位置を３次元画像生成部１６に通知する。視線方向設定部３２は、指定された視線方向を３次元画像生成部１６に与える。
【００４７】
図２は、図１のパノラマ画像表示装置１００に接続される入力デバイスの一例であるコントローラ１０２の構成図である。パノラマ画像表示装置１００は、一例としてゲーム機であってもよい。
【００４８】
コントローラ１０２は、パノラマ画像表示装置１００に対する操作入力を行うための複数のボタンやキーを有する。ユーザがコントローラ１０２のボタンやキーを操作すると、その操作入力が無線または有線によりパノラマ画像表示装置１００に送信される。
【００４９】
コントローラ１０２の筐体上面１２２には、方向キー群１１６、アナログスティック１１８、操作ボタン群１２０が設けられている。方向キー群１１６は、「上」、「下」、「左」、「右」方向指示キーを含む。操作ボタン群１２０は、○ボタン１２４、×ボタン１２６、□ボタン１２８、および△ボタン１３０を含む。
【００５０】
ユーザは左手で左側把持部１３４ｂを把持し、右手で右側把持部１３４ａを把持して、筐体上面１２２上の方向キー群１１６、アナログスティック１１８、および操作ボタン群１２０を操作する。
【００５１】
さらに、コントローラ１０２の筐体前面には、右側操作部１５０と左側操作部１６０が設けられている。右側操作部１５０はＲ１ボタン１５１とＲ２ボタン１５２を含み、左側操作部１６０はＬ１ボタン１６１とＬ２ボタン１６２を含む。
【００５２】
ユーザは、方向キー群１１６を操作することにより、画面上の表示されたポインタを上下左右の各方向に移動させることができる。たとえば、パノラマ画像内に表示された複数のマーカーのいずれかを選択する際、方向キー群１１６を操作して画面上で複数のマーカー間を移動することができる。ユーザは所望のマーカー上にポインタが来たときに、○ボタン１２４を押すことでそのマーカーを選択することができる。
【００５３】
操作ボタン群１２０の各ボタンには、パノラマ画像表示アプリケーションプログラムによりそれぞれ異なる機能が割り付けられてもよい。たとえば、△ボタン１３０にはメニューの表示を指定する機能、×ボタン１２６には、選択した項目の取り消し等を指定する機能、○ボタン１２４には選択した項目の決定等を指定する機能、□ボタン１２８には、目次等の表示／非表示を指定する機能がそれぞれ割り付けられる。
【００５４】
アナログスティック１１８は、ユーザによって傾倒操作されたとき、アナログ値を出力する手段を備える。コントローラ１０２は、アナログスティック１１８を傾倒したときの方向と量に応じたアナログ出力信号をパノラマ画像表示装置１００に送る。たとえば、ユーザは、アナログスティック１１８を所望の方向に傾倒することで、ディスプレイに表示された３次元パノラマ画像内で視点を所望の方向に移動させることができる。
【００５５】
筐体上面１２２には、さらにＬＥＤ付きボタン１３６、セレクトボタン１４０、スタートボタン１３８が設けられる。ＬＥＤ付きボタン１３６は、たとえば、ディスプレイにメニュー画面を表示させるためのボタンとして利用される。スタートボタン１３８は、パノラマ画像表示アプリケーションの起動、パノラマ画像の再生開始、一時停止などをユーザが指示するためのボタンである。セレクトボタン１４０は、ディスプレイに表示されたメニュー表示の選択等をユーザが指示するためのボタンである。
【００５６】
図３（ａ）〜（ｄ）は、パノラマ画像を撮影するために用いられる全方位撮影システム２３０の機構と撮影方向を説明する図である。
【００５７】
図３（ｄ）に示すように、全方位撮影システム２３０において、カメラ２００は操作盤２１０に固定されており、操作盤２１０をＺ軸周りに回転させることでカメラのパン角を変え、Ｘ軸周りに回転させることでカメラのチルト角を変え、Ｙ軸周りに回転させることでカメラのロール角を変えることができる。ここでＺ軸は鉛直軸（重力方向軸）である。
【００５８】
図３（ａ）は、操作盤２１０に設置されたカメラ２００の上面図であり、操作盤の初期位置（Ｙ軸方向）をパン角０°とし、Ｚ軸の周りに−１８０°〜＋１８０°の範囲でパン角を変えることができる。
【００５９】
図３（ｂ）は、操作盤２１０に設置されたカメラ２００の正面図であり、操作盤２１０が水平に置かれた状態をロール角０°とし、Ｙ軸の周りに−１８０°〜＋１８０°の範囲でロール角を変えることができる。
【００６０】
図３（ｃ）は、操作盤２１０に設置されたカメラ２００の側面図であり、操作盤２１０が水平に置かれた状態をチルト角０°とし、Ｘ軸の周りに−９０°〜＋９０°の範囲でチルト角を変えることができる。
【００６１】
図３（ｄ）の全方位撮影システム２３０により撮影されるパノラマ画像に撮影方位に関する情報を付与するためには、カメラ２００が撮影時にどの方位に向いていたかを記録しておく必要がある。そのために、全方位撮影システム２３０は、方位を測定するための方位センサや傾斜角を測定するための加速度センサなどを備える。さらに、撮影位置や撮影時間を測定するためにＧＰＳセンサなども備える。
【００６２】
図４（ａ）はカメラ２００の方位角θ、図４（ｂ）はカメラ２００の仰角φを説明する図である。図４（ａ）はカメラ２００の上面図であり、カメラ２００は撮影の初期位置において、真北から東へ方位角θだけずれた方向２２０を向いており、この方向がパン角０°に相当する。すなわちパン角の基準方向２２０の方位角はθである。パノラマ画像を撮影するとき、この方位角θの基準方向２２０に対して−１８０°〜＋１８０°の範囲でパン角を変えながら、被写体をパノラマ撮影する。
【００６３】
図４（ｂ）はカメラ２００の側面図であり、仰角φは、Ｘ軸周りにカメラ２００を回転させた場合に、チルト０°の方向、すなわちＹ軸方向に対して上方向を正と定義する角度である。通常、カメラ２００を水平ポジションに設定して撮影するので仰角φ＝０°であるが、全天球のパノラマ画像を撮影するには、カメラをチルトさせて仰角φを変えて被写体を撮影する必要がある。
【００６４】
図５（ａ）〜（ｃ）は、カメラ２００の初期位置が方位角θの方向にある場合に撮影されるパノラマ画像を説明する図である。
【００６５】
図５（ａ）の上面図に示すように、初期位置においてカメラ２００は方位角θの方向２２０を向いており、図５（ｂ）の側面図に示すように、カメラ２００の仰角φ＝０°である。仰角φ＝０°に保ちながら、基準方向２２０に対してカメラ２００のパン角を−１８０°から＋１８０°の範囲で変化させながら、仰角φ＝０°における全方位のパノラマ画像を撮影する。図５（ｃ）は、このようにして撮影されたパノラマ画像３００を示す。パノラマ画像３００の中心はパン角０°であり、パノラマ画像３００の左半分はパン角を０°から−１８０°まで変えて撮影された画像であり、右半分はパン角を０°から１８０°まで変えて撮影された画像である。
【００６６】
パノラマ画像３００のパン角０°の中心位置は、真北から方位角θだけ東にずれているから、北（Ｎ）、南（Ｓ）、東（Ｅ）、西（Ｗ）の位置は点線で示す箇所になる。パノラマ画像３００は、撮影方位に関する情報として、パン角０°の中心位置の方位角θをもってさえいれば、北（Ｎ）、南（Ｓ）、東（Ｅ）、西（Ｗ）のピクセル位置は、方位角θのずれを考慮して計算で求めることができる。あるいは、方位角θの代わりに、北（Ｎ）、南（Ｓ）、東（Ｅ）、西（Ｗ）のピクセル位置の座標値を撮影方位に関する情報としてもうようにしてもよい。
【００６７】
全天球のパノラマ画像を得るためには、カメラ２００の仰角を変えて撮影する必要がある。たとえば、カメラ２００の画角が６０°であるとすると、原理的にはカメラ２００を上下に±６０°チルトさせた上で、パン角を−１８０°〜１８０°の範囲で変えながら同様の撮影を行えば、全天球のパノラマ画像を得ることができる。
【００６８】
図６（ａ）〜（ｃ）は、カメラ２００の仰角φ＝６０°の場合に撮影されるパノラマ画像を説明する図である。図６（ａ）の上面図に示すように、初期位置においてカメラ２００は方位角θの方向２２０を向いており、図６（ｂ）の側面図に示すように、カメラ２００の仰角φ＝６０°である。仰角φ＝６０°に保ちながら、基準方向２２０に対してカメラ２００のパン角を−１８０°から＋１８０°の範囲で変化させながら、図６（ｃ）に示すような、仰角φ＝６０°におけるパノラマ画像３０２を撮影する。
【００６９】
同様にして、カメラ２００の仰角をφ＝−６０°に保ちながら、パン角を−１８０°から＋１８０°の範囲で変化させながら、仰角φ＝−６０°におけるパノラマ画像を撮影する。仰角φ＝０°、６０°、−６０°のパノラマ画像を組み合わせれば、全天球パノラマ画像が得られる。もっとも、実装上は、画角の境界部分で画像を貼り合わせる際にレンズの歪みから生じる不整合を補正するために、境界付近をだぶらせて撮影する方法を採ることが多い。
【００７０】
このようにして得られた全天球パノラマ画像には、方位角および仰角の情報が付与されており、その情報にもとづいてパノラマ画像の任意のピクセルについて方位と仰角を特定可能である。また、パノラマ画像には撮影場所の位置情報としてＧＰＳにより測定された緯度・経度情報も付与される。パノラマ画像に付与すべき付加情報は、一例として、Ｅｘｉｆ（Exchangeable Image File Format）と呼ばれる画像ファイルの規格にしたがって記録してもよい。撮影場所の地名はファイル名の一部に記録し、撮影日時、撮影場所の緯度・経度、高度、方位角などをＥｘｉｆ形式のデータとして記録することができる。仰角はＥｘｉｆ形式では定義されていないが、拡張データとして記録する。
【００７１】
図７Ａおよび図７Ｂは、複数の画像をつなぎ合わせてパノラマ画像を作成する方法を説明する図である。
【００７２】
図７Ａの例では、カメラ２００をチルト（またはパン）させながら撮影された７枚の画像３４１〜３４７を円筒にマッピングした後、つなぎ合わせて円筒状の画像３４０を作成する。画像をつなぎ合わせるとき、画像の境界付近をオーバーラップさせる。
【００７３】
図７Ｂに示すように、カメラ２００をパン（またはチルト）させて撮影することで、図７Ａで示した円筒状の画像がパン（またはチルト）方向に複数得られる。これらの円筒状の画像３４０ａ〜３４０ｆを画像の境界付近をオーバーラップさせて合成することで、全方位のパノラマ画像３６０が最終的に得られる。
【００７４】
図８は、パノラマ画像表示装置１００によるパノラマ画像生成手順を説明するフローチャートである。図９Ａ〜図９Ｅ、図１０、図１１Ａおよび図１１Ｂを参照しながら、図８のパノラマ画像生成手順の各ステップを説明する。図８に示すフローチャートにおいては、各部の処理手順を、ステップを意味するＳ（Ｓｔｅｐの頭文字）と数字との組み合わせによって表示する。
【００７５】
パノラマ画像取得部１０は、撮影されたパノラマ画像４００とそれに付加された撮影場所および撮影方位に関する情報をパノラマ画像・付加データ記憶部２４から取得する（Ｓ１０）。
【００７６】
図９Ａは、撮影されたパノラマ画像４００の例を示す図である。パノラマ画像の中央には建物が写っており、パノラマ画像の下側には地面が写っている。パノラマ画像の上側には空４１０が写っており、空４１０には雲の他、太陽４３０が写っている。
【００７７】
マスク領域抽出部１１は、パノラマ画像４００の空領域をマスクすべき領域として抽出する（Ｓ１２）。パノラマ画像から空領域を抽出するために、マスク領域抽出部１１は、一例として、セグメンテーションと呼ばれる手法を用いて、パノラマ画像をセグメント化し、意味のある領域に分割する。セグメンテーションとは、画像認識でしばしば用いられる手法の一つであり、画像中の対象物に対応する領域を検出して、画像を分割することである。セグメンテーションにより、画像は、空、建物、地面、人といった対象物毎の領域に分割される。
【００７８】
セグメンテーションには、一般にクラスタリング手法が用いられる。画像に写された対象物に対応する画素は色や輝度などにおいて類似する特徴を有することから、画素をクラスタリングすることで、対象物に対応する領域に画像をセグメント化することができる。画素のクラスタリングの正解を教師データとして与える教師ありクラスタリングを用いてもよい。本実施の形態では、ユーザがパノラマ画像において空領域に属する画素をいくつか指定することで教師データを与える。
【００７９】
図９Ｂは、セグメンテーションにより、領域分割されたパノラマ画像４０２を示す図である。セグメンテーションによって、パノラマ画像は、空の領域、建物の領域、地面の領域などにセグメント化されていることがわかる。
【００８０】
図９Ａのパノラマ画像４００の空領域４１０について見れば、セグメンテーションにより、図９Ｂに示すように、主に符号４１１〜４１５で示す５つの領域に分割されている。元のパノラマ画像４００には太陽４３０が写り込んでいたため、符号４１１〜４１５の順に青から白に段階的に変化する５つの領域として検出されており、空領域を一つの領域として検出することはできていない。また、符号４１１で示す領域の中には、雲に相当する領域が別のセグメントとして抽出されており、空のセグメント化は完全ではない。
【００８１】
しかしながら、このような不完全なセグメンテーション結果に対してでも、空の色を指定し、各領域の画素の色と指定された空の色の絶対差分が所定の閾値未満であれば、空領域であると判定することで、５つの領域の内、たとえば、符号４１１、４１２、４１３の３領域をまとめて一つの空領域として検出することができる。また、手作業によって、符号４１１で示す領域内の雲に相当する領域を消すこともできる。
【００８２】
一般に、セグメンテーションは、時間のかかる処理であるため、記録装置に保存されたパノラマ画像に対してアイドル時間を利用して処理を実行できる場合には適用できるが、撮影されたパノラマ画像に対してリアルタイムで処理を実行しなければならない場合にはあまり適していない。そこで、マスク領域抽出部１１は、セグメンテーションに代わる別の方法として、双方向フィルタ（bilateral filter）と呼ばれるフィルタリング処理を施して、空領域を検出してもよい。
【００８３】
図９Ｃは、フィルタリング処理されたパノラマ画像４０４を示す図である。図９Ａのパノラマ画像４００に対して、画素値を平坦化し、エッジを強調する双方向フィルタをかけることで、元のパノラマ画像４００の空領域４１０は、図９Ｃに示すように、空のグラデーションや雲が消え、符号４２１で示すような一つの領域として検出される。太陽４３０が写り込んだ領域は符号４２２、４２３のようにグラデーションをもつ別の領域として抽出されている。
【００８４】
マスク領域抽出部１１は、フィルタリング処理後のパノラマ画像４０４の画素の色と空の色の絶対差分が所定の閾値以下である場合に、その画素を空であると判定することで、パノラマ画像４０４から空領域を抽出する。空の色は、ユーザが指定したり、撮影時の天候や季節などに応じてシステムが自動的に設定してもよい。
【００８５】
しかし、この判定では、空に近い色であれば、空以外の対象物の画素も空領域として選択されるおそれがある。そこで、マスク領域抽出部１１は、パノラマ画像を撮影したときのカメラの仰角の情報を用いて、パノラマ画像の地平線の位置を検出し、地平線よりも下側で、指定された空の色に近い画素があっても、空領域として検出しないようにする。言い換えれば、カメラの仰角がある閾値以上の領域内でのみ、空領域の検出を行うようにする。これにより、たとえば、パノラマ画像に海や池、プールなどが写り込んでいたとしても、地平線よりも下にあるため、誤って空と判定するエラーを回避することができる。
【００８６】
また、パノラマ画像では撮影者の頭上に広々とした空が撮影されることが多く、空領域は一定の広さをもった連続した領域になるのが普通である。したがって、パノラマ画像の空領域は連続しているという知識を用いれば、空と誤判定される領域を少なくすることができる。
【００８７】
図９Ｃの例では、マスク領域抽出部１１は、フィルタリング処理後のパノラマ画像４０４から、太陽４３０に対応する領域４２２、４２３も含めて、符号４２１、４２２、４２３で示す領域を空領域として抽出する。
【００８８】
図９Ｄは、パノラマ画像４０４内の空領域を指定するマスク４４０を示す図である。マスク領域抽出部１１は、フィルタリング処理後のパノラマ画像４０４から抽出された空領域をマスク４４０として設定し、マスク処理部１２に与える。
【００８９】
図８のフローチャートに戻り、マスク処理部１２は、マスク領域抽出部１１により設定されたマスク４４０を用いてパノラマ画像４００にマスク処理を施して、空領域を切り抜く（Ｓ１４）。
【００９０】
図９Ｅは、空領域がマスク処理されたパノラマ画像４０８を示す図である。これは、元のパノラマ画像４００から空領域４１０が切り抜かれた画像である。
【００９１】
次に、位置合わせ部２０は、３次元パノラマ空間にマッピングされるパノラマ画像の撮影方向と、同じく３次元パノラマ空間にマッピングされる天球画像の方向を合わせる（Ｓ１６）。オブジェクト挿入部２２は、必要に応じて、パノラマ画像に挿入すべきオブジェクトを３次元パノラマ空間の外側または内側に配置する（Ｓ１８）。
【００９２】
図１０は、マスク処理後のパノラマ画像４０８がマッピングされる３次元パノラマ空間と天球の関係を説明する図である。
【００９３】
マスク処理によって空領域５１２が透明にされたパノラマ画像５１０が３次元パノラマ空間の一例であるパノラマ球５００にマッピングされている。パノラマ球５００の中心はパノラマ画像の撮影場所、すなわち視点位置である。その視点位置を中心として、パノラマ球５００の外側に天球５４０が設けられる。天球５４０の表面には、雲５３２、５３４や太陽などを含む天球画像が設定されている。天球画像は、天球画像データ記憶部２６から選択することができ、星や月が描かれた星空の天球画像を用いてもよい。
【００９４】
パノラマ球５００にマッピングされるパノラマ画像５１０と、天球５４０上の天球画像とは北極星の方位５５０が一致するように、パノラマ画像５１０がマッピングされるパノラマ球を回転させて調整する。もっとも方向を気にしない場合は、位置合わせの処理は不要であるが、位置合わせをしない場合は、天球に描かれた太陽や月、星がパノラマ画像の撮影方向とは異なる方向に表れ、不自然になる。
【００９５】
飛行船５２０と飛行機５３０はパノラマ画像に挿入するオブジェクトの例である。飛行機５３０は、天球５４０とパノラマ球５００の間、言い換えればパノラマ球５００の外部に配置されており、飛行船５２０は、パノラマ球５００の内部に配置されている。パノラマ画像の遠景にオブジェクトを挿入したい場合は、パノラマ球５００の外側に配置し、近景にオブジェクトを挿入したい場合は、パノラマ球５００の内側に配置する。飛行船５２０と飛行機５３０は、それぞれの動きモデルにしたがって、天球５４０内を移動する。
【００９６】
図８のフローチャートに戻り、マッピング処理部１４は、マスク処理後のパノラマ画像５１０と天球５４０に描かれた天球画像とをパノラマ球５００にマッピングする。また、マッピング処理部１４は、飛行船５２０、飛行機５３０などのオブジェクトもパノラマ球５００にマッピングする（Ｓ２０）。
【００９７】
パノラマ球５００の中心、すなわち視点位置から見ると、パノラマ画像５１０の空領域５１２は透明に切り抜かれているため、空領域５１２には天球５４０の表面に描かれた天球画像が見える。パノラマ球５００の外側にある飛行機５３０は空領域５１２を通して遠くに見えるが、パノラマ画像に写った建物に遮られるときは見えない。一方、パノラマ球５００の内側にある飛行船５２０は近くに見え、場合によっては建物よりも手前に見えることもある。
【００９８】
マッピング処理部１４は、パノラマ球５００の中心から見た画像を再現するべく、視点から遠い順にパノラマ球５００に画像をマッピングして重ね描きする。まず、天球５４０に描かれた天球画像をパノラマ球５００にマッピングし、その上に、パノラマ球５００の外部に配置された飛行機５３０をパノラマ球５００にマッピングする。次に、マスク処理後のパノラマ画像５１０をパノラマ球５００にマッピングし、最後に、パノラマ球５００の内部に配置された飛行船５２０をパノラマ球５００にマッピングする。これにより、パノラマ画像５１０の透明の空領域５１２には天球画像が覗き見えるように貼り付けられ、パノラマ球５００の外側の飛行機５３０は遠景に、パノラマ球５００の内側の飛行船５２０は近景に貼り付けられる。
【００９９】
図１１Ａは、図９Ｅのマスク処理後のパノラマ画像４０８の空領域に天球画像が貼り付けられた例を示す図である。図１１Ａのパノラマ画像４５０の空領域には、雲５３２、５３４を含む天球画像が貼り付けられており、遠景には飛行機５３０が、近景には建物の手間に飛行船５２０が挿入されている。
【０１００】
図１１Ｂは、別の天球画像の例として、図９Ｅのマスク処理後のパノラマ画像４０８の空領域に星空が貼り付けられた例を示す図である。図１１Ｂのパノラマ画像４５２の空領域には、月や星を含む天球画像が貼り付けられている。パノラマ画像を表示する月日にしたがって天球５４０に描画される月の満ち欠けや星の見える方角を調整することで、リアリティのある夜空をパノラマ画像の空領域に見せることができる。
【０１０１】
本実施の形態では、パノラマ画像がマッピングされるパノラマ球５００の外側に天球５４０を設けているため、天球５４０に描画される天球画像をパノラマ画像とは独立に変更して、パノラマ画像に合成することができる。
【０１０２】
ユーザは、たとえば、コントローラ１０２のＲ１／Ｒ２ボタン１５１、１５２を操作することにより、天球に描画される星座の運行を制御してもよい。たとえば、Ｒ１ボタン１５１を押すことにより、日時を先送りし、Ｒ２ボタン１５２を押すことにより、日時を逆戻りさせることで、異なる季節の星座を空領域に表示させることができる。
【０１０３】
図８のフローチャートに戻り、３次元画像生成部１６は、マスク処理後のパノラマ画像５１０、天球５４０の画像、飛行船５２０や飛行機５３０などのオブジェクトがマッピングされた３次元パノラマ球を指定された視線方向に見たときの３次元パノラマ画像を生成し、表示制御部１８は生成された３次元パノラマ画像を表示する（Ｓ２２）。
【０１０４】
以上述べたように、本実施の形態のパノラマ画像表示装置によれば、パノラマ画像の空領域を切り抜いて別の天球画像に置き換えることができる。たとえば、雨模様のときに撮られたパノラマ画像であっても、空領域を切り抜いて、晴れた青空に置き換えたり、朝日の昇る空から夕日が沈む空に変えたりすることができ、撮影後のパノラマ画像に多様性を与えることができる。また、飛行船や人工衛星などの仮想的なオブジェクトとして挿入することで、撮影されたパノラマ画像に娯楽性を与えることもできる。本実施の形態は、仮想世界の情報と現実世界の情報を重ね合わせる、いわゆるＡＲ（拡張現実；Augmented Reality）の技術分野で利用することができる。すなわち、現実世界であるパノラマ画像を基準として、仮想的に作られた星空などのパノラマ画像を自然に重ね合わせて、現実環境を仮想情報で拡張した仮想現実世界を作り出すことができる。
【０１０５】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【０１０６】
上記の説明では、マスク処理されたパノラマ画像と天球画像を球面などの３次元パノラマ空間にマッピングし、指定された視線方向から３次元パノラマ空間を見た場合の３次元パノラマ画像を画面に表示したが、パノラマ画像のマスク領域に仮想画像を重ね合わせた画像を単に２次元表示するだけでもよい。この場合、マッピング処理部１４および３次元画像生成部１６の構成は不要であり、パノラマ画像表示装置１００を簡素化できる。また、オフラインでパノラマ画像に仮想画像を合成するだけでなく、リアルタイムでパノラマ画像のマスク領域を仮想画像で置き換えた拡張現実画像をユーザの眼前に装着できる透過型のディスプレイなどの表示デバイスに表示してもよい。
【０１０７】
上記の実施の形態では、野外で撮影されたパノラマ画像の空領域をマスクすべき領域として抽出したが、たとえば、ドーム型屋根のスタジアムにおいて野球などのスポーツを撮影したパノラマ画像であれば、ドーム型屋根の領域をマスクすべき領域として抽出してもよい。ドーム型屋根の領域を切り抜いて天球画像を貼り付けることで、あたかも野外でなされた試合であるように見せることができる。ドーム型屋根の領域を切り抜くには、たとえば、カメラの所定の仰角以上で撮影された領域や所定の高度以上の領域をマスクすべき領域として抽出すればよい。また、色の変化が少ない、所定の面積をもつ領域をマスクすべき領域として抽出してもよい。たとえば、ビルの窓ガラスの領域をマスクして、窓の領域を切り抜いて、別の画像を貼り付けてもよい。誰もいないビルでも仮想的に人がいるように見せたり、窓から見える外の景色を変えたりすることができる。また、海や池、砂漠などの領域をマスクすべき領域として抽出してもよい。東京湾を南太平洋の画像に置き換えたり、砂漠を緑地の画像に置き換えることができる。
【０１０８】
パノラマ画像は図３のような全方位撮影システムで撮影されたものに限らず、魚眼レンズを用いて撮影された画像や、撮影方向を変えながら通常のデジタルカメラで撮影された複数の画像を合成した画像であってもよい。
【０１０９】
上記の実施の形態では、マスク処理後のパノラマ画像と天球画像を重ね合わせて表示する際、視点から遠い順に画像を３次元パノラマ球にマッピングして描画した。すなわち、３次元パノラマ球に天球画像をマッピングした後、マスク領域を透明に切り抜いたパノラマ画像を３次元パノラマ球に重ねてマッピングした。別のマッピング方法として、天球画像からマスクに対応する領域を切り出し、３次元パノラマ球にマッピングされたパノラマ画像のマスク領域の上に、マスクに対応する領域の天球画像を貼り付けてもよい。
【０１１０】
一般に、マスク領域の境界部分は、パノラマ画像と天球画像の合成により、画像の不連続性が生じ、不自然な印象を与える。そこで、マスク領域の画像に対してガウシアンフィルタを施して平滑化したり、マスク領域の境界付近では、パノラマ画像と天球画像をアルファブレンドすることで境界をぼやかしてもよい。
【０１１１】
パノラマ画像表示装置１００の機能構成の内、主にパノラマ画像のマスク処理、パノラマ画像のマスク領域に天球画像や仮想画像を重ね合わせる処理に係る構成をサーバに実装し、主に天球画像や仮想画像が重ね合わされたパノラマ画像を閲覧する処理に係る構成をクライアントに実装することで、パノラマ画像表示装置１００を、ネットワークを介したサーバ−クライアントシステムとして実現することもできる。サーバが、パノラマ画像のマスク領域を抽出してマスク処理を施し、マスク領域に天球画像や仮想画像を重ね合わせる処理を行い、クライアントには、天球画像や仮想画像が重ね合わされたパノラマ画像を閲覧するインタフェースが提供されてもよい。クライアントの表示画面においてユーザがパノラマ画像の特定の領域をマスクすべき領域として指定するインタフェースが設けられてもよい。また、クライアントが、パノラマ画像と天球画像のデータをサーバから受信し、クライアント側で、天球画像とパノラマ画像の位置合わせを適宜調整して、天球画像をパノラマ画像に重ね合わせる処理を行ってもよい。これにより、ユーザ側で自由に天球画像を回転させてパノラマ画像に重ね合わせることができる。
【符号の説明】
【０１１２】
１０  パノラマ画像取得部、  １１  マスク領域抽出部、  １２  マスク処理部、  １４  マッピング処理部、  １６  ３次元画像生成部、  １８  表示制御部、  ２０  位置合わせ部、  ２２  オブジェクト挿入部、  ２４  パノラマ画像・付加データ記憶部、  ２６  天球画像データ記憶部、  ２８  オブジェクトデータ記憶部、  ３０  視点位置設定部、  ３２  視線方向設定部、  ３４  高度設定部、  ３６  日時設定部、  ４０  ユーザインタフェース部、  １００  パノラマ画像表示装置、  ２００  カメラ。
【図１】
0005250598.tif 000002
【図２】
0005250598.tif 000003
【図３】
0005250598.tif 000004
【図４】
0005250598.tif 000005
【図５】
0005250598.tif 000006
【図６】
0005250598.tif 000007
【図７Ａ】
0005250598.tif 000008
【図７Ｂ】
0005250598.tif 000009
【図８】
0005250598.tif 000010
【図９Ａ】
0005250598.tif 000011
【図９Ｂ】
0005250598.tif 000012
【図９Ｃ】
0005250598.tif 000013
【図９Ｄ】
0005250598.tif 000014
【図９Ｅ】
0005250598.tif 000015
【図１０】
0005250598.tif 000016
【図１１Ａ】
0005250598.tif 000017
【図１１Ｂ】
0005250598.tif 000018