(57)【要約】【課題】  景観画像の表示の処理負荷を低減させた携帯端末を提供する。【解決手段】  位置情報取得部５１はアプリケーション実行環境１５を介して位置センサ１３から携帯端末１０の位置情報を取得する。パノラマ画像選択部５２は姿勢センサ１４から携帯端末１０の姿勢情報を取得する。パノラマ画像選択部５２は、位置情報に応じて外部記憶装置１６中のいずれかのパノラマ画像６０を選択し、画像切出し位置計算部５６は、姿勢情報に応じて方位角平滑化部５４で得られた方位角と仰角平滑化部５５で得られた仰角から、パノラマ画像６０内において切出す位置座標を求める。表示画像生成部５７は画像切出し位置計算部５６から得られた切出し位置とパノラマ画像選択部５２で得られたパノラマ画像６０から、表示部１２に表示すべき表示画像を生成する。【選択図】  図１
2008243027.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１枚以上のパノラマ画像を保持するパノラマ画像データベースと、
携帯端末の姿勢情報を取得する姿勢情報取得部と、
携帯端末の姿勢情報に対応したパノラマ画像の切出し位置を計算する画像切出し位置計算部と、
前記パノラマ画像内の前記画像切出し位置計算部が計算した切出し位置内の画素のデータを抽出して表示画像を生成する表示画像生成部
を備えることを特徴とする携帯端末。
【請求項２】
姿勢情報の方位成分を平滑化する方位角情報平滑化部と、
姿勢情報の仰角成分を平滑化する仰角情報平滑化部
を備えることを特徴とする請求項１記載の携帯端末。
【請求項３】
前記パノラマ画像は、所定の仰角の範囲内の画像データのみを有し、
前記表示画像生成部は、前記パノラマ画像の範囲を越える領域はマスク表示して表示画像を生成する
ことを特徴とする請求項１又は請求項２のいずれかに記載の携帯端末。
【請求項４】
前記表示画像生成部は、前記画像切出し位置計算部が計算した切出し位置内の仰角が所定の閾値以内の画素のデータを抽出して前記表示画像を生成する
ことを特徴とする請求項１又は請求項２のいずれかに記載の携帯端末。
【請求項５】
前記各パノラマ画像には各々位置情報が対応付けられており、
携帯端末の位置を取得する位置情報取得部と、
前記位置情報取得部が取得した位置から所定の閾値内の位置情報を有するパノラマ画像を選択するパノラマ画像選択部を備え、
前記表示画像生成部は、パノラマ画像選択部が選択したパノラマ画像から前記表示画像を生成する
ことを特徴とする請求項１から請求項４のいずれかに記載の携帯端末。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、景観画像の表示の処理負荷を低減させた携帯端末に関する。
【背景技術】
【０００２】
携帯端末の位置情報に基いた案内を提供するサービスはこれまでにも存在していたが（例えば特許文献１及び特許文献２参照）、サーバからネットワークを経由して各種情報を取得する方式のため、位置の測位が完了してから情報が表示されるまで時間がかかるという問題があった。そのため、提供する情報は音声・文字・小さなサイズの画像を主体としたものに限られ、景観パノラマ画像のように大きなサイズの画像を用いて案内することが難しかった。
【０００３】
また、所定の空間に仮想オブジェクトを配置し、被験者の位置に応じて３次元ＣＧを
生成して表示することにより、仮想空間上のウォークスルーを実現する方法が知られている（例えば特許文献３参照。）。
【特許文献１】特開平８−２４２４８０号公報（図１）
【特許文献２】特開２００２−２４４５８号公報（図１）
【特許文献３】特開２００５−１４９４０９号公報（図１）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献３に記載の発明では、端末の姿勢に追従させて視点を変更した３次元ＣＧの画像を生成するのは、高度な処理能力を必要とするため、処理能力が高くない携帯端末では実現が難しかった。
【０００５】
本発明は、上述のような課題に鑑みてなされたものであり、景観画像の表示の処理負荷を低減させた携帯端末を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述の課題を解決するために、本発明に係る表示装置は、少なくとも１枚以上のパノラマ画像を保持するパノラマ画像データベースと、携帯端末の姿勢情報を取得する姿勢情報取得部と、携帯端末の姿勢情報に対応したパノラマ画像の切出し位置を計算する画像切出し位置計算部と、パノラマ画像内の画像切出し位置計算部が計算した切出し位置内の画素のデータを抽出して表示画像を生成する表示画像生成部を備えることを特徴とする。姿勢情報を取得する姿勢情報取得部は、例えば電子コンパス，加速度センサ等を用いることができる。また、パノラマ画像の切り出し位置は、例えば携帯端末が備える表示部が占める視角に相当する矩形領域等とする。
【０００７】
また、各パノラマ画像には各々位置情報が対応付けられており、携帯端末の位置を取得する位置情報取得部と、位置情報取得部が取得した位置から所定の閾値内の位置情報を有するパノラマ画像を選択するパノラマ画像選択部を備え、表示画像生成部が、パノラマ画像選択部が選択したパノラマ画像から表示画像を生成する構成としてもよい。
【発明の効果】
【０００８】
本発明では、携帯端末の姿勢情報を取得する姿勢情報取得部と、画像切出し位置計算部が姿勢情報取得手段が取得した携帯端末の姿勢情報に基づいてパノラマ画像の切出し位置を計算し、表示画像生成部が、パノラマ画像内の画像切出し位置計算部が計算した切出し位置内の画素のデータを抽出して表示画像を生成することにより、透視変換等の処理負荷の高い処理ではなく、パノラマ画像中の画素の選択という負荷の軽い処理で、携帯端末の位置と姿勢に応じた景観画像の表示を行うことができる。
【発明を実施するための最良の形態】
【０００９】
本発明は、例えばＰＤＡ（Personal Digital Assistant），携帯電話端末装置等の携帯端末に適用することができる。
【実施例１】
【００１０】
（全体構成）
図１は、本発明を携帯電話端末装置に適用した一実施形態の構成を概念的に示すブロック図である。この携帯電話端末装置（携帯端末）１０は、例えば、キーパッド等の入力部１１、液晶表示装置等の表示部１２、ＧＰＳ（Global Positioning Satellite）受信機等の位置センサ１３、モーションセンサ等の姿勢センサ１４、Ｊａｖａ（登録商標）等のスクリプト言語で記述されたアプリケーションを実行するアプリケーション実行環境１５、メモリカード等の外部記憶装置１６、アプリケーション実行環境１５上で実行される案内アプリケーション１７等を備えている。
【００１１】
入力部１１は、操作者が種々の操作指令等を入力するために使用される。表示部１２は、アプリケーション実行環境１５による制御の元、種々の画像を表示する。位置センサ１３は、アプリケーション実行環境１５による制御の元、携帯端末が存在している地球上の位置座標を取得する。姿勢センサ１４は、アプリケーション実行環境１５による制御の元、携帯端末の方位角や仰角等を取得する。
【００１２】
アプリケーション実行環境１５は、例えばＪａｖａ（登録商標）ＶＭやＭＩＤＰ２．０、ＭＥＸＡ１．０等から構成されており、位置センサ１３から位置情報を取得するＡＰＩ、姿勢センサ１４から姿勢情報を取得するＡＰＩ、入力部１１からの指示を入力するＡＰＩ、表示部１２に画像を表示するＡＰＩ等を有している。このアプリケーション実行環境１５は、案内アプリケーション１７を実行に応じた種々の処理を行う。外部記憶装置１６は、例えば取り外し可能なメモリカード等から構成されている。この外部記憶装置１６には、少なくとも１つのパノラマ画像６０からなるパノラマ画像データベースが格納されている。各々のパノラマ画像６０には、一意の識別情報（ｉｄ：０，１，…，ｎ）が割り当てられている。
【００１３】
案内アプリケーション１７は、Ｊａｖａ（登録商標）等のスクリプト言語で記述されたプログラム等で構成されている。この案内アプリケーション１７をアプリケーション実行環境１５上で実行することにより、携帯端末１０が案内用の端末として機能する。この案内アプリケーション１７は位置情報取得部５１、パノラマ画像選択部５２、姿勢情報取得部５３、方位角平滑化部５４、仰角平滑化部５５、画像切出し位置計算部５６、表示画像生成部５７等から構成されている。
【００１４】
（案内アプリケーション１７各部機能）
位置情報取得部５１は、アプリケーション実行環境１５を通じて位置センサ１３から位置情報を取得する。具体的には、例えばＭＥＸＡ１．０の場合では、getLatitudeメソッドで緯度を取得し、getLongitudeメソッドで経度を取得する。これによって得られる緯度（GEO_LATITUDE）は、北緯を正の値とし、南緯を負の値とし、Ａ°Ｂ’Ｃ”（Ａ度Ｂ分Ｃ秒）を次式に従って数値に変換した値であり、値の範囲は-32400000〜32400000である。
GEO_LATITUDE ＝ Ａ×360000＋Ｂ×6000＋Ｃ/100×100      …（１）
また、経度（GEO_LONGITUDE）は、東経を正の値とし、西経を負の値とし、Ａ°Ｂ’Ｃ”を次式に従って数値に変換した値であり、値の範囲は-64800000〜64800000である。
GEO_LONGITUDE ＝ Ａ×360000＋Ｂ×6000＋Ｃ/100×100      …（２）
パノラマ画像選択部５２は、このように位置情報取得部５１で得られた位置情報とパノラマ画像データベース内の各々のパノラマ画像６０に付随した位置情報とを比較し、距離が閾値以下のものを選択する。
【００１５】
姿勢情報取得部５３は、アプリケーション実行環境１５を通じて姿勢センサ１４から姿勢情報を取得する。具体的には、例えばＭＥＸＡ１．０の場合では、getPostureInfoLatestメソッドで取得したヨー角を方位角とし、同様に取得したピッチ角を仰角とする。方位角平滑化部５４は、姿勢情報取得部５３で得られた方位角の履歴を蓄積し振動を抑制した方位角を求める。仰角平滑化部５５は、姿勢情報取得部５３で得られた仰角の履歴を蓄積し振動を抑制した方位角を求める。
【００１６】
画像切出し位置計算部５６は、方位角平滑化部５４で得られた方位角と仰角平滑化部５５で得られた仰角から、パノラマ画像６０内において切出す位置座標（携帯端末１０の操作者から見た表示部１２の視角に相当する表示領域）を求める。表示画像生成部５７は画像切出し位置計算部５６から得られた切出し位置とパノラマ画像選択部５２で得られたパノラマ画像６０から、表示部１２に表示すべき画像を切出す（表示領域内の画素を抽出して表示画像を生成する）。
【００１７】
（パノラマ画像６０フォーマット）
図２は、パノラマ画像データベース内の１枚のパノラマ画像６０のデータ構造を示す図である。パノラマ画像６０は経緯度６１と画像データ６２を含んでいる。経緯度６１は、例えばパノラマ画像に対応する景観が表示されるべき実空間上の位置を示す緯度と経度を示す情報から構成される。この緯度と経度を示す情報は、位置センサ１３の測定精度程度の精度（例えば位置センサ１３としてＧＰＳを用いている場合には、数１０ｍ程度の精度に対応する度．分．秒のオーダー）で格納しておく。緯度は、例えば上述の式（１）に従って数値として格納されており、経度のデータは、例えば上述の式（２）に従って数値として格納されている。また、画像データ６２は、実空間上の位置において表示される全方位の景観を示すパノラマ画像のデータであり、例えば圧縮符号化されたＪＰＥＧ等の画素データから構成される。このパノラマ画像６０は、例えば写真、イラスト、ＣＧ等を用いて、仮想物体を含む景観（その位置において現在は存在しない過去・未来・架空の景観）画像として制作されている。
【００１８】
（パノラマ画像６０位置）
図３及び図４は、史跡の案内を行う案内アプリケーション１７の場合に、パノラマ画像データベース中の各々のパノラマ画像６０に対応する実空間上の位置の例を示す図である。図３は、史跡の一部に、住宅地等の立ち入りが制限される地域がある場合の例を示している。このような場合には、史跡の近辺の立ち入り可能な位置で仮想物体位置７１の付近の位置７２に限定してパノラマ画像６０を設定する（その位置のパノラマ画像６０を準備しておく）ことで、操作者が立ち入り制限領域に入ることなく案内を行うことが可能となる。また、図４は、例えば奈良平城京等のように、史跡の地域全体が立ち入り可能な位置となっている場合の例を示している。このような場合には、仮想物体位置７１の周辺の実空間上の格子状の位置にパノラマ画像６０を設定することにより、操作者は仮想物体を含む史跡をさまざまな位置からの画像として眺めることができる。
【００１９】
図５は、上述の図３中に示す実空間上に仮想的に配置された仮想物体７５の位置及び形状を示す概念図である。仮想物体７５は、上述の図３中の仮想物体位置７１に、例えば現在は存在しないが、過去に存在した建物の３次元モデルとして設定されている。図６は、このようなこのような仮想物体７５を含む景観画像として構成されたパノラマ画像６０の画像データ６２の一例を示している。この例では、図５中のＡ点の画像（ｉｄ＝５）を示している。この画像データ６２は、パノラマ画像位置７２上の人間の視点程度の高さの点を視点として、全方位（周囲３６０°、上下各６０°の範囲）の景観画像を、メルカトル図法の地図のように平面に展開した画像である。この図６中の画像データ６２の左端が北、中央が南、右端は左端と接続しているため北を表わす。また、上端は仰角６０°、中央は水平、下端は仰角−６０°を表わす。後述のように、矩形状の領域を切出して表示画像とする場合には、仰角の絶対値が大きい領域では実際の景色との変形の差異が大きいため、上下を部分的に切落とした画像としている。この画像データ６２では、横幅は３６０°分、縦幅は１２０°分に相当し、縦横の解像度は同じであるため、横幅と縦幅の比率は３：１となる。具体的には、横方向の画素数は、例えば１４３４画素であり、縦方向の画素数は、例えば４７８画素である。
【００２０】
（動作）
上述のように構成された携帯端末１０では、案内アプリケーション１７を起動すると、案内アプリケーション１７の位置情報取得部５１は、例えば所定の時間間隔毎に、アプリケーション実行環境１５を介して位置センサ１３から携帯端末１０の位置（経緯度）を取得する。パノラマ画像選択部５２は、位置情報取得部５１から位置情報を取得すると、図７に示すフローチャートの実行を開始する。パノラマ画像選択部５２は、まず、Ｓ１１において変数ｉｎｄｅｘを０に初期化する。Ｓ１２において変数ｉｎｄｅｘとパノラマ画像データベース内のパノラマ画像６０の総数（ｎ＋１）とを比較し、変数ｉｎｄｅｘがｎ＋１以上であれば、全てのパノラマ画像６０について検索したが現在位置から所定の閾値以内の位置に対応するパノラマ画像６０が見つからなかったということなので、Ｓ１３において、表示画像生成部５７に現在地に該当するパノラマ画像が見つからなかった旨のメッセージを表示させて処理を終了する。
【００２１】
一方、Ｓ１２において、変数ｉｎｄｅｘがパノラマ画像６０の総数ｎ＋１より小さければＳ１４に進み、パノラマ画像選択部５２は、ｉｎｄｅｘ番目のパノラマ画像６０の経緯度データ６１を取得し、ｓｃｅｎｅに代入する。続くＳ１５では、パノラマ画像選択部５２は、ｓｃｅｎｅの経緯度と現在の位置（経緯度）との距離を計算し、ｄｉｓｔａｎｃｅに代入する。Ｓ１６において、ｄｉｓｔａｎｃｅと閾値とを比較し、ｄｉｓｔａｎｃｅが閾値より大きければＳ１８に進み、ｉｎｄｅｘに１を加算して、Ｓ１２に戻る。ここで、閾値は、例えば位置センサ１３の測定精度程度の値として予め設定しておく。例えば位置センサ１３としてＧＰＳを用いる場合には、測定精度が数１０ｍ程度であるので、これに相当する経緯度の値とする。
【００２２】
一方、Ｓ１６において、ｄｉｓｔａｎｃｅが閾値以下であればＳ１７に進み、パノラマ画像が発見された旨のメッセージを表示し、ｓｃｅｎｅの画像を携帯端末１０の主メモリに読み込み、選択処理を終了する。外部記憶装置１６は、フラッシュメモリ等のアクセスの遅いメモリで構成されている場合が多いため、携帯端末１０の主メモリに読み込んだ方がアクセスが早いためである。
【００２３】
ここで、例えば図８に示すように、携帯端末１０の操作者が、ｔ０点からｔ１点，ｔ２点を経由してｔ３点に移動する場合の動作について説明する。ｔ０点では現在の位置から閾値内のデータはないため、表示画像生成部５７はその旨表示させる（図７中のＳ１３）が、ｔ１点に移動すると現在の位置から閾値内にＡ点のパノラマ画像６０（ｉｄ＝５）が存在するので、パノラマ画像選択部５２は、当該パノラマ画像６０を選択する（Ｓ１７）。この後、ｔ２点に移動すると、現在の位置から閾値内のデータはないため、表示画像生成部５７はその旨表示させる（Ｓ１３）が、ｔ３点に移動すると現在の位置から閾値内にＢ点のパノラマ画像６０（ｉｄ＝６）が存在するので、パノラマ画像選択部５２は、当該パノラマ画像６０を選択する（Ｓ１７）。
【００２４】
（仰角，方位角のノイズ低減）
上述のように、現在の位置に対応するパノラマ画像６０が選択されると、画像切出し位置計算部５６は、選択されて主メモリに読み出されたパノラマ画像６０（画像データ６２）と携帯端末１０の姿勢に応じた表示画像を生成するが、姿勢情報取得部５３の出力にはノイズによる振動が含まれるため、この携帯端末１０では、例えば図９及び図１０に示す処理により、これらを低減させる処理を行う。
【００２５】
図９は、仰角平滑化部５５における処理を示すフローチャートである。仰角の測定値にはノイズによる振動が含まれるため、所定の時間間隔毎に取得する仰角の値を一定数（ｍ個）保持しておき、仰角の値の履歴から平均値を求めることにより、振動を抑制した値を求める。仰角情報平滑化部５５は、まず、Ｓ２１において変数ｉｎｄｅｘＡとｓｕｍＡｎｇｌｅＡを０に初期化する。続くＳ２２において、仰角情報平滑化部５５は、変数ｉｎｄｅｘＡと履歴の数ｍを比較し、変数ｉｎｄｅｘＡが履歴の数ｍより小さければＳ２３に進む。仰角情報平滑化部５５は、このＳ２３において、ｓｕｍＡｎｇｌｅＡにｉｎｄｅｘＡ番目の仰角を加算した後、Ｓ２４においてｉｎｄｅｘＡに１を加算して、Ｓ２２に戻る。このＳ２２からＳ２４の処理を繰り返すことにより、ｍ個分の仰角の履歴がＳｕｍＡｎｇｌｅＡに加算される。
【００２６】
一方、Ｓ２２おいて、変数ｉｎｄｅｘＡが履歴の数ｍ以上であれば、仰角情報平滑化部５５はＳ２５に進み、ｓｕｍＡｎｇｌｅＡを履歴の数ｍで除してｍ個分の過去の仰角の平均値を求め、仰角θｐｉｔｃｈ［°］として画像切出し位置計算部５６に供給する。
【００２７】
また、図１０は、方位角平滑化部５４における処理を示すフローチャートである。方位角の測定値にもノイズによる振動が含まれるため、所定の時間間隔毎に取得する方位角の値を一定数（ｍ個）保持しておき、方位角の値の履歴から平均値を求めることにより、振動を抑制した値を求める。なお、仰角平滑化部５５で扱う仰角とは異なり、方位角は３６０°において０°と接続しているため、方位角情報平滑化部５４では、履歴内の方位角が３６０°を跨ぐ場合の考慮が必要となる。
【００２８】
方位角情報平滑化部５４は、まず、Ｓ３１において変数ｉｎｄｅｘＢとｓｕｍＡｎｇｌｅＢ、ａｎｇｌｅＰｒｅｖを０に初期化する。続くＳ３２において、方位角情報平滑化部５４は、変数ｉｎｄｅｘＢと履歴の数ｍを比較し、変数ｉｎｄｅｘＢが履歴の数ｍより小さければＳ３３に進む。方位角情報平滑化部５４は、このＳ３３において、ｉｎｄｅｘＢ番目の方位角をａｎｇｌｅＢに代入する。Ｓ３４において、ａｎｇｌｅＢ、ａｎｇｌｅＢ＋３６０、ａｎｇｌｅＢ−３６０のうちａｎｇｌｅＰｒｅｖとの差の絶対値が最小のものをａｎｇｌｅＮｅａｒｅｓｔに代入する。Ｓ３５において、ｓｕｍＡｎｇｌｅＢにａｎｇｌｅＮｅａｒｅｓｔを加算する。Ｓ３６において、ｉｎｄｅｘＢに１を加算し、ａｎｇｌｅＰｒｅｖにａｎｇｌｅＮｅａｒｅｓｔを代入してＳ３２に戻る。このＳ３２からＳ３６の処理を繰り返すことにより、ｍ個分の方位角の過去の履歴がＳｕｍＡｎｇｌｅＢに加算される。
【００２９】
一方、Ｓ３２において、変数ｉｎｄｅｘＢが履歴の数ｍ以上であれば、方位角情報平滑化部５４はＳ３７に進み、ｓｕｍＡｎｇｌｅＢを履歴の数ｍで除してａｖｅｒａｇｅに代入する。続くＳ３８において、方位角情報平滑化部５４は、ａｖｅｒａｇｅが０°以上３６０°未満の範囲を超えていたら、３６０の加算または減算により前記範囲に収め、方位角θｙａｗ［°］として画像切出し位置計算部５６に供給する。
【００３０】
（表示画像生成）
上述の図６に示すようなパノラマ画像（画像データ６２）は、厳密には図１１に示すように、いわゆる環境球と呼ばれる球面上にマッピング（球面マッピング）し、上述の仰角，方位角に応じて携帯端末１０の操作者から見た表示部１２の視角に相当する領域を透視変換して表示画像を生成すべきだが、このような処理は演算負荷が高いため、携帯電話端末等の演算能力が低い機器には向いていない。このため、この携帯端末では、操作者から見た表示部１２の視角に相当する矩形の領域を表示領域とみなし、パノラマ画像６０（画像データ６２）から上述の仰角，方位角に応じて決定した位置の表示領域相当の画素を抽出して表示画像を生成するようにしている。なお、図１１中の背景球は半分のみを図示しており、破線で示した部分は、画像データ６２の範囲外の領域（画像データ６２が作成されていない部分）を示している。
【００３１】
図１２は、画像切出し位置計算部５６における切出し位置の計算方法を概念的に示す図である。ここで、Ｗｐａｎｏｒａｍａはパノラマ画像６０（画像データ６２）の横幅、Ｈｐａｎｏｒａｍａは画像データ６２の縦幅、Ｗｓｃｒｅｅｎは表示部１２の横幅、Ｈｓｃｒｅｅｎ表示部１２の縦幅、ｒｚｏｏｍは拡大率、θｐｉｔｃｈは上述のように仰角平滑化部５５で求められた平滑化された携帯端末１０の仰角、θｙａｗは上述のように方位角平滑化部５４で求められた平滑化された携帯端末１０の方位角を示している。また、Ｘｏｒｉｇｉｎは切出し位置のＸ座標、Ｙｏｒｉｇｉｎは切出し位置のＹ座標、ＨＶｉｅｗは切出す画像の横幅、ＶＶｉｅｗは切出す画像の縦幅を示している。
【００３２】
画像切出し位置計算部５６は、まず、以下の式により、切出し画像の横幅ＷＶｉｅｗ、縦幅ＨＶｉｅｗを求める。
ＷＶｉｅｗ＝Ｗｓｃｒｅｅｎ／ｒｚｏｏｍ
ＨＶｉｅｗ＝Ｈｓｃｒｅｅｎ／ｒｚｏｏｍ
【００３３】
ここで、拡大率ｒｚｏｏｍは、切出す画像を表示部１２の画素数に対応させて拡大表示する際の拡大率である。表示部１２の視角と画素数に厳格に対応した画素程度でパノラマ画像６０の画像データ６２を作成しておけば、画像データ６２から切出した画像をそのまま表示部１２に表示すればよい。しかしながら、容量の制約等から、画像データ６２は、上述のように、表示部１２の視角と画素数に厳格に対応した画素数に対してかなり少ない画素数で作成されている。このため、この携帯端末１０では、表示部１２の視角に対応する切出し画像を、拡大して表示部１２に表示するようにしている。
【００３４】
（拡大率ｒｚｏｏｍと操作者から見た表示部１２の視角に対する拡大率との関係）
例えば表示部１２の表示領域が縦５２０画素，横４８０画素であり、表示領域の縦方向の長さが０．０４ｍであり、操作者の目から表示部１２までの距離が０．２ｍであるとすると、表示部１２の縦方向の視角は
０．０４／（２π×０．２）×３６０°＝１１．５°  となる。
また、画像データ６２の横方向の画素数が例えば１４３４画素（３６０°分）であるとすると、１１．５°分の画素数は１１．５／３６０×１４３４＝約４５．８画素分となる。この画素分を表示部１２の表示領域の縦５２０画素分に拡大するため、拡大率ｒｚｏｏｍは、
５２０／約４５．８＝約１１．３５  となる。
【００３５】
なお、拡大率ｒｚｏｏｍを１１．３５程度にするのが正確ではあるが、表示部１２の表示領域に表示される画像の範囲が狭いため、操作者が仮想物体７５全体のイメージを認識し難い場合もある。このため、例えばユーザからの入力に応じて１〜１０程度の間で拡大率ｒｚｏｏｍを変更するようにしてもよい。この場合も、上述のように拡大率ｒｚｏｏｍに応じてＷＶｉｅｗ及びＨＶｉｅｗを求めるようにしておけば、支障なく画像の切出しを行うことができる。なお、操作者の感覚的には、画像データの拡大率が１０の場合を標準（表示部１２の視角に相当する範囲の画像が表示された状態）とすれば、画像データの拡大率が１倍のときは、標準状態から約１１分の１にズームアウトした状態になる。
【００３６】
また、パノラマ画像６０（画像データ６２）の幅Ｗｐａｎｏｒａｍａは全方位３６０°に該当するので、上下角１８０°に該当する高さをＨｐａｎｏｒａｍａ１８０とすると、Ｈｐａｎｏｒａｍａ１８０＝Ｗｐａｎｏｒａｍａ／２となる。このため、画像切出し位置計算部５６は、次に、この値を用いて、以下の式から、切出し画像の中心点のＸ座標Ｘｃｅｎｔｅｒ、切出し画像の中心点のＹ座標Ｙｃｅｎｔｅｒを求める。
Ｘｃｅｎｔｅｒ＝（Ｗｐａｎｏｒａｍａ・θｙａｗ）／３６０
Ｙｃｅｎｔｅｒ＝（Ｈｐａｎｏｒａｍａ１８０・θｐｉｔｃｈ）／１８０＋Ｈｐａｎｏｒａｍａ１８０／２＋（Ｈｐａｎｏｒａｍａ１８０−Ｈｐａｎｏｒａｍａ）／２
さらに、画像切出し位置計算部５６は、この値を用いて、以下の式から切出し位置Ｘｏｒｉｇｉｎ、Ｙｏｒｉｇｉｎを求める。
Ｘｏｒｉｇｉｎ＝Ｘｃｅｎｔｅｒ−ＷＶｉｅｗ／２
Ｙｏｒｉｇｉｎ＝Ｙｃｅｎｔｅｒ−ＨＶｉｅｗ／２
このように、切出し位置Ｘｏｒｉｇｉｎ、Ｙｏｒｉｇｉｎと切出す画像サイズＨＶｉｅｗ、ＶＶｉｅｗを求めると、画像切出し位置計算部５６は、これらを表示画像生成部５７に供給する。
【００３７】
表示画像生成部５７は、画像切出し位置計算部５６から供給される切出し位置Ｘｏｒｉｇｉｎ、Ｙｏｒｉｇｉｎと切出す画像サイズＨＶｉｅｗ、ＶＶｉｅｗを用いて、パノラマ画像選択部５２が選択したパノラマ画像６０の画像データ６２から、部分画像を切出し、表示画像を生成する。この切出し処理は部分画像のコピーで済むため、携帯端末のように処理能力に制限のあるものでも高速に行うことができる。
【００３８】
このように、表示画像を生成すると、表示画像生成部５７は、上述の表示部１２上の表示領域（縦５２０画素×横４８０画素）に表示するように、アプリケーション実行環境１５の画像を表示するＡＰＩに指示する。当該ＡＰＩは、表示画像生成部５７からの指示に応じて、表示画像を表示部１２に表示させる。この際、当該ＡＰＩは、表示画像が当該表示領域と同じサイズになるように、拡大あるいは縮小して表示させる。これにより、携帯端末１０の姿勢に応じて、携帯端末１０の視角に相当する表示画像が生成され、表示部１２に表示される。
【００３９】
操作者が携帯端末１０の向きを変えると、これに対応して向きが変わった携帯端末１０の視角に相当する表示画像が生成され、表示部１２に表示される。従って、操作者が携帯端末１０の向きを変えながら、表示部１２に表示される画像を見ることにより、操作者は、自分で携帯端末１０の視角に相当する仮想的な窓を介して仮想物体７５を見ているような感覚を得ることができ、仮想物体７５が実際に存在しているかのように認識することができる。
【００４０】
（効果）
上述のように、この携帯端末１０では、携帯端末１０の位置に応じて現在の位置から所定の閾値内に設定されたパノラマ画像を選択し、携帯端末１０の姿勢に応じて、パノラマ画像６０の画像データ６２からの矩形の切出し位置を変更して表示画像を生成しているため、携帯端末１０側の処理負荷の増加を抑えつつ、仮想物体７５を含む景観画像を表示させることができる。また、この携帯端末１０では、予め生成して外部記憶装置１６に格納しておいたパノラマ画像６０を用いて表示画像を生成するため、精細な仮想物体７５を設定した場合でも、携帯端末１０側の処理負荷の増加を抑制することができる。また、ネットワーク経由で画像等のデータを取得する場合には通信回線の速度等に応じてデータサイズが制約されるが、予め外部記憶装置１６に格納しておくのであれば、大きなサイズの画像を用いることができる。また、表示画像の生成は、画像の切出しのみで処理負荷が軽いので、携帯端末１０の姿勢変化に対する応答性を向上させることができる。
【００４１】
また、この携帯端末１０では、上述の図７に示すように、現在の携帯端末１０の位置と各々のパノラマ画像６０の経緯度データ６１を比較して現在位置との距離が閾値以下であるものを選択している。上述の図４に示すように、パノラマ画像６０を準備する地点が均一である場合には、予めパノラマ画像６０のインデックスを経緯度毎に作成しておく等、他の選択方法でも効率的にパノラマ画像６０の選択を行うことができる可能性があるが、上述の図３に示すように、パノラマ画像６０を準備する地点が不均一となる場合では、このようなインデックスを作成しておき、効率的な選択を行うことは困難である。このため、図７に示すような選択方法を行うことにより、パノラマ画像６０を準備する地点が不均一となる場合においても、現在位置に近い経緯度データ６１のパノラマ画像６０を効率的に選択することができる。
【００４２】
（誤差を目立たせない処理）
ところで、この携帯端末１０では、上述のように、処理負荷の低減のために、単純に図６のパノラマ画像から携帯端末の向きに応じた位置の画素を切出して表示しているため、仰角の絶対値が大きくなると誤差が大きくなる。このため、この携帯端末１０では、仰角の絶対値が６０°を超える部分については表示しないものとして、絶対値が６０°以内の部分のみについて画像データ６２を準備している。このため、この携帯端末１０では、画像データ６２の範囲外については、マスク処理を行うようにしている。
【００４３】
図１３は、このような処理を行う表示画像生成部５７の動作を示すフローチャートである。上述のように、画像切出し位置計算部５６から切出し位置Ｘｏｒｉｇｉｎ、Ｙｏｒｉｇｉｎと切出す画像サイズＨＶｉｅｗ、ＶＶｉｅｗが供給されると、表示画像生成部５７は、まず、Ｓ４１において、ＸｏｒｉｇｉｎＳｒｃをＸｏｒｉｇｉｎの値で、ＹｏｒｉｇｉｎＳｒｃをＹｏｒｉｇｉｎの値で、ＷＶｉｅｗＳｒｃをＷＶｉｅｗの値で、ＨＶｉｅｗＳｒｃをＨＶｉｅｗの値で、ＸｏｒｉｇｉｎＤｓｔを０でＹｏｒｉｇｉｎＤｓｔを０で初期化する。
【００４４】
次に、表示画像生成部５７は、Ｓ４２において、Ｙｏｒｉｇｉｎと０を比較し、Ｙｏｒｉｇｉｎが０以上であればＳ４５に進む。Ｙｏｒｉｇｉｎが０より小さい場合には、表示画像生成部５７は、Ｓ４３において、表示画面の座標（０，０）から横幅：Ｗｓｃｒｅｅｎ、縦幅：−Ｙｏｒｉｇｉｎの領域を黒で塗り潰す。この後、表示画像生成部５７は、Ｓ４４において、ＹｏｒｉｇｉｎＳｒｃに０を、ＨＶｉｅｗＳｒｃにＨＶｉｅｗ＋Ｙｏｒｉｇｉｎを、ＹｏｒｉｇｉｎＤｓｔに−Ｙｏｒｉｇｉｎ・ｒｚｏｏｍを各々代入してＳ４５に進む。
【００４５】
Ｓ４５において、表示画像生成部５７は、Ｙｏｒｉｇｉｎ＋ＨＶｉｅｗとＨｐａｎｏｒａｍａを比較し、Ｙｏｒｉｇｉｎ＋ＨＶｉｅｗがＨｐａｎｏｒａｍａより小さければＳ４８に進む。Ｙｏｒｉｇｉｎ＋ＨＶｉｅｗがＨｐａｎｏｒａｍａ以上であれば、表示画像生成部５７は、Ｓ４６において、表示画面の座標（０，（Ｈｐａｎｏｒａｍａ−Ｙｏｒｉｇｉｎ）・ｒｚｏｏｍ）から横幅：Ｗｓｃｒｅｅｎ、縦幅：（Ｙｏｒｉｇｉｎ＋ＨＶｉｅｗ−Ｈｐａｎｏｒａｍａ）・ｒｚｏｏｍの領域を黒で塗り潰す。この後、表示画像生成部５７は、Ｓ４７において、ＨＶｉｅｗＳｒｃにＨＶｉｅｗＳｒｃ−（Ｙｏｒｉｇｉｎ＋ＨＶｉｅｗ−Ｈｐａｎｏｒａｍａ）を代入してＳ４８に進む。
【００４６】
Ｓ４８において、表示画像生成部５７は、Ｘｏｒｉｇｉｎと０を比較し、Ｘｏｒｉｇｉｎが０以上であればＳ５１に進む。Ｘｏｒｉｇｉｎが０より小さい場合は、表示画像生成部５７は、Ｓ４９において、画像データ６２の座標（Ｘｏｒｉｇｉｎ＋Ｗｐａｎｏｒａｍａ，ＹｏｒｉｇｉｎＳｒｃ）から横幅：−Ｘｏｒｉｇｉｎ、縦幅：ＨＶｉｅｗＳｒｃの領域を表示画面の座標（０，ＹｏｒｉｇｉｎＤｓｔ）から横幅：−Ｘｏｒｉｇｉｎ・ｒｚｏｏｍ縦幅：ＨＶｉｅｗＳｒｃ・ｒｚｏｏｍにコピーする。この後、表示画像生成部５７は、Ｓ５０において、ＸｏｒｉｇｉｎＳｒｃに０を、ＷＶｉｅｗＳｒｃにＷＶｉｅｗ＋Ｘｏｒｉｇｉｎを、ＸｏｒｉｇｉｎＤｓｔに−Ｘｏｒｉｇｉｎ・ｒｚｏｏｍを代入してＳ５１に進む。
【００４７】
最後に、表示画像生成部５７は、Ｓ５１において、画像データ６２の座標（ＸｏｒｉｇｉｎＳｒｃ，ＹｏｒｉｇｉｎＳｒｃ）から横幅：ＨＶｉｅｗＳｒｃ、縦幅：ＨＶｉｅｗＳｒｃの領域を表示画面の座標（ＸｏｒｉｇｉｎＤｓｔ，ＹｏｒｉｇｉｎＤｓｔ）から横幅：ＷＶｉｅｗＳｒｃ・ｒｚｏｏｍ縦幅：ＨＶｉｅｗＳｒｃ・ｒｚｏｏｍにコピーして表示画像の生成を終了する。このように、切出し領域の縦軸が０〜Ｈｏｒｉｇｉｎをはみ出た領域について黒でマスクすることにより、画像データ６２が折り返されて表示画像が破綻することを防止することができる。なお、マスクの色は、白等の他の色でもいい。また、画像データ６２は、上述のように、予め仰角の絶対値が６０°以内の部分について作成されているため、画像データ６２の範囲外の領域をマスクすることにより、誤差の大きい仰角の大きい部分を表示させないことができる。なお、上述の図１３に示す処理では、画像データ６２の範囲外の領域をマスクする処理となっているため、画像データ６２の作成範囲を、例えば仰角が＋７５°〜−７５°の範囲としておけば、仰角の絶対値が７５°以上の部分をマスクする動作となる。従って、マスクする仰角の範囲は、画像データ６２の作成範囲を適宜調整することによって調整することができる。
【００４８】
図１４は、携帯端末１０の向き（仰角及び方位角）を変化させた際に、上述のような処理により、表示部１２に表示される表示画像の変化を示す図である。同図（Ａ）から同図（Ｂ）のように、携帯端末１０を上に向けて仰角を増加した場合には、切出し画像の範囲がパノラマ画像の上下の範囲外にかかった場合に黒画像を表示する様子を表す。中央の画面（Ａ）は携帯端末が水平面を向いた場合を表し、切出し位置がパノラマ画像の範囲内に収まっているためパノラマ画像内の部分画像が切出されて表示されている。
【００４９】
また、同図（Ｃ）及び（Ｄ）に示すように、携帯端末１０の向きを、左・右に振った場合も同様にパノラマ画像内の部分画像が切出されて表示されている。上側の画面（Ｂ）は携帯端末の向きを上に振った場合を表しており、この場合には、切出し位置がパノラマ画像の上端を越えているが、越えた範囲には黒画像を表示することで、画像の破綻なく表示することが可能となる。
【００５０】
（変形例）
上述の実施例では、上述の図６に示すように、画像データ６２を、仰角の絶対値が６０°以下の範囲（仰角範囲が＋６０°〜−６０°）のみとした場合について説明したが、例えば日の出，日の入りの位置を表示する場合等のように地平線あるいは水平線の付近の仰角が小さい範囲が重要な場合には、仰角の絶対値が４５°（あるいはさらに小さな角度）以下の範囲としてもよい。逆に、高層ビルの谷間等の仰角が大きい部分を眺める場合等では、仰角の絶対値を７５°（あるいはさらに大きな角度）以下の範囲とする等、用途に応じた変更を加えてもよい。
【００５１】
また、例えば図１５に示すように、画像データ６２の仰角範囲を＋７５°〜−７５°（あるいは＋９０°〜−９０°等）としておき、後述のような切出し画像の横方向の補正を行わない場合あるいは携帯端末１０の姿勢に対する追従性が要求される場合等には、例えば６０°を超える部分についてはマスク表示するようにしてもよい。
【００５２】
また、より正確な表示画像を生成したい場合には、例えば図１６に示すように、仰角に応じて、切出し画像の横幅を変更して表示画像を生成するようにしてもよい。画像データ６２は、本来は背景球にマッピングすべきであるので、やや正確な表示画像を生成しようとすれば、仰角に応じて横幅を詰めて表示することが望ましい。この縮小率は、
ｃｏｓ（θｐｉｔｃｈ）であるため、例えば図１７に示すような割合（縮小率の逆数）で仰角に応じて切出し領域の幅を広くし、表示画像の横方向の画素が一定になるように、切出し画像の画素の値から求めた値を表示画像の画素の値とする。このようにして表示画像を求めることにより、背景球に画像データ６２をマッピングして射影変換を行って表示画像を求める場合に比較して軽い演算負荷で、かつ、単に矩形状の領域の画素を切出して表示画像を生成する場合より正確な表示画像を生成することができる。
【００５３】
また、上述の説明では、図２に示すようにパノラマ画像６０内の経緯度データ６１に緯度，経度情報を格納しておいたが、パノラマ画像にはｉｄのみ割り当てておき、例えば図１８に示すように、各ｉｄと、これに対応するパノラマ画像６０の緯度，経度を保持するテーブルを設けておいてもよい。この場合、上述の図７中の距離算出処理（Ｓ１５）は、このテーブルのデータ（緯度、経度）を用いて行う。
【００５４】
また、上述の説明では、パノラマ画像６０を、仮想物体７５を含む景観画像とした場合の例について説明したが、過去の実写の景観画像としたり、実写の背景画像中に仮想物体を合成した景観画像としたり、適宜変更することができる。
【００５５】
また、パノラマ画像６０に付加情報として案内文や人物の画像等のデータを対応させて作成しておき、操作者の選択等に応じて景観画像と共に表示させるようにしてもよい。
【００５６】
また、例えば地面等の下方向の画像が重要な場合には、例えば図１９に示すように、所定の方向（例えば方位角１８０°［南］）にパノラマ画像６０を所定角度（この図１９の場合では、下に４５°）オフセットさせて作成しておき、図２０に示すように、姿勢センサ１４が取得した仰角を逆にオフセットさせて、表示画像を生成するようにしてもよい。これにより、例えば地面の画像の正確性が必要な場合にも、軽い処理で、応答性のよい表示を行うことができる。このような表示を行うことにより、例えば太陽や月の軌道の、地面に隠れて見えない部分の表示にも用いることができる。
【００５７】
また、例えば図２１に示すように、上述の図６の仰角と方位角の範囲を逆にした画像をパノラマ画像６０の画像データ６２とし、例えば図２２に示すように、姿勢センサ１４が取得した仰角及び方位角に応じて切出し中心位置（θ，φ）を求めて表示画像を生成するようにしてもよい。具体的には、例えば方位角が０°〜９０°，２７０°〜３６０°の範囲については、仰角を９０°オフセットさせて、仰角が−９０°〜−１８０°あるいは９０°〜１８０°の領域の画像データ６２を用いて表示画像を生成する。また、例えば北方向の画像が必要ない場合等には、パノラマ画像６０の画像データ６２の作成範囲を上下角１８０°分（９０°〜−９０°）等としてもよい。これにより、パノラマ画像６０のデータ容量の低減に寄与することができる。
【図面の簡単な説明】
【００５８】
【図１】本発明の一実施例に係る携帯端末の要部の構成を示すブロック図である。
【図２】パノラマ画像のデータ構造の例を示す図である。
【図３】パノラマ画像を準備した位置の例を示す図である。
【図４】パノラマ画像を準備した位置の他の例を示す図である。
【図５】仮想物体の配置の例を示す図である。
【図６】パノラマ画像の例を示す図である。
【図７】パノラマ画像選択部による選択処理の例を示すフローチャートである。
【図８】案内アプリケーション実行時のイメージを示す概念図である。
【図９】仰角の平滑化処理の例を示すフローチャートである。
【図１０】方位角の平滑化処理の例を示すフローチャートである。
【図１１】パノラマ画像のイメージ
【図１２】パノラマ画像の切出し処理の例を示す図である。
【図１３】パノラマ画像の切出し処理の他の例を示す図である。
【図１４】動作時の表示画像の例を示す図である。
【図１５】変形例におけるパラノラマ画像の例を示す図である。
【図１６】変形例における切出し画像の例を示す図である。
【図１７】変形例における仰角に応じた切出し画像の横幅の例を示す図である。
【図１８】位置情報の他の構成例を示す図である。
【図１９】変形例におけるパノラマ画像の例を示す図である。
【図２０】変形例におけるパノラマ画像のイメージを示す図である。
【図２１】変形例におけるパノラマ画像の例を示す図である。
【図２２】変形例におけるパノラマ画像のイメージを示す図である。
【符号の説明】
【００５９】
１０…携帯端末、１１…入力部、１２…表示部、１３…位置センサ、１４…姿勢センサ、１５…アプリケーション実行環境、１６…外部記憶装置、１７…案内アプリケーション、５１…位置情報取得部、５２…パノラマ画像選択部、５３…姿勢情報取得部、５４…方位角情報平滑化部、５５…仰角情報平滑化部、５６…画像切出し位置計算部、５７…表示画像生成部、６０…パノラマ画像
【図１】
2008243027.tif 000003
【図２】
2008243027.tif 000004
【図３】
2008243027.tif 000005
【図４】
2008243027.tif 000006
【図５】
2008243027.tif 000007
【図７】
2008243027.tif 000008
【図８】
2008243027.tif 000009
【図９】
2008243027.tif 000010
【図１０】
2008243027.tif 000011
【図１３】
2008243027.tif 000012
【図１７】
2008243027.tif 000013
【図１８】
2008243027.tif 000014
【図６】
2008243027.tif 000015
【図１１】
2008243027.tif 000016
【図１２】
2008243027.tif 000017
【図１４】
2008243027.tif 000018
【図１５】
2008243027.tif 000019
【図１６】
2008243027.tif 000020
【図１９】
2008243027.tif 000021
【図２０】
2008243027.tif 000022
【図２１】
2008243027.tif 000023
【図２２】
2008243027.tif 000024