(58)【調査した分野】(Int.Cl.,DB名)
予め設定された設定情報と前記断面平面の位置の情報とに基づいて、1個または複数のガイドレールに関する情報であるガイドレール情報を生成して前記3次元空間情報記憶部に書き込むガイドレール情報生成部、
をさらに備え、
前記基準ガイドレール決定部は、前記3次元空間情報記憶部を参照し、前記ガイドレール情報生成部によって生成されたガイドレールの中から前記基準ガイドレールを選択し決定する、
請求項1に記載の画像処理装置。
前記基準ガイドレール決定部は、前記スライド操作が開始される時点で、前記投影面における当該スライド操作の始点ポイントの位置に対応する前記3次元空間内の点を通り且つ前記3次元空間において前記断面平面と定められた所定の角度で交わるガイドレールを求め、当該ガイドレールを前記基準ガイドレールとして決定する、
請求項1に記載の画像処理装置。
前記移動ベクトル計算部は、前記3次元空間において前記投影面と前記基準ガイドレールとが交わる最小角度であるα(0度≦α≦90度)に基づき、前記スライド操作の移動量に対する前記2次元移動ベクトルの絶対値の比率がαに対して単調減少となるように、前記2次元移動ベクトルを算出する、
請求項1から4までのいずれか一項に記載の画像処理装置。
前記移動ベクトル計算部は、前記スライド操作の方向と前記基準ガイドレールとが成す角度が予め定められた閾値よりも大きい場合には、前記断面平面を移動させる処理を行わない、
請求項1から5までのいずれか一項に記載の画像処理装置。
【発明を実施するための形態】
【0009】
以下、実施形態の画像処理装置、画像処理方法、およびプログラムを、図面を参照して説明する。
【0010】
(第1の実施形態)
図1は、本実施形態による画像処理装置の概略機能構成を示すブロック図である。図示するように、画像処理装置1は、2次元領域情報記憶部12と、3次元空間情報記憶部13と、操作取得部21と、基準ガイドレール決定部22と、移動方向判定部23と、移動ベクトル計算部24と、ガイドレール情報生成部31と、投影部41とを含んで構成される。
【0011】
画像処理装置1は、仮想的な3次元空間における様々なオブジェクト等をモデル化し、それらのオブジェクト等を投影面に投影した結果得られる画像を画面等に表示する。画像処理装置1は、電子回路を用いた情報処理装置として実現される。2次元領域情報記憶部12および3次元空間情報記憶部13は、半導体メモリーや磁気ハードディスクなどの情報記憶媒体を用いて実現される。画像処理装置1を、コンピューターとプログラムによって実現するようにしてもよい。より具体的には、画像処理装置1は、パーソナルコンピューターやタブレット端末装置やスマートフォン(スマホ)などといった装置と、それらの装置が有するCPU(中央処理装置)で稼働するアプリケーションプログラム(アプリ)とで実現することもできる。画像処理装置1のユーザーは、例えば液晶ディスプレイ装置などの表示装置に表示される画像を見る。また、ユーザーは、マウスやタッチパネルやペンタブ等のポインティングデバイスを用いて、表示される画像に関する操作を行うことができる。以下において、画像処理装置1が処理対象として扱う空間を「3次元空間」と呼び、上記の投影面やディスプレイ装置の画面を「2次元領域」等と呼ぶ。画像処理装置1が3次元空間におけるオブジェクトの情報を記憶したり、それらのオブジェクトをレンダリングしたりする処理自体は、既存技術を用いて行うことができる。
【0012】
また、画像処理装置1は、3次元空間内の断面平面を上記の投影面に投影させた状態で表示装置に表示する。そして、画像処理装置1は、ユーザーからの操作に基づき、この断面平面を3次元空間内で移動させる処理を行う。
ここで、断面平面とは、3次元空間を切った断面である。画像処理装置1は、3次元空間の状態をユーザーに提示するために、この断面平面における画像を表示する。なお、断面平面は、平面である。3次元空間における一点を座標(X,Y,Z)で表すとき、3次元空間のその点における状態は値V(X,Y,Z)で表され得る。3次元空間内の平面をPとするとき、その断面平面の画像は、(X,Y,Z)∈Pなる点(X,Y,Z)における値V(X,Y,Z)の集合として表され得る。画像処理装置1は、このような断面平面を移動させるためのユーザーインターフェースを提供する。
なお、ユーザーの操作に基づいて断面平面を移動させる際に、画像処理装置1は、定められたガイドレールに沿って断面平面を移動させる。ガイドレールの位置等は、設定情報として予め定めておくものである。本実施形態において、ガイドレールは、断面平面と垂直である。ただし、ガイドレールと断面平面とが垂直でなくてもよい。ガイドレールと断面平面とが、90度以外の所定の角度を成すように交わっている状況においても、断面平面をガイドレールに沿って移動させることは可能である。なお、ガイドレールを「ガイドライン」と呼んでもよい。
以下において、画像処理装置1を構成する各部の機能を説明する。
【0013】
2次元領域情報記憶部12は、2次元領域に関する情報を記憶する。2次元領域情報記憶部12が記憶するデータの詳細については、別の図を参照しながら後で説明する。
3次元空間情報記憶部13は、3次元空間に関する情報を記憶する。3次元空間情報記憶部13は、少なくとも、3次元空間内における断面平面の位置を表す情報を記憶する。3次元空間情報記憶部13が記憶するデータの詳細については、別の図を参照しながら後で説明する。
【0014】
操作取得部21と、基準ガイドレール決定部22と、移動方向判定部23と、移動ベクトル計算部24とは、ユーザーによる操作に基づいて、断面平面を移動させるための計算等の処理を行うものである。
【0015】
操作取得部21は、ユーザーによる操作の内容やそのパラメーターを取得する。特に、操作取得部21は、画面上でのユーザーによる操作の種類や、その操作が行われる位置の情報を取得する。操作の一種であるスライド操作に関しては、操作取得部21は、投影面が描画された画面の上で、例えば指やポインティングスティック等の指示手段によって指示されたポイントをスライドさせるスライド操作を検知する。そして、操作取得部21は、スライド操作が行われた画面上の位置の情報を取得する。スライド操作の位置の情報とは、画面上におけるスライド操作の開始ポイントの座標および終点ポイントの座標の情報である。
基準ガイドレール決定部22は、操作取得部21が取得したスライド操作の位置の情報、つまり開始ポイントの座標と終点ポイントの座標とに基づいて、次の処理を行う。即ち、基準ガイドレール決定部22は、3次元空間内において断面平面と直交するガイドレールであって、且つスライド操作を検知したときにスライド操作の位置の近傍に投影面上で投影されているガイドレールを、基準ガイドレールとして決定する。なお、本実施形態の基準ガイドレール決定部22は、3次元空間情報記憶部13を参照し、ガイドレール情報生成部31によって生成されていたガイドレールの中から基準ガイドレールを選択し決定する。
移動方向判定部23は、スライド操作の方向に基づいて、断面平面を、基準ガイドレールが伸びる方向のいずれの側の方向に移動させるかを判定する。
【0016】
移動ベクトル計算部24は、スライド操作の方向とスライドさせたときの移動量とに基づいて、画面上における移動を表し基準ガイドレールと平行な2次元移動ベクトルを算出する。そして、移動ベクトル計算部24は、投影面上に存在する2次元移動ベクトルに対応して3次元空間内における移動の方向と移動量とを表す3次元移動ベクトルを算出する。そして、移動ベクトル計算部24は、算出した3次元移動ベクトルにしたがって3次元空間情報記憶部13が記憶している3次元空間内における断面平面の位置を変更する。
なお、断面平面の位置が3次元空間情報記憶部13上で書き換えられることによって、断面平面の再描画が行われる。具体的には、移動ベクトル計算部24は、移動後の断面平面の位置の情報を投影部41に渡す。移動ベクトル計算部24から移動後の断面平面の位置の情報を受け取ると、投影部41は移動後の断面平面を投影面に投影する。断面平面の移動後には、投影面のうち、少なくとも、移動前に断面平面があった位置に相当する部分と移動後に断面平面がある位置に相当する部分とは、再描画される。
【0017】
ガイドレール情報生成部31は、ガイドレール設定情報に基づいて、与えられる断面平面に直交するガイドレールの情報を生成し、3次元空間情報記憶部13にガイドレール情報を書き込む。ガイドレール設定情報については後述する。
つまり、ガイドレール情報生成部31は、予め設定されたガイドレール設定情報と断面平面の位置の情報とに基づいて、1個または複数のガイドレールに関する情報であるガイドレール情報を生成して3次元空間情報記憶部13に書き込む。ガイドレール情報生成部31が生成するガイドレール情報は、各ガイドレールの位置の情報(始点および終点の座標)である。また、ガイドレール情報生成部31は、生成したガイドレール情報を投影部41に渡すことにより、投影部41に、ガイドレールを投影面に投影させる。
【0018】
投影部41は、3次元空間内のオブジェクトの情報に基づき、それらのオブジェクトを投影面に投影する。投影面に投影された画像は、画像処理装置1のディスプレイ装置にそのまま表示される。なお、投影部41が投影面に投影するオブジェクトとしては、3次元空間の断面平面や、ガイドレールも含まれる。つまり、投影部41は、3次元空間情報記憶部13が記憶する断面平面の位置の情報に基づき、3次元空間における断面平面を投影面に投影して描画する。なお、投影部41は、透視投影(perspective projection)を用いて投影しても、平行投影(parallel projection)を用いて投影してもよい。透視投影を行う場合には、投影部41は、3次元空間情報記憶部13が保持する視点座標の情報を参照する。
【0019】
図2および
図3は、画像処理装置1が表示する投影された3次元空間の表示例を示す概略図である。
図2および
図3が表示する画像は、3次元空間が投影面に投影された画像である。なお、図において、黒の四角形の枠は、3次元空間内の断面平面の外枠である。また、符号G1およびG2を付した黒い線分は、それぞれガイドレールである。また、図では、3次元空間内の地形が投影面に投影されている。また、図では、3次元空間内の断面平面にグレースケールによる画像が描かれている。つまり、画像処理装置1は、投影面に投影された、断面平面の外枠と、ガイドレールG1およびG2と、地形と、断面平面における画像とを表示している。なお、後述する手順により基準ガイドレールが決定された後には、画像処理装置1が、基準ガイドレールのみを表示するようにしてもよい。
図2および
図3は、気象データ(例えば、3次元空間内の水分量など)を表示している例である。この図の基となる気象データでは、3次元空間のうち、地表よりも上の部分の各座標に対応する数値データが含まれている。数値データは、画素値に変換され得る。画素値は、白黒画像の場合にはグレースケールの階調に対応し、カラー画像の場合には色に対応する。画像処理装置1は、3次元空間の各座標に対応した数値の、断面平面における断面図を、投影面に投影して表示する。
【0020】
図示する例は気象データの例であるが、気象データに限らず、3次元空間に分布する数値データをグラフィカルに表示する用途で、この画像処理装置1を用いることができる。例えば、形状モデリング(自動車、建築物、精密機器部品等)や、医用データ表示(コンピュータートモグラフィー(CT)や、核磁気共鳴画像法(MRI)による臓器等の3次元表示)や、その他の用途に、この画像処理装置1を用いることができる。
【0021】
なお、図示した例では、ガイドレールの数は2本であったが、設定によりガイドレールの本数は任意である。1本以上のガイドレールを用いるように予め設定しておくこととする。また、図示した例では、断面平面は四角形の形状であり、4本の黒枠の線を用いて断面平面を表しているが、断面平面の形状や枠線の数や形状は任意である。また、図示した例では透視投影を用いているため、3次元空間において平行な複数のガイドレールは、投影面に投影された像では平行には描かれず、消失点(vanishing point)において交わる。なお、消失点は、無限遠に存在する。なお、透視投影ではなく平行投影を用いて投影面への投影を行うようにしてもよい。
【0022】
次に画像処理装置1が用いるデータの構成について説明する。
【0023】
図4は、3次元空間情報記憶部13が記憶するデータの構成例を示す概略図である。図示するように、3次元空間情報記憶部13は、ガイドレール設定情報と、断面平面情報と、ガイドレール情報と、視点情報と、投影面情報とを記憶する。
ガイドレール設定情報は、ガイドレールを生成するために予め設定しておく情報である。ガイドレール設定情報は、ガイドレールの個数(本数)を表す数値情報と、断面平面に対するガイドレールの位置の情報(個々のガイドレールごとの位置の情報)と、ガイドレールの長さの情報(個々のガイドレールごとの長さ)とを含む。断面平面の位置や向きは変わり得るが、断面平面の位置に対するガイドレールの位置の情報は、例えば、断面平面の下端左端(所定方向から見た左)や断面平面の下端右端などのように、断面平面に対する相対的な関係の情報として表し得る。ガイドレールの長さの情報は、3次元空間の座標系における長さの数値情報として表される。
ガイドレール設定情報は、ガイドレール情報生成部31がガイドレール情報を生成する際に参照される。
【0024】
断面平面情報は、断面平面の傾き情報と、断面平面の範囲の情報とを含む。断面平面の傾き情報は、3次元空間の座標系(例えば、xyz直交座標)における平面の方程式の情報として表される。あるいは、断面平面の傾き情報は、断面平面の法線ベクトルの成分の情報として表される。断面平面の範囲の情報は、断面平面が範囲を有する場合(例えば、断面平面が4つの辺で囲まれた四角形の内部の範囲の視である場合)に、その範囲を表す。例えば、断面平面の範囲の情報は、断面平面の内部と外部とを区切る境界線の方程式の情報として表される。
【0025】
ガイドレール情報は、ガイドレール情報生成部31によって生成される情報である。ガイドレール情報は、生成された個々のガイドレールの始点および終点の、3次元空間における座標の情報である。また、個々のガイドレールは、ガイドレールIDの情報によって識別される。
【0026】
視点情報は、3次元空間を投影面に投影する際の視点の位置を表す情報である。視点情報は、視点の3次元画像における座標値である。
投影面情報は、投影面の傾き情報と、投影面の範囲情報とを含む。投影面の傾き情報は、3次元空間の座標による、投影面の平面を表す方程式の情報として表される。あるいは、投影面の傾き情報は、投影面の法線ベクトルの成分の情報として表される。投影面の範囲の情報は、投影面の範囲(ディスプレイ装置等に表示される範囲)を、3次元空間の座標を用いて表した情報である。一例として、投影面の内部と外部とを分ける境界線の方程式の情報として、投影面の範囲の情報は表される。
【0027】
図5は、2次元領域情報記憶部12が記憶するデータの構成例を示す概略図である。図示するように、2次元領域情報記憶部12は、基準ガイドレール情報と、基準距離と、基準角度とを記憶する。
基準ガイドレール情報は、複数のガイドレールIDのうちの、基準ガイドレールのIDの情報である。基準ガイドレールは、基準ガイドレール決定部22によって決定される。基準ガイドレール決定部22が、選択した基準ガイドレールのIDを、この基準ガイドレール情報として書き込む。
基準距離は、基準ガイドレールを決定する際に用いられる距離dを表す数値情報である。距離dは、2次元領域内の座標系における距離である。基準距離dは、スライド操作されたときのタッチ位置と、基準ガイドレールとして選択され得るガイドレールとの間の距離の上限である。なお、具体的なdの値は、アプリケーションごとに適宜定められるようにしてよい。この基準距離dの情報は、基準ガイドレール決定部22によって参照される。
基準角度は、移動方向を決定する際に用いられる角度θを表す数値情報である。角度θは、2次元領域の平面における角度である。角度θは、スライド操作されたときのスライド軌跡の方向と、基準ガイドレールとが成す角度の上限値である。この基準角度θの情報は、移動方向判定部23によって参照される。
【0028】
図6は、画像処理装置1が、ユーザーによるスライド操作に応じて3次元空間内の断面平面を移動させて再描画するまでの処理手順を示すフローチャートである。以下、このフローチャートに沿って、断面平面を移動させる処理の概略を説明する。
まずステップS1において、操作取得部21は、スライド操作を検知する。またこのとき、操作取得部21は、スライド操作の軌跡の位置の情報を取得する。具体的には、操作取得部21は、2次元の表示画面(2次元領域)における、スライド操作の始点ポイントと終点ポイントの座標(x座標値とy座標値)を取得する。
【0029】
次にステップS2において、基準ガイドレール決定部22は、基準ガイドレールを決定する。具体的には、基準ガイドレール決定部22は、操作取得部21が取得したスライド操作の軌跡に基づいて、1個以上のガイドレールのうちのどれを基準とするかを決定する。なお、スライド操作の軌跡の位置によっては、基準ガイドレールが選ばれない場合もある。基準ガイドレールが決定されない場合には、本フローチャートにおける処理を中止するため、断面平面の移動は行われない。
【0030】
次にステップS3において、移動方向判定部23は、断面平面の移動方向を判定する。具体的には、移動方向判定部23は、操作取得部21が取得したスライド操作の軌跡の方向に基づいて、断面平面の移動方向を表すこととなるガイドベクトルを求める。なお、ガイドベクトルは、上で決定された基準ガイドレールの方向と平行なベクトルであり、その正または負のいずれかの方向を向くベクトルである。本実施形態においては、基準ガイドレールは移動させようとする断面平面に垂直な線である。つまり、ガイドベクトルは、断面平面をその平面に垂直な2つの方向のうちのいずれかの方向を示すベクトルである。
【0031】
次にステップS4において、移動ベクトル計算部24は、断面平面の移動を表す移動ベクトルを計算する。具体的には、移動ベクトル計算部24は、2次元領域における移動を表すベクトルとして計算された上記のガイドベクトルに基づいて、移動ベクトルを計算する。移動ベクトルは、3次元区間における、移動平面の移動方向と移動の大きさとを表すベクトルである。
移動ベクトル計算部24による処理の詳細については、後でも説明する。
そして、移動ベクトル計算部24は、算出された移動ベクトルを用いて、3次元空間内で断面平面を移動させる。そして、移動ベクトル計算部24は、移動後の断面平面を投影面に投影させるために、移動後の断面平面の位置等の情報を投影部41に渡す。
【0032】
次にステップS5において、投影部41は、移動後の断面平面を表示する。具体的には、投影部41は、少なくとも移動前の断面平面の位置と移動後の断面平面の位置について、投影面の再描画を行う。そして、投影部41は、更新された投影面の画像をディスプレイ装置等に表示させる。
本ステップの処理が終了すると、画像処理装置1は、このフローチャートの処理全体を終了させる。なお、その後、操作取得部21がユーザーによるスライド操作を検知すると、再度、ステップS1からの処理を再開する。
【0033】
次に、上述したステップS1からS5までの処理のさらなる詳細について、説明する。
【0034】
操作取得部21は、ユーザーによる操作の情報を取得する。本実施形態において操作取得部21が取得する操作は、タッチ操作とスライド操作とを含むものである。タッチ操作は、画面上のある位置に触る操作である。スライド操作は、画面上を触った状態のまま画面上のある位置から他の位置へ、滑るように移動させる操作である。
操作取得部21は、タッチ操作が行われた場合には、タッチされたポイント(位置)の座標(画面上におけるx,yの2次元座標)を取得する。また、操作取得部21は、スライド操作が行われた場合には、スライドされた始点ポイントと終点ポイントのそれぞれの座標を取得する。例えば、第n番目のポイント、第(n+1)番目のポイント、第(n+2)番目のポイントと、連続的にスライド操作が行われた場合には、操作取得部21は、これらの各ポイントの座標を取得する。また、操作取得部21は、タッチ操作もスライド操作も行われていないときには、それらの操作がないことを表す状態を情報として取得する。なお、ここで、タッチパネルを用いた場合の「触る」操作とは、指やポインティングスティック等をパネルに触れさせる操作である。また、ペンタブを用いた場合の「触る」操作とは、ペンやポインティングスティック等をパッドに触れさせる操作である。また、マウスを用いた場合の「触る」操作とは、マウスカーソルがあるポイントに存在している状態でマウスボタンを押す操作である。また、マウスを用いた場合のスライド操作とは、マウスボタンを押したままの状態で、マウスカーソルを移動させる操作である。
【0035】
基準ガイドレール決定部22は、スライド操作に基づいて断面平面の移動を開始する際に、複数あるガイドレールのうちのどのガイドレールを移動の基準として用いるかを決定する。基準ガイドレール決定部22は、スライド操作の始点ポイントおよび終点ポイントの座標を、操作取得部21から取得する。
具体的には、基準ガイドレール決定部22は、次の処理を行う。
まず、基準ガイドレール決定部22は、3次元空間情報記憶部13からガイドレールの情報を読み出し、それらのガイドレールが2次元領域において存在する位置を計算する。このとき、ガイドレールの数は1以上である。
次に、基準ガイドレール決定部22は、スライド操作の始点ポイント(2次元領域における座標が操作取得部21から与えられる)と、2次元領域における各ガイドレールとの距離を計算する。
次に、基準ガイドレール決定部22は、上記の始点ポイントからの距離が予め定められた基準距離d以下であり、且つ始点ポイントから最も近いガイドレールを選択する。つまり、基準ガイドレール決定部22は、この選択されたガイドレールを基準ガイドレールとして決定する。なお、スライド操作の始点ポイントからガイドレールまでの距離については、後で
図7を参照しながら説明する。
次に、基準ガイドレール決定部22は、決定した基準ガイドレールを識別する情報(ガイドレールID)を2次元領域情報記憶部12に書き込む。また、基準ガイドレール決定部22は、基準ガイドレールの始点と終点の3次元空間における座標を3次元空間情報記憶部13に書き込む。
なお、上記の条件に照らして基準ガイドレールがなかった場合には、基準ガイドレール決定部22は基準ガイドレールの情報を書き込まない。また、この場合、画像処理装置は断面平面を移動させるための以後の処理を行わない。
【0036】
移動方向判定部23は、スライド操作に基づいて断面平面を移動させる際に、基準ガイドレールを基準としたときのどちらの方向への移動を行うかを判定するものである。基準ガイドレールは1次元の線として扱われる。したがって、移動方向判定部23は、その線に沿った方向を正と負で表した場合において、移動方向が正であるか負であるかを判定する。なお、移動方向判定部23は、スライド操作の始点ポイントおよび終点ポイントの座標を、基準ガイドレール決定部22から取得する。
具体的には、移動方向判定部23は、次の処理を行う。
まず、移動方向判定部23は、表示されている2次元領域上における、基準ガイドレール(直線)とスライド操作の軌跡とが成す角度を計算する。なお、スライド操作の軌跡は、直線と見なしてよい。
次に、移動方向判定部23は、上で算出された角度(基準ガイドレールとスライド操作軌跡とが成す角度)が所定の基準角度θ以下であるか否かを判定する。この角度がθ以下であれば、断面平面を移動させるための以下の処理を続ける。なお、この角度がθよりも大きければ、断面平面を移動させるための処理を行わない。
次に、移動方向判定部23は、スライド操作中のポイントの位置情報と、基準ガイドレールの情報(始点および終点の座標)とから、ガイドベクトルを計算する。ガイドベクトルは、断面平面を移動させる方向を表すものである。ここで、ガイドベクトルは、基準ガイドレールの正方向あるいは負方向のいずれかである。そしてまた、ガイドベクトルは、これら正負の方向のうち、スライド操作の軌跡の方向(始点から終点に向かう方向)に近い方の方向を有するベクトルである。
なお、移動方向判定部23による移動方向の判定の処理については、後で
図8を参照しながら説明する。
また、移動方向判定部23がガイドベクトルを求める処理については、後で
図9を参照しながら説明する。
【0037】
移動ベクトル計算部24は、スライド操作の軌跡に基づいて、断面平面を移動させるための移動ベクトルを求める。この移動ベクトルは、3次元空間における移動を表すベクトルである。なお、移動ベクトル計算部24は、スライド操作の始点ポイントおよび終点ポイントの座標を、移動方向判定部23から取得する。
具体的には、移動ベクトル計算部24は、次の処理を行う。
【0038】
まず、移動ベクトル計算部24は、3次元空間における投影面の位置の情報と、基準ガイドレールの情報(始点と終点の座標)とから、角度αを計算する。角度αは、投影面と基準ガイドレールとが交わる角度である。
次に、移動ベクトル計算部24は、ガイドレール傾き係数計算関数f()と、上で計算された角度αとから、ガイドレール傾き係数βを計算する。つまり、下の式により、ガイドレール傾き係数βが算出される。
β=f(α)
【0039】
なお、ガイドレール傾き係数計算関数f()は、アプリケーションに応じて適宜定めておくようにする。なお、関数f()は、次の特性を有する関数である。即ち、関数f(α)の定義域は、0度≦α≦90度である。また、関数f(α)の値域は、0<f(α)≦1である。また、関数f(α)は、変数αに関して単調減少関数である。
このような特性を有する関数fの一例は、下に示す関数である。
f(α)=0.9cos
2(α)+0.1
ただし、関数fは、ここに例示した関数に限定されるものではない。
なお、関数fを計算するための計算式の情報、あるいは関数fの入出力の値の関係を表すルックアップテーブルの情報を、3次元空間情報記憶部13に予め記憶させておくようにしてもよい。
【0040】
つまり、移動ベクトル計算部24は、3次元空間において投影面と基準ガイドレールとが交わる最小角度であるα(0度≦α≦90度)に基づき、スライド操作の移動量に対する2次元移動ベクトルの絶対値の比率がαに対して単調減少となるように、2次元移動ベクトルを算出する。
【0041】
次に、移動ベクトル計算部24は、移動方向判定部23によって計算されたガイドベクトルGV
nと、上で計算されたガイドレール傾き係数βとを用いて、2次元領域における移動ベクトルを計算する。なお、2次元領域における移動ベクトルを、便宜的に2次元移動ベクトルMV
nと呼ぶ。即ち、移動ベクトル計算部24は、下の式によりガイドベクトルGV
nを求める。
MV
n=β・GV
n
ガイドレール傾き係数βを掛けることにより、2次元領域上での移動量を補正する作用が得られる。2次元領域(ディスプレイ装置等に表示される2次元平面)での移動量を補正することによるメリットは、次の通りである。即ち、投影面と基準ガイドレールとが3次元空間内で交わる角度αが大きい場合(直交により近い場合)、2次元領域上でのわずかなスライド量で断面平面が大きく移動してしまうと、ユーザーは意図したとおりに断面平面を移動させにくいという問題がある。このような問題を軽減するために移動量を補正することによって、断面平面の移動量をコントロールしやすくなるというメリットが得られる。
【0042】
次に、移動ベクトル計算部24は、上で求められた2次元移動ベクトルを、3次元空間内の移動ベクトルである3次元移動ベクトルに変換する処理を行う。なお、2次元移動ベクトルを3次元移動ベクトルに変換するためには、移動ベクトル計算部24は、基準ガイドレールの3次元空間における位置の情報を参照する。
そして、移動ベクトル計算部24は、投影面上の基準ガイドレール上の2次元移動ベクトルMV
nの始点および終点を、視点の位置(3次元区間におけるxyz座標)から、逆投影する。即ち、移動ベクトル計算部24は、視点と2次元移動ベクトルMV
nの始点と
を結ぶ直線と、3次元空間内の基準ガイドレールとの交点を、3次元移動ベクトルの始点とする。また、移動ベクトル計算部24は、視点と2次元移動ベクトルMV
nの終点とを結ぶ直線と、3次元空間内の基準ガイドレールとの交点を、3次元移動ベクトルの終点とする。このように、移動ベクトル計算部24は、3次元移動ベクトルの始点と終点が求められる。即ち、2次元移動ベクトルから3次元移動ベクトルへの変換(逆投影)の処理が行える。
なお、ここでの、基準ガイドレールの3次元空間における位置情報を取得する手順は次の通りである。即ち、移動ベクトル計算部24は、2次元領域情報記憶部12を参照することにより、基準ガイドレールのガイドレールIDを取得することができる。そして、移動ベクトル計算部24は、この取得したガイドレールIDを用いて、3次元空間情報記憶部13を参照する。移動ベクトル計算部24は、そのIDを有するガイドレールの3次元空間による位置情報(始点および終点の座標)を3次元空間情報記憶部13から読み出す。
【0043】
なお、移動ベクトル計算部24は、上に例示した手順に限らず、2次元領域における2次元移動ベクトルを、3次元空間における3次元移動ベクトルに変換することができる。
なお、実際に3次元移動ベクトルの始点と終点を求めなくても、3次元空間における断面平面の移動量を計算するだけでも十分である。なお、前提として、断面平面の移動方向は、ガイドレールの方向(断面平面に垂直な方向)に拘束されている。
【0044】
そして、移動ベクトル計算部24は、上記の計算の結果得られる移動量に基づいて、実際に、断面平面を移動させる。
【0045】
図7は、基準ガイドレール決定部22が基準ガイドレールを決定する処理を行う際の、スライド操作の始点ポイントとガイドレールとの距離を示す概略図である。同図は、画像処理装置1がディスプレイ装置等に表示した表示面を示している。同図において、点pは、ユーザーによるスライド操作の始点ポイントである。また、点aは、ある1本のガイドレールの始点である。また、点bは、そのガイドレールの終点である。基準ガイドレール決定部22は、基準ガイドレールを決定するために、スライド操作の始点ポイントから各ガイドレールまでの距離を算出する。基準ガイドレール決定部22は、スライド操作の始点ポイントpからガイドレールまでの距離Hを、次の式により計算する。
H=sin(γ)・|V
ap|
ここで、V
apは、点aから点pへのベクトルである。また、γは、直線apと直線abとが成す角度である。また、sinは、正弦関数である。なお、γは、次の式により求められる。
γ=acos{(V
ab・V
ap)/(|V
ab|・|V
ap|)}
ここで、V
apは、点aから点bへのベクトルである。また、V
ab・V
apは、ベクトルV
abとベクトルV
apの内積を表す。また、acosは、逆余弦関数である。
なお、距離Hを算出する手順として、上記の式による計算以外の手順を用いるようにしてもよい。
【0046】
図8は、移動方向判定部23が断面平面の移動方向を決定する処理を行う際の、スライド軌跡が表す方向とガイドレールとが成す角度を示す概略図である。同図において、G1およびG2は、それぞれ、ガイドレールである。そして、同図が示す状況において、ガイドレールG1が、既に、基準ガイドレールとして決定されている。同図は、2通りのスライド操作の例を示している。ここで、移動方向判定部23は、スライド操作の軌跡と基準ガイドレールとが成す角度を計算する。
【0047】
ここで、角度を算出する方法は、次の通りである。2次元領域における2次元座標(xy座標)で、スライド操作の軌跡の直線と、基準ガイドレールの直線を、それぞれ次の方程式で表す。
y=mx+n ・・・ スライド操作の軌跡の直線
y=sx+t ・・・ 基準ガイドレールの直線
このとき、ms=−1の場合には両直線は直交している。また、m=0で基準ガイドレールがy軸に平行である場合にも両直線は直交している。また、s=0でスライド軌跡の直線がy軸に平行である場合にも両直線は直交している。これら、両直線が直交している場合を除き、両直線が成す鋭角側の角度αは、下の式で表される。
α=atan|(m−s)/(1+ms)|
ここで、atanは逆正接関数を表す。
【0048】
図における例1のスライド操作では、スライド操作の軌跡(矢印線で示す)と基準ガイドレールであるガイドレールG1とが成す角度が15度である。また、例2のスライド操作では、スライド操作の軌跡と基準ガイドレールであるガイドレールG1とが成す角度が30度である。ここで、基準角度θが20度である場合を想定すると、例1の場合には、スライド操作の軌跡と基準ガイドレールが成す角度(15度)は、基準角度以下である。しかし、例2の場合には、スライド操作の軌跡と基準ガイドレールが成す角度(30度)は、基準角度を超える。したがって、例1のスライド操作が行われた場合には、移動方向判定部23はガイドベクトルを決定し、断面平面の移動のための処理が継続される。一方、例2のスライド操作が行われた場合には、その方向が基準角度よりも大きいため、移動方向判定部23はガイドベクトルを決定しない。またその場合には、断面平面の移動のための処理は中断される。
【0049】
つまり、スライド操作の方向と基準ガイドレールとが成す角度が予め定められた閾値よりも大きい場合には、移動ベクトル計算部24は、断面平面を移動させる処理を行わない。
【0050】
図9は、移動方向判定部23が断面平面を移動させるためのガイドベクトルを求める処理を説明するための概略図である。同図において、G1は、基準ガイドレールである。また、ベクトルV
pは、スライド操作の始点ポイント(P
n)から終点ポイント(P
n+1)までのベクトルである。また、点cは、基準ガイドレール上の任意の点であり、基準ガイドレールと移動前の断面平面との交点である。そして、ベクトルGV
nは、求めるガイドベクトルである。移動方向判定部23は、点cを始点とするガイドベクトルGV
nを求める。なお、このとき、移動方向判定部23は、ベクトルV
pの長さ(絶対値)とガイドベクトルGV
nの長さ(絶対値)とが等しくなるように、ガイドベクトルGV
nを求める。即ち、下の等式が成立する。
|V
p|=|GV
n|
つまり、ガイドベクトルGV
nは、ベクトルV
pを、基準ガイドレールの方向と等しくなるように回転(回転量は角度α)させたベクトルである。
【0051】
なお、既に書いた通り、本実施形態におけるガイドレールの個数は、1以上の任意の数である。
図2および
図3のそれぞれでは、ガイドレールの個数が2である場合について例示したが、ガイドレールの個数は2に限定されない。
また、
図2および
図3のそれぞれでは、四角形の断面平面の枠線を、表示するようにした。しかしながら、本実施形態の変形例として、断面平面の枠線を表示しないようにしてもよい。
また、本実施形態では、ガイドレールは3次元空間において移動対象の断面平面と直交するものとした。しかし、ガイドレールと断面平面とが必ずしも直交している必要はなく、予め定められた所定の角度でガイドレールと断面平面とが交わるようにしてもよい。ガイドレールと断面平面とが直交しない場合にも、断面平面の移動方向はガイドレールの正方向または負方向のいずれかに拘束される。また、ガイドレールと断面平面とが予め定められた所定の角度で交わる場合、本実施形態で述べた処理手順で、断面平面を移動させることが可能である。多くのアプリケーションにおける3次元空間の表示では、ガイドレールと断面平面とが直交していることが多いが、ここに記すような変形例を用いれば、ガイドレールと断面平面とが直交しない特殊な状況においても、本実施形態を適用することができる。
【0052】
本実施形態によれば、ユーザーの画面上でのスライド操作に基づいて、その画面におけるスライド操作の移動方向と対応するように3次元空間内で断面平面を移動させる方向を決定するため、ユーザーに対して、投影面の表示領域を直接操作して断面平面を移動させることのできるインターフェースを提供することができる。
また、そのユーザーインターフェースにおいて、ユーザーは、画面上のスライド操作の方向と一致する方向に、断面平面を移動させることができる。即ち、画像処理装置1は、直感的にわかりやすいユーザーインターフェースを提供することができる。
また、本実施形態によれば、ガイドレールを表示するため、特に透視投影の場合に、ユーザーに対して、断面平面の移動方向や、移動前後における位置関係を、わかりやすく提示することができる。
また、本実施形態によれば、ユーザーによるスライド操作の近傍のガイドレールを求めて、断面平面の移動を行うため、ユーザーは、ピンポイントで特定の点をポイントする必要がない。
また、本実施形態によれば、スライド操作の量に基づいて断面平面の移動量を決定するため、ユーザーは、スライド操作の量(スライド操作の軌跡の長さ)などを基に、断面平面の移動方向および移動量をコントロールすることができる。
【0053】
(第2の実施形態)
次に、第2の実施形態について説明する。なお、前実施形態において説明した事項については、ここでの説明を省略する場合がある。ここでは、本実施形態に特有の事項について説明する。
本実施形態の機能構成を示すブロック図は、
図1に示した通りである。
本実施形態の特徴は、画像処理装置1がガイドレールを表示しないことである。つまり、本実施形態における投影部41は、ガイドレール以外のオブジェクトを投影面に投影して描画するものの、ガイドレールを描画しない。ガイドレールが表示されていない状態においても、ユーザーによるスライド操作を検知した後の画像処理装置1の動作は、第1の実施形態で説明したものと同様である。つまり、基準ガイドレール決定部22は、スライド操作の始点ポイントの位置に基づいて、基準ガイドレールを選択する。また、移動方向判定部23や移動ベクトル計算部24による処理も、第1の実施形態と同様である。
【0054】
本実施形態によれば、ガイドレールが表示されないため、画像処理装置は簡潔な表示を行う。表示対象である3次元空間内のオブジェクトが多数ある場合には、ガイドレールのない表示は、ユーザーにとって視認性がよくなる場合がある。
【0055】
(第3の実施形態)
次に、第3の実施形態について説明する。なお、前実施形態までにおいて説明した事項については、ここでの説明を省略する場合がある。ここでは、本実施形態に特有の事項について説明する。
本実施形態の機能構成を示すブロック図は、
図1に示した通りである。
本実施形態の特徴は、スライド操作が行われる前から予めガイドレールを決めておくのではなく、スライド操作が行われたときに初めてガイドレールを定めることである。
【0056】
第1の実施形態では、ガイドレール情報生成部31が、3次元空間情報記憶部13に記憶されているガイドレール設定情報に基づいて、ガイドレール情報を生成していた。また、その結果として、画像処理装置1が所定本数(設定により定められた本数)のガイドレールを表示していた。また、基準ガイドレール決定部22は、検知されたスライド操作の始点ポイントに最も近い(ただし、基準距離d以下の)ガイドレールを基準ガイドレールとして決定していた。
【0057】
それに対して、本実施形態では、ガイドレール情報生成部31が予めガイドレール情報を生成しておくことをしない。したがって、少なくとも断面平面を移動させるためのスライド操作が行われるまでは、画像処理装置1は、ガイドレールを表示しない。
本実施形態では、操作取得部21がスライド操作の情報を検知したとき、そのスライド操作の始点ポイントの位置(2次元領域における座標)に基づいて、ガイドレールの位置が計算される。具体的には、検出されたスライド操作の始点ポイントの位置に基づいて、ガイドレール情報生成部31が、その始点ポイントに対応する3次元空間内のガイドレールを計算する。そして、基準ガイドレール決定部22は、ガイドレール情報生成部31によって求められたガイドレールを、基準ガイドレールとして決定する。
【0058】
ここで、スライド操作の始点ポイントに基づいてガイドレールを決定する方法を、(1)平行投影の場合と(2)透視投影の場合のそれぞれの場合について説明する。なお、その時点での断面平面の位置は、3次元空間情報記憶部13から読み出すことができる。
(1)平行投影の場合: 3次元空間内で、断面平面に垂直な直線L3が多数(無限個)存在する。ガイドレール情報生成部31は、それらの直線L3のうちの任意の1本の直線について、投影面上に投影した結果得られる、2次元領域上の直線L2を求める。そして、基準ガイドレール決定部22は、求められたL2に平行な2次元領域上の直線であって、スライド操作の始点ポイントを通る直線(1本存在する)を基準ガイドレールとして決定する。平行投影の場合には、3次元空間内で平行な2本の直線が、2次元領域に投影した場合にも平行であるため、この方法で、基準ガイドレールを求めることができる。
【0059】
(2)透視投影の場合: ガイドレール情報生成部31は、3次元空間内で、断面平面に垂直な2本の異なる直線L31とL32とを適宜選ぶ。なお、直線L31とL32とが互いに所定距離以上離れているように選ぶことが好ましい。そして、ガイドレール情報生成部31は、直線L31とL32について、投影面上に投影した結果得られる、それぞれ、2次元領域上の直線L21とL22とを求める。そして、ガイドレール情報生成部31は、2次元領域上における直線L21とL22との交点Cを求める。この交点Cは、2次元領域上における透視投影の消失点である。そして、基準ガイドレール決定部22は、点Cとスライド操作の始点ポイントとを通る直線を、基準ガイドレールとして決定する。
【0060】
つまり、本実施形態では、基準ガイドレール決定部22は、スライド操作が開始される時点で、投影面における当該スライド操作の始点ポイントの位置に対応する、3次元空間内の点を通り、且つ3次元空間において断面平面と直交するガイドレールを求める。そして、基準ガイドレール決定部22は、当該ガイドレールを基準ガイドレールとして決定する。
なお、基準ガイドレールが決定された後、断面平面を移動するまでの処理は、第1の実施形態におけるそれと同様である。
【0061】
なお、本実施形態において、基準ガイドレールの表示を開始するタイミングは、ユーザーがスライド操作を開始したときとする。あるいは、ユーザーがまずスライド操作の始点ポイントを長押ししたタイミングで基準ガイドレールの表示を開始し、基準ガイドレールの表示後にユーザーが引き続きスライド操作を行うようにしてもよい。また、基準ガイドレールを表示しないままの状態で、断面平面の移動を行うようにしてもよい。
【0062】
本実施形態によれば、ガイドレールの位置が予め決められておらず、スライド操作の始点ポイントの位置に基づいてガイドレールの位置が決まる。これにより、スライド操作の開始位置が予め決められていたガイドレールから遠すぎることによって、基準ガイドレールが決定されないという状況が生じない。つまり、ユーザーの望む場所からのスライド操作により、必ず基準ガイドレールが決定される。
【0063】
以上説明した少なくともひとつの実施形態によれば、スライド操作に基づいて2次元領域における2次元移動ベクトルの方向を決定し、その2次元移動ベクトルに対応する形で、3次元移動ベクトルを決定する移動ベクトル計算部を持つことにより、ユーザーの直感によく整合した形で断面平面を移動させるユーザーインターフェースを提供することができる。
【0064】
なお、上述したいずれかの実施形態における画像処理装置の少なくとも一部の機能をコンピューターで実現するようにしても良い。その場合、その機能を実現するためのプログラムをコンピューター読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピューターシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピューターシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリーのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0065】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【解決手段】実施形態の画像処理装置は、3次元空間情報記憶部と、投影部と、操作取得部と、基準ガイドレール決定部と、移動ベクトル計算部とを持つ。投影部は、3次元空間情報記憶部が記憶する断面平面の位置の情報に基づき、断面平面を投影面に投影して描画する。基準ガイドレール決定部は、操作取得部が取得したスライド操作の位置の情報に基づいて、基準ガイドレールを決定する。移動ベクトル計算部は、スライド操作の方向と移動量とに基づいて、基準ガイドレールと平行な2次元移動ベクトルを算出し、2次元移動ベクトルに対応する3次元移動ベクトルを算出し、算出された3次元移動ベクトルにしたがって断面平面の位置を変更する。