説明

画像再生装置および画像再生方法およびプログラム

【課題】複数枚の画像を順番に再生する際に、再生されて画像と次に再生される画像の撮影位置を表示可能な地図を決定して撮影位置関係を明瞭に表示する。
【解決手段】再生された画像とその撮影位置を地図上に表示し、次の画像を再生して表示する際はこの画像と先の画像の撮影位置を表示領域に表示可能な地図の縮尺を決定して次の撮影位置まで地図をスクロールし、この処理を画像再生ごとに繰り返す。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は撮影画像を再生して地図上の撮影位置に表示するための画像再生装置および画像再生方法およびプログラムに関する。
【背景技術】
【0002】
従来、撮影画像を再生して地図上の撮影位置に表示することが行われている。例えば、特許文献1では、全ての撮影画像の撮影位置を含む範囲の地図に、再生順序の流れを示す矢印を合成して撮影画像を表示することが開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2006-148514号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
全ての撮影画像の撮影位置を含む広範囲な地図を表示すると縮尺が小さくなるため撮影位置を詳細に確認できなくなってしまう。また、撮影位置が近い距離にある撮影画像は、地図上のほぼ同じ位置に表示されるので、それらの撮影画像の位置関係を識別しづらくなってしまう。
【課題を解決するための手段】
【0005】
上記従来の問題に鑑み、本件発明の目的は、複数の画像を再生して地図上の撮影位置に表示する場合に、撮影位置が地図上で接近して表示される場合でもそれらの位置関係が明確に把握できるよう表示を制御できる画像再生装置を提供することにある。
【0006】
本件発明の画像再生装置は、選択された複数の画像を順次再生するための再生手段と、少なくとも再生手段で再生された画像と地図を所定の表示領域に表示するための表示手段と、複数の画像のうちの第1の画像と次の再生順番の第2の画像の撮影位置を取得するための取得手段と、取得された第1の画像の撮影位置と第2の画像の撮影位置を所定の表示領域に表示可能な地図の最大の縮尺を決定するための決定手段と、決定された縮尺の地図とともに、第1の画像の撮影位置と第2の画像の撮影位置に従って第1の画像と第2の画像を所定の表示領域に表示する表示制御を行うための表示制御手段とを備える。
【発明の効果】
【0007】
本件発明によれば、複数の撮影画像を順次再生して地図上の撮影位置に表示する際に、再生する順番が前後する撮影画像の撮影位置を適切な縮尺の地図で表示することができる。これにより、再生する順番が連続する撮影画像の位置関係を地図上で明瞭に確認することができ、ユーザーにとって画像の再生および表示の利便性が向上する。
【図面の簡単な説明】
【0008】
【図1】本発明に係わる画像再生装置の構成を示すブロック図。
【図2】本件発明に係わる画像再生処理のフローチャートを示す図。
【図3】本件発明の画像再生処理における1枚目の再生画像に対応する地図の表示処理のフローチャートを示す図。
【図4】本件発明の画像再生処理における2枚目以降の再生画像に対応する地図の決定処理のフローチャートを示す図。
【図5】本件発明の画像再生処における2枚目以降の再生画像に対応する地図の表示処理のフローチャートを示す図。
【図6】本件発明の画像再生処理における地図のスクロール処理のフローチャートを示す図。
【図7】本件発明の画像再生処理において表示される地図の決定処理を説明するための図。
【図8】本件発明に係わる地図の縮尺リストの構成例を示す図。
【図9】本件発明の画像再生処理における再生画像および地図の表示例を示す図。
【図10】本件発明の画像再生処理において、再生画像の表示位置を動的に変更することを説明するための図。
【発明を実施するための形態】
【0009】
以下に、本発明の好ましい実施の形態を、添付の図面に基づいて詳細に説明する。
【0010】
図1は本発明の構成例を表す図である。画像再生装置100は画像を再生するローカルのPCであり、本発明ではこのPCに保存されている画像と画像に付与された位置情報を用いて、所定の順番にしたがって画像を地図上の撮影位置に表示する。101は画像再生装置100の全体を制御するCPUである。103は、ハードディスクなどの二次記憶装置であり、CPUにより実行されるプログラムを格納する。また、再生を行う画像が保存されている。102は、RAMなどの一次記憶装置であり、二次記憶装置から読み込まれたプログラムが格納される。104は、液晶ディスプレーなどの表示部である。105は、キーボードやマウスなどの操作部である。106は、他のコンピューターと通信するためのEthernet(登録商標)端子などの通信装置である。本発明では、通信装置106を使ってサーバー107と通信を行うことで地図データをダウンロードする。ダウンロードした地図データは、二次記憶装置103に保存する。
【0011】
サーバー107は、異なる縮尺ごとの地図データを保存している、画像再生装置100に対する外部装置である。108はサーバー107の全体を制御するCPUである。110は、ハードディスクなどの二次記憶装置であり、CPUが実行するプログラムを格納する。また、二次記憶装置110は地図データを格納する。画像再生装置100への地図データのダウンロードは、二次記憶装置に保存されているプログラムに従って、CPU108が行う。地図をサーバーからダウンロードして表示する理由は、地図のデータ容量は膨大であることが予想され、ローカルのPCである画像再生装置100に地図データを保存するのは現実的ではないためである。
【0012】
図2は、画像再生装置100の動作を表すフローチャートである。図2だけでなく、後述する他の図に示されているフローチャートに従った本件発明の画像再生処理は、CPU101が二次記憶装置103に記憶されている制御プログラムに従って画像再生装置100の各構成部を制御することによって実現される。
【0013】
本件発明の画像再生処理で再生される画像は、ユーザーが選択した画像である。ユーザーが画像を選択する方法としては、二次記憶装置103に保存されている画像を表示部104に表示し、それをユーザーが目視で確認しながら操作部105を使って、再生したい複数の画像を選んでいく方法がある。また、画像の再生を始めるための手段として表示部104に画像の再生を開始するボタンを配置することで、ユーザーが画像の選択を終わった後に操作部105を使って画像の再生を開始することができる。画像を再生する順番は、撮影日時が古いものから順に行っていくものとするが、後述するようにこれに限るものではない。撮影日時が古いものから順に再生するとユーザーが撮影した順番に沿って地図上に撮影位置と画像を表示することになるので、撮影した場所と移動したルートをユーザーが思い出しながら画像を再生することができる。
【0014】
ユーザーが任意の画像を選択して画像の再生を開始すると、ステップS200においてCPU101は表示部104に1枚目に再生する画像に対応する地図の表示を行う。ここで表示する地図は、1枚目と2枚目に表示する画像の撮影位置が含まれる範囲を、最大の縮尺で表示する地図である。地図の表示を行う際は、1枚目の撮影位置が地図の中央にくるように表示する。ステップS200において表示する地図の決定方法と表示方法については後述する。
【0015】
ステップS201へ進み、CPU101は1枚目の画像の表示を行う。ここで、CPU101は地図の中央に撮影位置を示すアイコンを表示する。ステップS200で地図を表示する際は1枚目の撮影位置が地図の中央にくるように表示しているので、地図の中央に撮影位置を示すアイコンを表示する。撮影位置を示すアイコンを地図上に表示することで、ユーザーは画像を撮影した位置を明確に確認することができる。そして、撮影位置の近辺に1枚目の画像を表示する。ここで表示する画像の位置は、撮影位置を示すアイコンと重ならないようにする。表示位置の決定方法については後述する。
【0016】
ここで、表示部104に画像を再生する際の表示例を図9に示す。図9は、図2のフローチャートに沿って画像を表示したときの表示例を示している。図9の(a)は、図2のステップS200とステップS201を行った際の表示例である。図1の表示部104は表示領域900を含み、その領域の中に地図画像901を表示している。903は1枚目の画像の撮影位置を示すアイコンであり地図の中央になる。撮影位置の近辺に、1枚目の画像904を表示する。また、902は前の画像または次の画像の再生に進むためのボタンであり、ユーザーが操作部105を用いてボタン902を押下すると、前の画像または次の画像の再生に進む。
【0017】
図2の説明に戻る。ステップS201で1枚目の画像表示を行うと、CPU101は次の画像の表示を行う指示を受け付けたか否かを判定する(ステップS202)。CPU101は、以降に示す2つ条件のうちどちらかを満たせば、指示を受け付けたと判定する。第一の条件は、次の画像表示へ進むことをユーザーが明示的に選択することである。すなわち、図9(a)のボタン902の押下を検知することで、指示を受け付けたと判定する。第二の条件は、一枚目の画像を表示してから一定時間の経過を検知することで、指示を受け付けたと判定する。ここでいう一定時間とは、所定の時間か、画像の再生を始める前にユーザーが設定した任意の時間を示すものとする。以上の2つの条件のうちどちらかが満された場合、処理はステップS203へ進む。ステップS203からステップS206では、2枚目以降の画像と地図を表示するための処理を繰り返していく。まずステップS203において、CPU101は表示する地図を決定する。ステップS203における地図の決定は、2枚目以降の画像を表示する際に毎回行われるものである。これは、現在表示している画像と次に表示する画像の撮影位置がおさまる最小の範囲の地図を表示するために行っている。ステップS203の詳細については後述する。
【0018】
ステップS204では、ステップS203で決定した地図と画像の表示を行う。ステップS204の詳細については後述するが、次の画像を表示する際は次の撮影位置を含む範囲まで地図をスクロールして、また次の撮影位置へ向けて矢印の線を伸ばしていく。このようにすることで、再生順番が前後する2枚の画像の撮影位置の関係を明瞭に示すことができる。また、再生順番が撮影順番と対応するときは、ユーザーが写真を撮影しながら移動したルートに沿って、地図をスクロールすることができる。
【0019】
図9の(b)と(c)は、ステップS204で地図と画像を表示する際の表示例を示している。図9の(b)は、スクロール中の地図の表示例であり、表示領域905の中で地図画像906をスクロールしている。図9の(b)の場合は、地図が右方向へスクロールしている。また、地図をスクロールする際は前の画像を縮小して表示し、地図のスクロールに合わせて縮小画像909と撮影位置のアイコン907もスクロールする。また、地図のスクロールに合わせて前の撮影位置から次の撮影位置へ向けて矢印の線908を伸ばしていく。矢印の線を伸ばすことで、ユーザーは次の撮影位置がどの方向にあるかを知ることができる。図8の(c)は地図をスクロールした後の表示例である。912は前の画像であり、913は前の画像の撮影位置を示すアイコンである。915は次の画像であり、916は次の画像の撮影位置を示すアイコンである。916の位置はスクロールによって地図の中央になる。914は、前の撮影位置と次の撮影位置を結んだ矢印であり、撮影位置の移動した方向を示すものである。移動した方向を示すことで、ユーザーがどの地点からどの地点へ移動して写真撮影を行ったかを明瞭に確認することができる。
【0020】
図2の説明に戻る。ステップS204で地図と画像の表示を行うと、CPU101は次の画像の表示を行うための指示があったかどうか判定する(ステップS205)。ここでの判定は、ステップS202と同じ処理になる。次の画像の表示を行うための指示があれば(ステップS205でYes)、まだ表示していない画像があるかどうか判定し(ステップS206)、ある場合はステップS203に戻り次の画像に対応する地図の決定を行う。無い場合には(ステップS206でNo)、画像の再生を終了する。
【0021】
図9の(d)は、3枚目の画像を表示する際の表示例を示している。918は、2枚目と3枚目の撮影位置がおさまる範囲の地図である。例えば、1枚目と2枚目の撮影位置は近かったが、2枚目と3枚目の撮影位置が離れていたとすると、2枚目の画像を表示する際は図9の(c)のように縮尺の大きい地図を表示すればよいが、3枚目の画像を表示する際は縮尺の小さい地図が必要となる。そこで、CPU101はステップS203で3枚目の画像を表示するのに適切な地図(縮尺)を決定し、ステップS204で表示領域917に地図画像918を表示する。
【0022】
次に、ステップS200の処理の詳細について説明する。ステップS200は、1枚目の画像に対応する地図の表示を行う処理である。図3のフローチャートはステップS200の詳細な処理について示したものであり、1枚目と2枚目の画像の撮影位置がおさまる範囲であり、なおかつ出来るだけ縮尺の大きな地図を表示することを目的としている。
ステップS300においてCPU101は、1枚目に表示する画像と2枚目に表示する画像の撮影位置の距離(以降、撮影間距離と呼ぶ)を求める。撮影間距離は、各画像に付与された撮影位置の情報(ジオタグ)を取得して、それから算出することができる。例えば、近い位置で撮影した2枚の画像は撮影間距離が短くなり、遠い位置で撮影した2枚の画像は撮影間距離が長くなる。次にステップS301においてCPU101は、表示部104に地図を表示する領域の短辺の長さを算出する。
【0023】
ここでいう短辺の長さについて、図7を用いて説明する。図7は、表示部104に地図を表示する際の表示例を示している。図7の700は表示部104に地図を表示する領域であり、この領域内に地図画像706を表示している。表示領域700の大きさはディスプレーの解像度や画面の拡大または縮小で変動するものであり、この表示領域の大きさと撮影間距離を用いて、表示する地図の縮尺を決定する。例えば、撮影間距離が短い2枚の画像の場合は縮尺の大きい地図を表示し、撮影間距離が長い2枚の画像の場合は縮尺の小さい地図を表示する。表示領域700では、地図を表示する領域の短辺の長さは表示領域700の縦の長さである705になる。表示領域の短辺の長さ705の値bは、例えば400ピクセルや500ピクセルのように、単位をピクセルとする。そうすると、表示されている地図の1ピクセルの大きさは、地図の縮尺に応じて実際の長さに対応する。
【0024】
図3の説明に戻る。ステップS302においてCPU101は、後述する縮尺リスト800を読み出し、地図の縮尺リスト800にある最も大きい縮尺を初期値として設定する。この理由として、ステップS303以降では現在設定している縮尺で表示領域内に2点の撮影位置を表示できるかを判定し、表示できない場合には地図の縮尺を一段階ずつ下げていく。そのために、まずは地図の縮尺を最大にして、1枚目と2枚目の画像の撮影位置が表示領域内におさまるかを判定する。
【0025】
ここで、地図データはサーバー107に保存されており、CPU101は表示に必要な分だけをダウンロードして表示する。サーバー107には異なる縮尺の地図データが保存されており、画像再生装置100はサーバー107に保存されている地図の縮尺リストを持つ。地図の縮尺リストとは、サーバー107にどのような縮尺の地図が保存されているかを示すものである。画像再生装置100が地図の縮尺リストを持つことで、サーバー107にアクセスすることなく、どのような縮尺の地図が存在するのかを知ることできる。これにより、CPU101は表示に最適な地図の縮尺を決定することができる。
【0026】
図8は、地図の縮尺リストの構成例を示すものである。800は地図の縮尺リストの構成例を示しており、サーバーに保存されている地図の縮尺と、それぞれの縮尺における地図画像の1ピクセルあたりの実距離を示している。地図の縮尺リスト800からは、801〜804に示す4つの異なる縮尺の地図がサーバーに保存されていることがわかる。また、それぞれの縮尺の地図画像において、地図画像の1ピクセルを実距離に換算したときの値を符号805〜808で示す。例えば、801にある1万分の1の縮尺の地図画像の場合は、その1ピクセルが1メートルに相当する。また、802にある5万分の1の縮尺の地図画像の場合は、その1ピクセルが5メートルに相当する。地図の縮尺リスト800の場合は、ステップS302においてCPU101は地図の縮尺を1万分の1に設定する。
【0027】
次にステップS303においてCPU101は、ステップS301で求めた長さbを設定された縮尺に基づいて実距離に変換する。実距離への変換には、地図の縮尺リスト800を用いる。例えば、表示領域の短辺の長さbが400ピクセルであり、地図の縮尺が1万分の1に設定されている場合は、実距離Bは400メートルになる。つまり、表示領域700に1万分の1の縮尺の地図画像706を表示した場合は、表示領域700の縦の長さは実距離で400メートルに相当する。この実距離Bを2で割った値(以降、表示限界距離と呼ぶ)を、ステップS300で求めた撮影間距離と比較することで、CPU101は、表示する地図の縮尺を決定する(ステップS304)。例えば、1枚目と2枚目の画像の撮影間距離が100メートルであり、表示限界距離が200メートルの場合は、現在の縮尺(1万分の1)の設定のままで地図の表示領域700に2点の撮影位置をおさめることができる。このように表示限界距離が撮影間距離と同等かそれより大きければ、ステップS306へ進み、CPU101は通信装置106を制御して地図のダウンロードを行う。
【0028】
ステップS306においてCPU101は、表示領域700に表示する地図をサーバーからダウンロードする。ダウンロードする地図は、現在設定されている縮尺の地図データのうち、1枚目の撮影位置を中心として表示領域700の大きさを持つ範囲である。そしてステップS307において、1枚目の撮影位置を中心にして表示領域700に地図の表示を行う。なお、次の撮影位置に地図をスクロールすることを考えて、次の撮影位置へ移動したときに表示される部分の地図データを予めダウンロードしておいてもよい。
【0029】
ステップS304で撮影間距離と表示限界距離を比較した結果、撮影間距離が表示限界距離より大きくなる場合もある。例えば、一度写真を撮影した後に遠くへ移動して、再度写真を撮影した場合である。このような場合は撮影間距離が長くなる。例えば、撮影間距離が500メートルで表示限界距離が200メートルの場合は、現在の縮尺の設定では地図の表示領域内に2点の撮影位置をおさめることができない。そこで撮影間距離が表示限界距離より大きくなる場合はステップS305に進み、CPU101は縮尺リストに従って地図の縮尺を一段階小さい縮尺に設定する。地図の縮尺リスト800の場合は、地図の縮尺を現在の1万分の1から5万分の1に再設定する。そしてステップS303において、設定された縮尺に基づき表示限界距離を再計算する。地図の縮尺リスト800をみると、地図の縮尺が5万分の1の場合は地図画像の1ピクセルあたりの実距離が5メートルになるので、表示領域の短辺の長さが400ピクセルであれば実距離Bは2000メートルになる。そして、ステップS304において表示限界距離と撮影間距離を再度比較する。実距離Bが2000メートルであれば表示限界距離は1000メートルになる。撮影間距離は500メートルであるので、表示限界距離の方が大きくなり再設定した地図の縮尺で表示領域700に2点の撮影位置を表示できることになる。その後は、ステップS306に進み、表示に必要な分の地図データをダウンロードする。つまり、ステップS300からステップS307の一連の流れの中では、表示する地図の縮尺を徐々に小さく設定していき、2点の撮影位置を表示可能な最も大きい縮尺の地図を決定している。なお、ステップS305において既に設定されている縮尺が最も小さい縮尺である場合は、これ以上縮尺の小さい地図がサーバーに存在しないので、現在設定している縮尺が最も小さい地図をダウンロードして表示する。また、ステップS304で撮影間距離と表示限界距離を比較する際は、表示限界距離から一定のマージンを引いてから比較してもよい。すなわち、表示限界距離と撮影間距離が同じ場合は、次の撮影位置が表示領域700の端にぎりぎりに入る位置となり、画面上で位置を認識しづらくなる。そこで一定のマージンを設けることで、次の撮影位置が表示領域700にぎりぎりに入ることを防ぐことができる。
【0030】
次に、ステップS203の詳細な処理について説明する。ステップS203は、2枚目以降の画像に対応する地図を決定する処理である。ステップS203では表示に必要な地図を決定してサーバーからダウンロードするまでの処理を行い、ダウンロードした地図の表示処理はステップS204で行う。
【0031】
図4のフローチャートはステップS203の詳細な処理を示し、現在表示している画像と再生が指示された次の画像との撮影位置がおさまる範囲を出来るだけ縮尺の大きな地図で表示するための処理である。1枚目の画像の再生時に表示される地図(S200)は、まだ再生が指示されてない2枚目の画像の撮影位置をも含むように決定されていた。したがって、2枚目の画像の再生が指示されたときは表示されている地図をそのままスクロールすれば1枚目の画像と2枚目の画像の撮影位置を表示できる。しかし、3枚目の画像の再生が指示されたときは、現在表示されている2枚目の画像の撮影位置と3枚目の画像(次の画像)の撮影位置がそのとき表示されている地図に含まれるかどうかは不明である。そこで、2枚目以降の画像の再生においては、再生が指示されたときに、現在表示されている画像と次の再生が指示された画像との撮影位置に基づいて表示する地図の縮尺を決定して更新する。すなわち、以下に記載する2枚目の画像以降の再生処理の説明での「次の」という表現は、現在表示されている画像の次に再生が指示された画像のことである。なお、2枚目以降の画像を表示する際は毎回ステップS203で地図の決定を行うが、上述のように、2枚目の画像に関してはステップS200での処理がそれに該当し、ステップS203においてもステップS200と同じ地図が決定されることになる。従って、ここでは現在5枚目の画像(第1の画像)を表示しており、次に6枚目の画像(第2の画像)を表示(再生)する場合を例として説明する。なお、ステップS200と同じ処理になる部分は簡潔に説明する。
【0032】
ステップS400においてCPU101は、5枚目に表示する画像と6枚目に表示する画像の撮影間距離を求める。ステップS401においてCPU101は、表示部104に地図を表示する領域の短辺の長さを算出する。ステップS402においてCPU101は、地図の縮尺リストにある最も大きい縮尺を縮尺の初期値として設定する。図8にある地図の縮尺リスト800を例にすると、CPU101は地図の縮尺を1万分の1に設定する。
【0033】
次にステップS403においてCPU101は、ステップS401で求めた表示領域の短辺の長さを実距離に変換する。上述したように、実距離への変換には、地図の縮尺リスト800を用いる。例えば、表示領域の短辺の長さが400ピクセルであり、地図の縮尺が1万分の1に設定されている場合は、実距離Bは400メートルになる。
【0034】
ステップS404において、この実距離Bを2で割った表示限界距離と撮影間距離を比較することで、次に表示する地図の縮尺を決定する。例えば、5枚目と6枚目の画像の撮影間距離が100メートルであり、表示限界距離が200メートルの場合は、現在の縮尺(1万分の1)の設定のままで地図の表示領域に2点の撮影位置が含まれる。このように表示限界距離が撮影間距離と同等かそれより大きければ、ステップS406へ進み地図のダウンロードを行う。
【0035】
ステップS406においてCPU101は、通信装置106を制御して表示領域に表示する地図をサーバーからダウンロードする。
【0036】
ステップS404では、撮影間距離が表示限界距離より大きくなる場合もある。例えば、撮影間距離が800メートルで表示限界距離が200メートルの場合は、現在設定されている縮尺の地図の表示領域内に2点の撮影位置がともに含まれることがない。撮影間距離が表示限界距離より大きい場合はステップS405に進み、CPU101は地図の縮尺を一段階小さい縮尺に設定する。そしてステップS403において、表示限界距離を再計算する。表示限界距離が撮影間距離より大きくなる場合は、ステップS406に進み、地図データをダウンロードする。なお、ステップS405において既に最も小さい縮尺が設定されていてこれ以上縮尺の小さい地図をサーバーからダウンロードできないときは、現在設定している縮尺が最も小さい地図をダウンロードする。
【0037】
次に、ステップS204の詳細な処理について説明する。ステップS204は、ステップS203で決定した地図と対応する画像を表示する処理である。図5のフローチャートはステップS204の詳細な処理を示し、現在の画像表示から再生が指示された次の画像の表示に遷移するときの各処理を示す。
【0038】
ステップS500においてCPU101は、地図を更新して表示する。ここで表示する地図は、ステップS203でダウンロードした地図である。なお、地図を更新する際はアニメーションを用いて徐々に拡大しながら表示してもよい。図9の(c)を例にして説明すると、次の撮影位置が遠く離れている場合は、現在表示している地図画像911に次の撮影位置が含まれない。そこで画像915の撮影位置と次の画像の撮影位置が含まれるような地図を決定する。このように再生が前後する2枚の撮影位置を含む地図を表示すると、撮影した方向を示す矢印のアイコン914が表示領域910の外に表示されることがない。したがって、ユーザーは撮影位置がどこからどこに移動したかを表示領域905に表示されている地図上で確認することができる。
【0039】
次にステップS501においてCPU101は、現在表示している画像を縮小する。これにより、次に再生する画像の表示が、画像サイズの差によって目立つようになる。縮小した画像の表示位置については後述する。なお、画像を縮小して表示する際は、アニメーションを用いて徐々に縮小してもよい。次にステップS502においてCPU101は、次の撮影位置まで地図をスクロールする。地図をスクロールする際は、次の撮影位置が表示領域910の中央にくるまで地図を移動する。地図のスクロールの詳細処理については後述するが、スクロール中は現在の撮影位置から次の撮影位置まで矢印を伸ばしていき、移動した方向が分かるようにする。次の撮影位置に到達すると地図のスクロールが終わるので、ステップS503においてCPU101は次の撮影位置のアイコンを地図上に表示する。ステップS502で地図をスクロールする際は、次の撮影位置が表示領域510の中央になるようにしているので、次の撮影位置を示すアイコンは地図の中央に表示される。ステップS504においてCPU101は、撮影位置の近辺に次の画像を表示する。次の画像の表示位置については後述するが、撮影位置のアイコンに重なることなく、なおかつ撮影位置を移動した方向を示す矢印と重ならないようにする。
【0040】
次に、ステップS502の詳細な処理について説明する。図6のフローチャートはステップS502の詳細な処理を示し、現在の撮影位置から次の撮影位置まで地図をスクロールする際の各処理を示す。
【0041】
再生が指示された次の画像の撮影位置が例えば図9(c)に示す916である場合は、ステップS600においてCPU101は、図9(b)の地図を次の撮影位置916と180度逆の方向へ地図を水平移動する。次の撮影位置と180度逆の方向へ地図を移動することで、次の撮影位置が地図の表示領域の中央に近づくことになる。例えば地図を右方向へ移動した場合は、表示領域910の左部分に新たな地図を表示する。したがって、地図を移動すると今まで表示されていなかった部分の地図が表示されることになる。地図の移動量は、予め決められた一定の大きさとする。次にステップS601においてCPU101は、前の撮影位置から次の撮影位置へ向けて矢印を描画する。そして次の撮影位置に到達するまで、ステップS600とステッ601を繰り返していく(ステップS602)。ここでステップS602とステップS603は短い時間間隔で繰り返し行うものとする。すなわち、ユーザーの視点に立つと、地図が移動しながら次の撮影位置へ向けて矢印が伸びていくように見える。
【0042】
図5の説明に戻る。ステップS501において画像の縮小を行う際は、縮小した画像を表示する位置を動的に変更する。この理由を図10を用いて説明する。まず、常に撮影位置を示すアイコンの上方に画像を表示すると、2つの問題点がある。
【0043】
図10の(a)は、前の画像の撮影位置1001が表示領域1000のかなり上部にある例である。このような場合に、単純に撮影位置の上方に画像1002を表示すると、表示領域1000の中に画像1002が入りきらなくなり、画像1002の視認性が悪くなる。また、図10の(b)は、前の画像の撮影位置1004が表示領域1003のかなり下部にある例である。このような場合に単純に撮影位置の上方に画像1006を表示すると、撮影位置の移動を示す矢印のアイコン1005の上に画像を表示させることになり、矢印のアイコン1005の視認性が悪くなる。以上の2つの問題を避けるために、前の画像の撮影位置によって画像の表示位置を動的に変更する。図10の(c)は、前後2枚の画像の撮影位置の関係を表すものである。1007は地図をスクロールした後に表示する画像の撮影位置であり、必ず地図の表示領域1009の中央になる。1008に示す円は、前の画像の撮影位置が含まれる可能性のある領域である。図2のフローチャートのステップS200またはステップS203のアルゴリズムに従うと、前の撮影位置は表示領域1009に内接する円1008の中に必ず含まれる。例えば、前の撮影位置が1010の領域内にある場合は、領域1010の上方にまだ余っている表示領域があるので、撮影位置のアイコンの上方に画像を表示することができる。また、前の撮影位置が1011の領域内にある場合は、下方にまだ余っている表示領域があるので、撮影位置のアイコンの下方に画像を表示することができる。また、前の撮影位置が1012または1013の領域内にある場合は、左方にまだ余っている表示領域があるので、撮影位置のアイコンの左方に画像を表示することができる。また、前の撮影位置が1014または1015の領域内にある場合は、右方にまだ余っている表示領域があるので、撮影位置のアイコンの右方に画像を表示することができる。以上のように、次の撮影位置まで地図をスクロールした時の前の画像の撮影位置を元にして、前の画像の表示位置を決定する。このように縮小した画像の表示位置を動的に変更することで、縮小した画像が画面外にはみ出してしまったり移動方向を示すアイコンと重なってしまうことを防ぐことができる。ここで、前の画像の縮小は地図のスクロール前に行うものなので、地図のスクロール前に前述のアルゴリズムにしたがって表示位置を決定しておく。なお、前の撮影位置が次の撮影位置の近くにくる可能性があるのは、サーバーに保存されている地図の縮尺が連続的でないからである。例えば、ある縮尺では表示領域内に2枚の撮影位置がぎりぎり入らなかったので縮尺を一段階小さく設定した場合は、表示領域の中では2点の撮影位置がそれほど離れていない地図を表示することになる。そのような理由から、前の撮影位置は1008の円の中のどこかの位置に含まれることになる。
【0044】
図5の説明に戻る。ステップS504において次の画像の表示を行う際は、画像を表示する位置を動的に変更する。この理由を図10の(d)と(e)を用いて説明する。図10の(d)は、前の画像の撮影位置が表示領域1016の下半分にある例を示している。前の画像の撮影位置は1017の領域に含まれているので、撮影した方向を示す矢印のアイコンも表示領域1016の下半分に含まれる。このような場合は、次の撮影位置のアイコンの上方に次の画像1118を表示すればよい。他方、図10の(e)のように前の画像の撮影位置が表示領域1019の上半分にある場合は、次の撮影位置の上方に画像を表示すると、撮影位置のアイコンや移動した方向を示す矢印のアイコンに重なって表示されてしまう。そこで、前の画像の撮影位置が表示領域1019の上半分にある場合は、次の撮影位置のアイコンの下方に画像1021を表示する。以上のように、前の撮影位置によって次の画像の表示位置を動的に変更することで、前の撮影位置を示すアイコンや移動方向を示すアイコンと重なってしまうことを防ぐことができる。
【0045】
なお、上記説明では画像の選択方法としてユーザーが目視で確認しながら操作部105を使って、再生したい画像を選んでいく方法を提案しているが、二次記憶装置103に保存されている画像全てを自動で選択して画像の再生を開始してもよい。また、画像に付与されたお気に入り度やキーワードなどのメタデータを指定することで、自動的に選択された画像を使ってもよい。
【0046】
また、上記説明では画像を再生する順番として撮影日時が古いものから再生する方法を提案しているが、撮影日時が新しい順に表示しもよい。また、ファイルの更新日、ファイル名、お気に入り度、ファイル種別ごとの昇順または降順にしたがって再生してもよい。
また、位置情報が付与されていない画像を再生する場合は、前の画像もしくは次の画像の位置情報を使ってもよい。
【0047】
また、図5のフローチャートではステップS500からステップS504の順番に沿って説明を行ってきたが、ステップS500からステップS504の順番を変えて処理を行ってもよい。例えば、ステップS501にある前の画像を縮小した後に、ステップS500にある地図の更新を行ってもよい。また、ステップS500からステップS504を同時に行ってもよい。
【0048】
また、上記説明では地図の上に画像を表示する方法を提案しているが、画像の上に地図を表示させてもよい。また、地図と画像を独立した領域に表示してもよい。
【0049】
また、本件発明は、通信手段を有する撮像装置での画像再生にも適用できる。この場合、撮像装置のCPUが上述した実施例でのCPU101として動作する。
【0050】
上述した本件発明の構成によれば、画像を順に地図上で再生する際に、再生順番が隣接する画像の撮影位置を所定の表示領域内に表示可能な地図を、最大尺度で決定できるので、ユーザーは画像の位置関係を地図上で明瞭に確認することができる。
【0051】
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。上述の実施形態の一部を適宜組み合わせてもよい。
【0052】
また、上述の実施形態の機能を実現するソフトウェアのプログラムを、記録媒体から直接、或いは有線/無線通信を用いてプログラムを実行可能なコンピュータを有するシステム又は装置に供給し、そのプログラムを実行する場合も本発明に含む。従って、本発明の機能処理をコンピュータで実現するために、該コンピュータに供給、インストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明の機能処理を実現するためのコンピュータプログラム自体も本発明に含まれる。
【0053】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。プログラムを供給するための記録媒体としては、例えば、ハードディスク、磁気テープ等の磁気記録媒体、光/光磁気記憶媒体、不揮発性の半導体メモリでもよい。また、プログラムの供給方法としては、コンピュータネットワーク上のサーバーに本発明を形成するコンピュータプログラムを記憶し、接続のあったクライアントコンピュータはがコンピュータプログラムをダウンロードしてプログラムするような方法も考えられる。

【特許請求の範囲】
【請求項1】
記憶媒体から選択された複数の画像を再生し、再生された画像の撮影位置を地図とともに表示するための画像再生装置において、
前記選択された複数の画像を順番に再生するための再生手段と、
少なくとも前記再生手段で再生された画像と前記地図を所定の表示領域に表示するための表示手段と、
前記複数の画像のうちの第1の画像と次の再生順番の第2の画像の撮影位置を前記記憶媒体から取得するための取得手段と、
前記取得手段で取得された前記第1の画像の撮影位置と前記第2の画像の撮影位置を前記所定の表示領域に表示可能な地図の最大の縮尺を決定するための決定手段と、
前記決定手段で決定された縮尺の地図とともに、前記第1の画像の撮影位置と前記第2の画像の撮影位置に従って前記第1の画像と前記第2の画像を前記所定の表示領域に表示する表示制御を行うための表示制御手段とを備えることを特徴とする画像再生装置。
【請求項2】
前記表示制御手段は、前記第1の画像の撮影位置と前記第2の画像の撮影位置との位置関係を示すアイコンを前記地図に従って前記所定の表示領域に表示することを特徴とする請求項1に記載の画像再生装置。
【請求項3】
前記再生手段は、前記第1の画像を表示している間に前記第2の画像の再生を指示するための指示手段を備え、
前記指示手段による再生の指示に応じて前記決定手段は前記縮尺を決定し、前記表示制御手段は、前記決定手段で決定された前記縮尺に従って前記所定の表示領域での前記地図の表示を更新することを特徴とする請求項1または2に記載の画像再生装置。
【請求項4】
前記表示制御手段は、前記第2の画像の撮影位置に基づいて前記所定の表示領域に表示されている地図をスクロールしながら前記表示制御を行って前記地図の表示を更新することを特徴とする請求項3に記載の画像再生装置。
【請求項5】
前記表示制御手段は、前記地図のスクロールに応じて前記アイコンの表示を変化させることを特徴とする請求項4に記載の画像再生装置。
【請求項6】
前記表示制御手段は前記第1の画像および前記第2の画像をそれぞれ異なるサイズに縮小し、前記アイコンの表示位置、前記第1の画像の撮影位置および前記第2の画像の撮影位置に従って前記縮小した画像の表示位置を決定することを特徴とする請求項2乃至5のいずれか一項に記載の画像再生装置。
【請求項7】
さらに外部装置と通信するための通信手段を備え、前記表示制御手段は、前記決定手段で決定された縮尺の地図を前記通信手段を介して前記外部装置から取得することを特徴とする請求項1乃至6のいずれか一項に記載の画像再生装置。
【請求項8】
記憶媒体から選択された複数の画像を再生し、再生された画像の撮影位置を地図とともに表示するための画像再生装置の制御方法において、
前記選択された複数の画像を順番に再生するための再生ステップと、
少なくとも前記再生ステップで再生された画像と前記地図を所定の表示領域に表示するための表示ステップと、
前記複数の画像のうちの第1の画像と次の再生順番の第2の画像の撮影位置を前記記憶媒体から取得するための取得ステップと、
前記取得ステップで取得された前記第1の画像の撮影位置と前記第2の画像の撮影位置を前記所定の表示領域に表示可能な地図の最大の縮尺を決定するための決定ステップと、
前記決定ステップで決定された縮尺の地図とともに、前記第1の画像の撮影位置と前記第2の画像の撮影位置に従って前記第1の画像と前記第2の画像を前記所定の表示領域に表示する表示制御を行うための表示制御ステップとを備えることを特徴とする制御方法。
【請求項9】
コンピュータを、
記憶媒体から選択された複数の画像を再生し、再生された画像の撮影位置を地図とともに表示するための画像再生装置の制御方法において、
前記選択された複数の画像を順番に再生するための再生手段、少なくとも前記再生手段で再生された画像と前記地図を所定の表示領域に表示するための表示手段、前記複数の画像のうちの第1の画像と次の再生順番の第2の画像の撮影位置を前記記憶装置から取得するための取得手段、前記取得手段で取得された前記第1の画像の撮影位置と前記第2の画像の撮影位置を前記所定の表示領域に表示可能な地図の最大の縮尺を決定するための決定手段、および前記決定手段で決定された縮尺の地図とともに、前記第1の画像の撮影位置と前記第2の画像の撮影位置に従って前記第1の画像と前記第2の画像を前記所定の表示領域に表示する表示制御を行うための表示制御手段として機能させるためのプログラム。
【請求項10】
請求項9のプログラムを記録したコンピュータが読み取り可能な記録媒体。
【請求項11】
コンピュータを、請求項1乃至7のいずれか一項に記載の画像再生装置の各手段として機能させるプログラム。
【請求項12】
コンピュータを、請求項1乃至7のいずれか一項に記載の画像再生装置の各手段として機能させるプログラムを格納した記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2012−198252(P2012−198252A)
【公開日】平成24年10月18日(2012.10.18)
【国際特許分類】
【出願番号】特願2011−60446(P2011−60446)
【出願日】平成23年3月18日(2011.3.18)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】