(57)【要約】【課題】  仮想３次元空間上に大量の画像を表示する場合に、画像同士の隠れがあってもユーザの視点位置を変えることなく隠れている画像を閲覧可能とすることを目的とする。【解決手段】  各画像が有する属性値に応じた仮想３次元空間上の位置に複数の画像を表示するための画像処理を行う画像処理装置であって、複数の画像を、少なくとも１以上の画像群にグルーピングし（Ｓ２０３）、画像群の回転軸を決定し、グルーピングされた画像群を決定した回転軸の周りを回転して表示されるよう画像処理（Ｓ２０４）を行う。【選択図】  図２
2012027793.tif 000002
【特許請求の範囲】
【請求項１】
各画像が有する属性値に応じた仮想３次元空間上の位置に複数の画像を表示するための画像処理を行う画像処理装置であって、
前記複数の画像を、少なくとも１以上の画像群にグルーピングするグルーピング手段と、
前記画像群の回転軸を決定する決定手段と、
前記画像群が前記回転軸の周りを回転して表示されるよう画像処理を行う画像処理手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記決定手段は、回転する画像群に含まれる画像の位置座標から中心点を算出し、該中心点を通る直線を回転軸として決定し、
前記画像処理手段は、前記決定手段で決定された回転軸に対して回転して表示されるよう画像処理を行うことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記画像処理手段は、前記中心点から各画像の距離に応じて各画像毎の回転速度を決定することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記画像群が複数ある場合に、隠れの原因となる画像群によって隠れている画像群があるかを判断する隠れ判断手段を有し、
前記決定手段は、前記隠れ判断手段によって隠れている画像群があると判断された場合、前記隠れの原因となる画像群に含まれる画像の位置座標から中心点を算出し、該算出された中心点を通る直線を回転軸として決定し、
前記画像処理手段は、前記隠れている画像群を、前記決定手段で決定された回転軸に対して回転させて表示されるよう画像処理を行う第２の画像処理手段を更に備えることを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記隠れの原因となる画像群と前記隠れている画像群のセットが複数あり、前記各セットの前記第２の画像処理手段における回転の軌道が交差する場合、前記画像処理手段は、回転の中心となる画像群と同じ側の軌道に位置する場合は通常通りの表示を行い、回転の中心となる画像群と逆の側の軌道に位置する場合には画像群を非表示、または透明表示するよう画像処理を行うことを特徴とする請求項４に記載の画像処理装置。
【請求項６】
回転を指示する指示手段を更に備えることを特徴とする請求項１〜５のいずれか一項に記載の画像処理装置。
【請求項７】
前記グルーピング手段は、ユーザが任意の画像群を指定することによりグルーピングを行うことを特徴とする請求項１〜６のいずれか一項に記載の画像処理装置。
【請求項８】
前記グルーピング手段は、前記画像の前記仮想３次元空間上の位置関係に基づき、前記画像を少なくとも１つ含む画像群にグルーピングすることを特徴とする請求項１〜６のいずれか一項記載の画像処理装置。
【請求項９】
各画像が有する属性値に応じた仮想３次元空間上の位置に複数の画像を表示するための画像処理を行う画像処理装置の制御方法であって、
前記複数の画像を、少なくとも１以上の画像群にグルーピング手段がグルーピングするグルーピング工程と、
前記画像群の回転軸を決定手段が決定する決定工程と、
前記画像群を前記回転軸の周りを回転して表示されるよう画像処理手段が画像処理を行う画像処理工程と
を備えることを特徴とする画像処理装置。
【請求項１０】
請求項９に記載された画像処理装置の制御方法の各工程をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元空間に画像を配置して表示するための画像を処理する画像処理装置及び画像処理装置の制御方法、プログラムに関する。
【背景技術】
【０００２】
画像データベースを閲覧する際の画像ビューアや類似画像検索における検索結果の表示など、大量の画像をユーザに提示する状況において、ユーザが所望する画像を容易に見つけられる表示方法やユーザインタフェースが求められている。昨今では、グラフィック環境の発達に伴い、２次元的に画像を表示するだけでなく、仮想３次元空間に画像を配置し、画像同士の遠近感を表現したりすることで画像を見やすく表示するような方法も行われている。
【０００３】
しかしながら従来より表示能力の高いこのような３次元空間での表示であっても、視認性を保ったまま一度に表示できる画像の数には限界がある。例えば、一部の領域に大量の画像を配置して表示する際、画像同士の重なりが発生し、後ろにある画像が隠れて見えない状況が起こり易い。
【０００４】
特許文献１では、３次元空間上に画像を配置した状況において、一部の領域に大量の画像が配置された場合にはこれらの画像群の中で代表画像を選定し、代表画像だけを表示することで大量の画像による視認性の低下を防いでいる。
【０００５】
特許文献２では、３次元空間内を自由に移動できる点をユーザの視点として配置することで、画像同士が重なる状況においても、後ろにある画像を見ることができるように工夫がなされているもので、一般的にウォークスルー方式と呼ばれている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−１３２８３１号公報
【特許文献２】特開平１１−１７５５３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１では、画像群の中から代表画像だけを表示するため、ユーザが所望する画像が代表画像として選ばれない場合がある。このため、ユーザが所望する画像が、実際にはデータベースに存在するにもかかわらずユーザが見つけることができないことになってしまう。
【０００８】
また、特許文献２では、視点を自由に動かすことができるためユーザは全ての画像を一通りみることができるものの、視点が空間の中に入っているため、空間内の画像分布状況を俯瞰して把握することができない。例えば、空間内に画像が密集する領域が２つ（画像群Ａと画像群Ｂが）あった場合、ユーザの視点が画像群Ａの中をウォークスルーしている場合、画像群Ｂを見ることができない。このため、画像群Ａの中にある画像と画像群Ｂの中にある画像を１視点から比較して見ることができない。
【０００９】
本発明は上記問題を鑑みてなされたものであり、その目的は、３次元空間上に大量の画像を表示する場合に、画像同士の隠れがあってもユーザの視点位置を変えることなく隠れている画像を閲覧可能とすることである。
【課題を解決するための手段】
【００１０】
上記の目的を達成するための本発明の画像処理装置は以下の構成を備える。すなわち、
各画像が有する属性値に応じた仮想３次元空間上の位置に複数の画像を表示するための画像処理を行う画像処理装置であって、
前記複数の画像を、少なくとも１以上の画像群にグルーピングするグルーピング手段と、
前記画像群の回転軸を決定する決定手段と、
前記画像群が前記回転軸の周りを回転して表示されるよう画像処理を行う画像処理手段と
を備える。
【００１１】
また、上記の目的を達成するための本発明の画像処理装置の制御方法は以下の構成を備える。すなわち、
各画像が有する属性値に応じた仮想３次元空間上の位置に複数の画像を表示するための画像処理を行う画像処理装置の制御方法であって、
前記複数の画像を、少なくとも１以上の画像群毎にグルーピング手段がグルーピングするグルーピング工程と、
前記画像群の回転軸を決定手段が決定する決定工程と、
前記画像群を前記回転軸の周りを回転して表示されるよう画像処理手段が画像処理を行う画像処理工程と
を備える。
【発明の効果】
【００１２】
本発明によれば、３次元空間上に大量の画像を表示する場合に、画像同士の隠れがあってもユーザの視点位置を変えることなく隠れている画像を閲覧することが可能である。
【図面の簡単な説明】
【００１３】
【図１】第一、第二、第三の実施形態における画像処理装置のブロック構成図である。
【図２】第一の実施形態の処理の流れを示すフローチャートである。
【図３】第一の実施形態における画像検索を行うためのユーザインタフェースの例を示す。
【図４】第一の実施形態におけるグルーピングを行った結果の例を示す図である。
【図５】第一の実施形態における画像群の自転表示処理の流れを示すフローチャートである。
【図６】第一の実施形態における画像検索結果の画像に対する仮想３次元空間上の座標を表す図である。
【図７】第一の実施形態における中心点Ｃと自転軸Ｌを示す図である。
【図８】第一の実施形態における自転の様子をＸＹ平面の断面図として示す図である。
【図９】第二の実施形態における処理の流れを示すフローチャートである。
【図１０】第二の実施形態で説明する画像群の配置を示す図である。
【図１１】第二の実施形態における隠れ判定処理の流れを示すフローチャートである。
【図１２】第二の実施形態における画像群と視点との距離を示す図である。
【図１３】第二の実施形態における判定結果を表す対応表を示す図である。
【図１４】第二の実施形態における画像群Ｂを注目画像群、画像群Ａを判定対象画像群とした場合の例を示す図である。
【図１５】第二の実施形態における各画像群とそれぞれの隠れ状態を示す図である。
【図１６】第二の実施形態における公転表示を説明する図である。
【図１７】第三の実施形態における処理の流れを示すフローチャートである。
【図１８】第三の実施形態における公転画像群セットが複数の場合の例を示す図である。
【図１９】第三の実施形態における公転表示の表示・非表示を切り替える境界エリアを示す図である。
【図２０】第三の実施形態における隠れの画像群がある場合のＸＹ平面図（Ａ）とその情報をユーザに示すユーザインタフェースの図（Ｂ）である。
【図２１】第一、第二、第三の実施形態における画像処理装置のハードウェア構成を示す図である。
【発明を実施するための形態】
【００１４】
以下、添付図面を参照して本発明の好適な実施形態を説明する。
【００１５】
［第一の実施形態］
図１に、本発明で説明する画像処理装置の概略構成ブロック図を示す。１０１は、本画像表示装置に対するユーザの入力部であり、キーボードやマウス等の入力装置である。１０２は、画像データベース制御部（以下、画像ＤＢ制御部）であり、ユーザからの入力に応じて画像データベース１０３にある画像データに対して検索処理、読み出し処理および登録処理等の制御を行う機能を有する。
【００１６】
１０３は、画像データベース（以下、画像ＤＢ）であり、様々な種類の画像データを記憶装置に保存したものである。画像データの他、画像の検索時に用いるメタデータ（キーワード、特徴量、属性値）も画像に対応付けて保存する。１０４は、表示部１０５に表示する画像を画像処理する画像処理部であり、画像ＤＢ制御部１０２から送られた画像データを表示部１０５に３次元的に表示する処理を行う。またユーザからの入力に応じて表示方法を制御する機能も有する。１０５は表示部であり、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）ディスプレイや液晶ディスプレイなどの画像表示装置である。
【００１７】
図２１は、本発明の実施形態における図１の画像処理装置のハードウエア構成の一例を示すブロック図である。２１０２はＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）であり、各種処理のための演算や論理判断などを行い、バス２１０１に接続された各構成要素を制御する。図１の画像データベース制御部１０２及び画像処理部１０４での制御もＣＰＵ２１０２が行う。本画像処理装置は、プログラムメモリとデータメモリを含むメモリが搭載されている。プログラムメモリには、フローチャートにより後述する各種処理手順を含むＣＰＵ２１０２による制御のためのプログラムを格納する。このメモリはＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）２１０３であってもよいし、外部記憶装置などからプログラムがロードされるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２１０４であってもよい。あるいは、これらの組合せで実現しても構わない。
【００１８】
２１０５は本実施形態に係るデータやプログラムを記憶しておくためのハードディスクなどの記憶装置である。また、本実施形態では、画像を保持しておくためにも利用される。なお、画像を保持しておく装置としては、外部接続やネットワークに接続された画像保持装置を用いてもよい。また、記憶装置２１０５と同様の役割を果たすものとして、外部記憶装置２１０６を用いてもよい。ここで、外部記憶装置２１０６は、例えば、メディア（記録媒体）と、当該メディアへのアクセスを実現するための外部記憶ドライブとで実現することができる。このようなメディアとしては、例えば、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤ、ＵＳＢメモリ、ＭＯ、フラッシュメモリ等が知られている。
【００１９】
２１０７はユーザからの指示を入力するための入力装置であり、図１の入力部１０１を示す。ユーザは入力装置２１０７を介して、当該画像処理装置に指示を行う。入力装置２１０７は、例えば、キーボードやポインティングデバイスにより実現することができる。
【００２０】
２１０８は処理結果等を表示出力する表示手段としての出力装置であり、図１の表示１０５を示す。出力装置２１０８は、例えば、出力のための回路を含むＣＲＴ（Ｃａｔｈｏｄｅ−Ｒａｙ  Ｔｕｂｅ）や液晶表示器などのディスプレイ装置により実現することができる。本実施形態では、画像を出力装置（表示装置）２１０８に表示する。
【００２１】
２１０９はインターフェイス（以下、Ｉ／Ｆという）であり、このＩ／Ｆ２１０９を介して外部装置とのデータのやり取りを行う。
【００２２】
次に本実施形態の動作を説明する。第一の実施形態の画像処理の流れを図２のフローチャートで説明する。
【００２３】
Ｓ２０１において、表示部１０５に表示する対象となる画像を画像ＤＢ１０３から取得する。本実施形態では、様々な種類の画像を含む画像ＤＢに対してユーザがキーワードを入力し、キーワードに該当する画像を表示部１０５に表示する、いわゆる画像検索を例に説明する。
【００２４】
図３に、本実施形態における画像検索を行うためのユーザインタフェースの例を示す。３０１は検索キーワード入力部であり、ユーザはこの部分に検索したい画像のキーワードを入力する。３０２は検索結果表示部であり、検索キーワード入力部３０１に入力されたキーワードに基づいて画像ＤＢ１０３から検索した結果を表示する。本実施形態では、図３に示すように、検索キーワードとして「車」を入力し、その結果を検索結果表示部３０２に表示する場合を説明する。
【００２５】
なお、検索結果表示部３０２の表示は、仮想３次元空間に検索結果の画像を配置して表示を行う。本実施形態では、「車」の属性として「カラー」「年代」「車高」を予め画像と共に画像ＤＢ１０３に入力しておき、それぞれの属性を仮想３次元空間における座標軸として表現するものとする。検索キーワード「車」が入力されると、画像ＤＢ制御部１０２が画像ＤＢ１０３に登録されている様々な画像のうち、車に関連する画像情報を取得する。なお、検索キーワードを用いた画像検索については、特開平０７−１２９６２１号公報、特開平６−１１９４０５号公報等で説明される既知の手法を用いて行うことができる。
【００２６】
Ｓ２０２において、Ｓ２０１において取得した表示対象となる画像それぞれについて、仮想３次元空間の座標値となる属性値を取得する。属性値は、以下に示す方法により予め自動あるいは手動で画像とともに画像ＤＢ１０３に登録しておき、Ｓ２０２では、表示対象となる画像に対応する属性値を画像ＤＢ１０３から取得する。なお、それぞれの属性値は、仮想３次元空間上の位置座標となるため、予め数値化した値として画像ＤＢに登録しておく。本実施形態における属性値の数値化については、例えば以下のように行えばよい。
【００２７】
（「車高」の数値化）
画像の実際の車高値を属性値としてもよいし、あるいは、画像ＤＢに登録された車画像のうち車高が最大のものを探し、最大の値が１．０になるように全ての車の車高値を正規化するようにしてもよい。なお、「車高値」については、画像登録時に手動で入力してもよいし、あるいは、画像認識を利用して車高を取得し自動的に登録するようにしてもよい。
【００２８】
（「カラー」の数値化）
車画像の代表色を取得し、代表色を彩度、あるいは明度に変換した値を用いる。例えば、彩度に変換した値を座標値とした場合には、値が小さいほど黒など地味な色合いの車が分布し、値が大きいほど赤や青など明るい派手な色合いの車が分布することになる。
【００２９】
（「年代」の数値化）
車の製造年を手動でＤＢに登録する。製造年の値をそのまま座標値として用いる。
【００３０】
Ｓ２０３において、Ｓ２０２において取得した座標値に基づき、仮想３次元空間における距離が近い画像を画像群としてグルーピングを行う。仮想３次元空間内のグルーピングについては特開平０９−０４４６０２、特開２００３−２０３０９０、等で説明される既知の手法を用いて行うことができる。図４の表示部３０２に、グルーピングを行った結果の例を示す。この例では、グルーピングにより画像群Ａが生成される。なお、画像Ｉｍｇ＿０７，画像Ｉｍｇ＿０８については、仮想３次元空間上で距離が近い画像が存在しないため、グルーピングされていない。
【００３１】
図４の画像群Ａに示すように、仮想３次元空間上の一部の領域に大量の画像が配置された場合には、画像同士が重なってしまい後ろの画像が見えない状態になってしまう。そこで、Ｓ２０４では、画像群Ａに対して中心軸を設定し、画像群Ａに含まれる全ての画像をこの中心軸の周りに回転させるように表示を行う。なお、この回転は画像群Ａを１つの惑星と見立てた場合、この惑星が中心軸に対して自転する様子と似ているため、以降の説明では「自転」と呼ぶことにする。
【００３２】
Ｓ２０４の詳細な処理の流れを図５のフローチャートに示す。Ｓ５０１において、画像群Ａに含まれる画像の位置座標から中心点を算出する。本実施形態では、画像群Ａには画像Ｉｍｇ＿０１〜画像Ｉｍｇ＿０６までの６枚の画像が含まれるものとする。図４に画像Ｉｍｇ＿０１〜画像Ｉｍｇ＿０６を示す。またこれらの仮想３次元空間における各座標を図６に示す。以上の条件において中心点Ｃ（Ｘｃ、Ｙｃ、Ｚｃ）を以下の式（１）により算出する。なお、ｍは画像群に含まれる画像総数であり、本実施形態においてはｍ＝６となる。
【００３３】
【数１】
2012027793.tif 000003
【００３４】
Ｓ５０２において、画像群Ａを自転させる際の回転軸（以下、自転軸Ｌとよぶ。）を決定する。本実施形態では、ユーザの視点に対して水平方向に画像群を自転させるため、自転軸Ｌは、中心点Ｃを通りＸ軸、Ｙ軸にそれぞれ垂直な直線となる。図７に中心点Ｃと自転軸Ｌを示す。７０１が中心点Ｃ、７０２が中心軸Ｌを表す。
【００３５】
なお、本実施形態では自転の回転方向をユーザの視点に対して水平方向の場合として説明したが、回転方向は垂直方向であってもよいし斜め方向であってもよい。Ｓ５０３において自転軸Ｌを中心として画像群Ａを自転させて表示する。
【００３６】
図８に、自転の様子をＸＹ平面の断面図として示す。８０１はユーザの視点方向であり、８０２は画像群Ａの自転方向とする。従来の表示方法では、画像Ｉｍｇ＿０５、Ｉｍｇ＿０６については画像Ｉｍｇ＿０１〜Ｉｍｇ０３の後ろに位置して隠れてしまいユーザの視点から見ることができない状態であった。しかし、８０２のように各画像を回転することにより手前に移動するため、ユーザから見える状態になる。
【００３７】
なお、各画像の回転速度は中心点から画像までの距離に応じて決定するのが望ましい。画像群Ａの画像Ｉｍｇ＿０１〜Ｉｍｇ＿０３が、図８のようにユーザの視点方向８０１に対して重なって位置している場合、画像Ｉｍｇ＿０１〜Ｉｍｇ＿０３の回転速度を同じにすると、Ｉｍｇ＿０２とＩｍｇ＿０３はＩｍｇ＿０１に隠れて見えなくなってしまう。そこで、このような場合にも後ろにある画像を閲覧できるようにするため、自転軸７０２と各画像との距離に応じて回転速度を決定する。この際、自転軸からの距離が近い画像は、自転軸からの距離が遠い画像に比べて、ユーザの視点に入る時間が短くなる。そこで、視認性を向上するため、自転軸からの距離が近いほど自転軸の速度が遅くなるように回転速度を決定することが望ましい。本実施形態の場合、画像Ｉｍｇ＿０１〜Ｉｍｇ＿０３の回転速度をｖ＿０１〜ｖ＿０３とした場合、以下の式（２）を満たすように回転速度を決定する。
ｖ＿０１＞ｖ＿０２＞ｖ＿０３    ・・・（２）
【００３８】
以上、第一の実施形態では、仮想３次元空間に画像を表示する際、一部の領域に密集して画像が配置される場合にこれらの画像を画像群としてグルーピングし、該画像群を自転軸に対して自転させる。これにより、従来は画像同士の重なりにより見えなかった画像を閲覧することができるようになる。
【００３９】
なお、本実施形態では自転の回転軸を画像群の中心軸としているが、中心軸に限定されるものではなく、画像群内の任意の１点に基づいて回転軸を設定するようにしてもよい。
また、本実施形態では、仮想３次元空間上の位置に基づき画像群を自動的にグルーピングする場合の例で説明したが、あるいは、ユーザが任意に画像群を指定可能なユーザインタフェースを設け、ユーザが指定する画像群をグルーピングされたものとして以降の処理を行うようにしてもよい。
【００４０】
［第二の実施形態］
第二の実施形態では、仮想３次元空間上に画像群が複数存在し、１つの画像群が他方の画像群を隠している場合の画像処理について説明する。
【００４１】
第二の実施形態で説明する画像群の位置関係を図１０に示す。図１０は、ＸＹ平面の断面図であり、画像群Ａ、Ｂ、Ｃの３個の画像群が存在する。第一の実施形態に示す方法により、それぞれの画像群は自転表示を行っている。１００１、１００２はそれぞれ画像群Ｂの自転軸、自転方向であり、１００３，１００４は画像群Ｃの自転軸、自転方向である。このような状況において、画像群Ａと画像群Ｃについては、ユーザの視点から見える位置にあるが、画像群Ｂについては、画像群Ａの後ろにあるため隠れて見えない状態にある。このような状況において、画像群Ａと画像群Ｃの表示を閲覧しつつ、かつ画像群Ｂの画像を閲覧できるような表示方法について以下で説明する。  図９に第二の実施形態における画像処理のフローチャートを示す。なお、第一の実施形態と同じ処理については同じ番号を付与して説明を省略する。
【００４２】
Ｓ９０１において、ユーザの視点から隠れてしまう画像群を判定する。Ｓ９０１の詳細な処理の流れを図１１のフローチャートに示す。Ｓ１１０１において、画像群Ａ、Ｂ、Ｃについて、それぞれユーザの視点（図１２の１２０１）までの距離を算出する。この距離を以降視点間距離と呼び、それぞれの視点間距離を、Ｌａ、Ｌｂ、Ｌｃとし以下の説明を行う。なお、本実施形態では、Ｌａ、Ｌｂ、Ｌｃの関係を以下の式（３）と定義する。また、Ｌａ、Ｌｂ、Ｌｃは図１２においてはＸＹ平面における２次元の直線として表しているが、実際には仮想３次元空間における２地点間の距離である。
Ｌｃ＞Ｌｂ＞Ｌａ      ・・・（３）
【００４３】
Ｓ１１０２において、以降の処理で用いる変数ｇを１に初期化する。変数ｇは、画像群ＩＤを表す変数であり、以降、画像群Ａ、Ｂ、Ｃの画像群ＩＤをそれぞれ画像１、画像２、画像３とする。Ｓ１１０３において、ＩＤがｇの画像群（以下注目画像群と呼ぶ）について、該画像群とユーザの視点との間に他の画像群が存在するか否かを判定する。判定方法は、注目画像群の視点間距離に対し、それより短い視点間距離をもつ他の画像群があるか否かを判定することで行う。注目画像の視点間距離より短い視点間距離をもつ他の画像群がある場合には、「視点との間に他の画像群あり」と判断しステップＳ１１０４に進み、そうでない場合には「視点との間に他の画像群なし」と判断し、ステップＳ１１０６に進む。
【００４４】
図１２は、画像群と視点との距離を示す図である。図１２に示す例では、上記判定により、画像群Ａは「視点との間に他の画像群なし」、画像群ＢとＣは「視点との間に他の画像群あり」と判定される。なお、Ｓ１１０３では、以降の処理で用いるため、上記の判定結果を保存する。図１３に判定結果を表す対応表を示す。各画像群に対し、視点間距離が自分より短い他の画像群の個数とその画像群ＩＤリストを保存する。
【００４５】
Ｓ１１０４において、注目画像群が他の画像群の後ろに位置することにより「隠れ」が発生しているか否かを判定する。本処理は、注目画像群に対し、視点間距離が短い他の全ての画像群を対象として判定を行う。すなわち、注目画像群が画像群Ｂの場合には、画像群Ａを判定対象とし、注目画像群が画像群Ｃの場合には、画像群Ａと画像郡Ｂの両方を判定対象とする。以下、具体的な判定方法を説明する。
【００４６】
まず、注目画像群の中心点と視点を結ぶ直線を直線Ｍとする。次に、各画像群について、画像群の中心点Ｃから最も遠い距離にある画像までの距離をＲとし、中心をＣ、半径をＲとする仮想的な球Ｋを定義する。そして、注目画像群の直線Ｍが、他の画像群に定義される仮想的な球Ｋに含まれるか否かにより判定を行う。この判定は、直線Ｍと球Ｋの中心点との距離Ｈを算出し、距離Ｈと球の半径Ｒを比較することで実現できる。注目画像群の座標を（Ｘｇ、Ｙｇ、Ｚｇ）、視点の座標を（Ｘｅ、Ｙｅ、Ｚｅ）、判定対象となる他の画像群の中心座標を（Ｘｃ、Ｙｃ、Ｚｃ）とすると、距離Ｈは以下の式（４）で表すことができる。ただし、ａ，ｂ，ｃはそれぞれ、式（５）、式（６）、式（７）をみたすものとする。
【００４７】
【数２】
2012027793.tif 000004
【００４８】
以上の式で算出した距離Ｈと半径Ｒを比較し、以下の式（８）をみたすか否かを判定する。
Ｒ＞Ｈ    ・・・（８）
式（８）をみたす場合には、注目画像群は判定対象となる画像群により隠れを生じていると判断しＳ１１０５に進み、そうでない場合にはＳ１１０６の処理に進む。
画像群Ｂを注目画像群、画像群Ａを判定対象画像群とした場合の例を図１４に示す。注目画像群の座標（Ｘｇ、Ｙｇ、Ｚｇ）、視点の座標（Ｘｅ、Ｙｅ、Ｚｅ）、判定対象となる他の画像群の中心座標（Ｘｃ、Ｙｃ、Ｚｃ）、判定対象となる他の画像の半径Ｒ、直線Ｍと中心座標（Ｘｃ、Ｙｃ、Ｚｃ）との距離Ｈ、はそれぞれ図１４に示すとおりとなる。
【００４９】
Ｓ１１０５、Ｓ１１０６では、Ｓ１１０４とＳ１１０３で判定した結果に基づき、各画像群について「隠れ」があるか否かの情報を保存する。Ｓ１１０７において、変数ｇに１を加算する。Ｓ１１０８において、変数ｇと画像群の総数を比較することで、全ての画像群を処理したか否か判定する。全ての画像群を処理した場合には図９のＳ２０４に進み、そうでない場合には、Ｓ１１０３に進み、Ｓ１１０８までの処理を繰り返す。図１５は、各画像群とそれぞれの隠れ状態を示す図である。本実施形態では、画像群Ｂだけが画像群Ａにより「隠れ」を生じるため、ステップＳ１１０５、Ｓ１１０６による最終的な保存結果は図１５に示すとおりとなる。
【００５０】
以降の処理では、Ｓ９０１において「隠れ」を生じていると判定された画像群を、「隠れ」の原因となる画像群を中心として中心軸を決定し、中心軸に対して回転させて表示する。すなわち、本実施形態では、画像群Ｂを画像群Ａを中心として回転して表示する。なお、画像群Ａと画像群Ｂの関係は惑星の公転運動に類似するため、この回転を以下では公転とよぶことにする。また、公転する画像群を公転画像群（本実施形態では画像群Ｂ）、公転中心となる画像群を公転中心画像群（本実施形態では画像群Ａ）とよぶ。Ｓ９０２において、公転画像群と公転中心画像群の中心点の距離を公転半径ＳＡＢとする。Ｓ９０３において、公転半径ＳＡＢとして公転画像群を公転させて表示する。
【００５１】
図１６に画像群Ｂを画像群Ａのまわりで公転させる場合の例を示す。１６０１が公転方向であり、図に示すように画像群Ｂは画像群Ａの周りを周期的に回転する。このように、本来隠れている画像群Ｂを公転して表示させることにより、画像群Ａの後ろに位置してユーザが閲覧することができなかった画像郡Ｂをユーザに表示することが可能となる。また、第一の実施形態で説明した各画像群における自転を同時に行うことで、それぞれの画像群の後ろにある画像を閲覧することも可能となるため、ユーザは画像群Ａ、Ｂ、Ｃに含まれる全ての画像を視点を動かさずに閲覧することができる。
【００５２】
以上、第二の実施形態によれば、仮想３次元空間上に複数の画像群が存在する場合には画像群同士の隠れが生じていないか判定し、隠れを生じている場合には隠れて見えない画像群を隠れの原因となる画像群の周りに公転させる。これにより、従来の表示では画像群の後ろにあって見えなかった画像群に対し、ユーザの視点を変えることなく閲覧することが可能となる。
【００５３】
［第三の実施形態］
第三の実施形態では、公転回転を行う画像群のセットが複数ある場合について説明する。
図１８に、公転回転を行う画像群のセットが２個ある場合の例を示す。図１８では、画像群Ａと画像群Ｂが公転関係にあり、画像群Ｃと画像群Ｄが公転関係にある。図１８の１８０１、１８０２、１８０３はそれぞれ、画像群Ｄの自転軸、自転方向、公転方向を表す。このような状況において、画像群Ｂの公転軌道と画像群Ｄの公転軌道が交差する場合には、公転する画像群同士が重なってしまい視認性が低下してしまう。第三の実施形態ではこのような状況においても視認性を低下させることなく、それぞれの画像群にある画像を閲覧することができる方法について説明する。
【００５４】
第三の実施形態における画像処理の流れを図１７のフローチャートに示す。なお、第一の実施形態、第二の実施形態と同様の処理については、同一の番号を付与して説明を省略する。Ｓ１７０１において、画像群Ｂの公転軌道と画像群Ｄの公転軌道が交差するか否かを以下の式（９）により判定する。ＳＡＢは画像群Ｂの公転半径、ＳＣＤは画像群Ｄの公転半径であり、ＪＡＣは画像群Ａと画像群Ｂの中心点間の距離となる。
ＳＡＢ＋ＳＣＤ＞ＪＡＣ    ・・・（９）
式（９）が成立する場合には、公転軌道が交差すると判定しＳ１７０２に進む。式（９）が成立しない場合には、二つの公転軌道が交差しないため、ユーザの視認性が低下することがない。このため、Ｓ９０３に進み、それぞれの公転画像群を公転表示する。Ｓ１７０２では、画像群Ｂと画像群Ｄの公転表示おいて、それぞれの公転軌道が交差するエリアでは非表示（あるいは透明表示）に切り替えることにより、交差により画像群が重なって表示されることを防ぐ。表示と非表示（あるいは透明表示）を切り替える境界面は、２つの公転中心画像群の中心点間の中点と視点位置とを含む平面とする。なお、本実施形態で、公転方向をユーザの視線に対して水平方向に回転させるものとするため、前記境界面はＸＹ平面に垂直なものとなる。
【００５５】
図１９に２つの公転中心画像群の中心点間の中点１９０１と境界面１９０２を示す。また図１９において境界面１９０２より下側の領域をエリアＱ、上側の領域をエリアＰとする。画像群ＢはエリアＰを公転する際は通常通り画像群を表示し、エリアＱを公転する際は非表示（あるいは透明表示）に切り替える。逆に画像群Ｄは、エリアＱを公転する際は通常通り画像群を表示し、エリアＰを公転する際は非表示（あるいは透明表示）に切り替えるようにする。このように、それぞれの公転表示における表示・非表示（あるいは透明表示）を切り替えることで、２つの公転軌道が交差して画像群同士が重なって表示されることを防ぐことができる。なお、本実施形態では表示、非表示を切り替える境界面を、２つの公転中心画像群の中心点間の中点１９０１に基づいて決定しているが、この中点１９０１は２つの公転中心画像群のサイズ比率に応じて点１９０１の位置を定めるようにしてもよい。また、本実施形態では、公転画像群を常に回転させる場合として説明したが、あるいは、初期状態では回転させず、ユーザの指示に従って回転を開始するようにしてもよい。
【００５６】
また、回転表示をしている際に、初期状態に戻った場合、初期状態であることを知らせるアナウンス表示や強調表示等をしてもよい。
【００５７】
図２０にこの動作を示した図を示す。例えば、２つの画像群Ａ、Ｂが、図２０の（Ａ）ＸＹ平面図に示すような位置関係にあるとする。この際、初期状態では図２０の（Ｂ）仮想３次元表示の２００１に示すように画像群Ｂが隠れていることをユーザに示す表示を行う。そしてユーザがマウス操作などによりこの表示部分を指定すると画像群Ｂの公転が開始するような構成とすればよい。また、本実施形態では、２つの画像群セットにおける公転軌道の方向を図１８の１６０１と１８０３に示すように同じ方向として説明したが、あるいは、逆方向に回転させるようにしてもよい。以上、第三の実施形態では、公転関係にある画像群セットが複数ある場合においてそれぞれの公転軌道が交差する場合に、交差するエリアでは画像群を非表示に切り替えることで、画像群同士の重なりによる視認性の低下を防ぐことができる。
【００５８】
以上、第１〜第３の実施形態で説明したように、本発明によれば、３次元空間上に大量の画像を表示する場合に、画像同士の隠れがあってもユーザの視点位置を変えることなく隠れている画像を閲覧することが可能である。
【００５９】
［その他の実施形態］
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコード（コンピュータプログラム）を記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給する。係る記憶媒体は言うまでもなく、コンピュータ読み取り可能な記憶媒体である。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【００６０】
また、コンピュータが読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００６１】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００６２】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【符号の説明】
【００６３】
１０１  ユーザ入力部
１０２  画像ＤＢ制御部
１０３  画像ＤＢ
１０４  画像処理部１０４
１０５  表示部
【図１】
2012027793.tif 000005
【図２】
2012027793.tif 000006
【図３】
2012027793.tif 000007
【図４】
2012027793.tif 000008
【図５】
2012027793.tif 000009
【図６】
2012027793.tif 000010
【図７】
2012027793.tif 000011
【図８】
2012027793.tif 000012
【図９】
2012027793.tif 000013
【図１０】
2012027793.tif 000014
【図１１】
2012027793.tif 000015
【図１２】
2012027793.tif 000016
【図１３】
2012027793.tif 000017
【図１４】
2012027793.tif 000018
【図１５】
2012027793.tif 000019
【図１６】
2012027793.tif 000020
【図１７】
2012027793.tif 000021
【図１８】
2012027793.tif 000022
【図１９】
2012027793.tif 000023
【図２０】
2012027793.tif 000024
【図２１】
2012027793.tif 000025