(57)【特許請求の範囲】
【請求項１】
表示部に立体視表示するための右目用画像及び左目用画像に含まれるオブジェクトであって、仮想的な３次元空間に配置されたオブジェクトを右目で見た場合における前記オブジェクトの右目用位置に関する右目用位置情報と、前記オブジェクトを左目で見た場合における前記オブジェクトの左目用位置に関する左目用位置情報と、前記オブジェクトの形状に関する形状情報と、を含むオブジェクト情報を保持するオブジェクト情報保持部から、前記オブジェクト情報を取得するオブジェクト情報取得部と、
前記表示部に表示されるカーソルの前記３次元空間におけるカーソル位置を取得するカーソル位置取得部と、
前記カーソル位置に応じて、前記右目用画像及び前記左目用画像の一方の画像を選択画像として選択する画像選択部と、
前記オブジェクト情報及び前記カーソル位置に基づいて、前記選択画像において前記カーソルと重ねて表示されるオブジェクトをターゲットオブジェクトとして設定するターゲットオブジェクト設定部と、
前記ターゲットオブジェクト上における前記カーソルのターゲットオブジェクト上カーソル位置を算出するカーソル位置算出部と、
前記カーソルが前記３次元空間における奥行き方向と直交する左右方向の移動を含む移動をすることにより、前記ターゲットオブジェクト設定部により前記奥行き方向の位置が異なる他のターゲットオブジェクトが設定された場合、前記選択画像における前記カーソルの前記奥行き方向の位置を当該他のターゲットオブジェクトの前記奥行き方向の位置に更新するカーソル位置更新部と、
を含む立体視オブジェクト操作装置。
【請求項２】
前記ターゲットオブジェクト上における前記カーソルのターゲットオブジェクト上カーソル位置を算出するカーソル位置算出部をさらに備え、
前記カーソル位置更新部は、前記右目用画像及び前記左目用画像の他方の画像である非選択画像の前記他のターゲットオブジェクト上における前記カーソルの前記ターゲットオブジェクト上カーソル位置を、前記選択画像の前記他のターゲットオブジェクト上における前記カーソルの前記ターゲットオブジェクト上カーソル位置と同じ位置に更新する
請求項１記載の立体視オブジェクト操作装置。
【請求項３】
前記画像選択部は、前記カーソルの前記左右方向における位置が、前記右目の位置と前記左目の位置との中間位置よりも左側である場合は、前記右目用画像を選択し、前記カーソルの前記左右方向における位置が、前記中間位置よりも右側である場合は、前記左目用画像を選択する
請求項１又は請求項２記載の立体視オブジェクト操作装置。
【請求項４】
前記カーソルが前記左右方向の移動を含む移動をした場合に、前記カーソルの移動速度が前記カーソルの奥行き位置に応じて変化しないように、前記カーソルの移動量を補正する補正部
をさらに備えた請求項１〜請求項３の何れか１項に記載の立体視オブジェクト操作装置。
【請求項５】
コンピュータが、
表示部に立体視表示するための右目用画像及び左目用画像に含まれるオブジェクトであって、仮想的な３次元空間に配置されたオブジェクトを右目で見た場合における前記オブジェクトの右目用位置に関する右目用位置情報と、前記オブジェクトを左目で見た場合における前記オブジェクトの左目用位置に関する左目用位置情報と、前記オブジェクトの形状に関する形状情報と、を含むオブジェクト情報を保持するオブジェクト情報保持部から、前記オブジェクト情報を取得し、
前記表示部に表示されるカーソルの前記３次元空間におけるカーソル位置を取得し、
前記カーソル位置に応じて、前記右目用画像及び前記左目用画像の一方の画像を選択画像として選択し、
前記オブジェクト情報及び前記カーソル位置に基づいて、前記選択画像において前記カーソルと重ねて表示されるオブジェクトをターゲットオブジェクトとして設定し、
前記カーソルが前記３次元空間における奥行き方向と直交する左右方向の移動を含む移動をすることにより、前記奥行き方向の位置が異なる他のターゲットオブジェクトが設定された場合、前記選択画像における前記カーソルの前記奥行き方向の位置を当該他のターゲットオブジェクトの前記奥行き方向の位置に更新する
立体視オブジェクト操作方法。
【請求項６】
コンピュータに、
表示部に立体視表示するための右目用画像及び左目用画像に含まれるオブジェクトであって、仮想的な３次元空間に配置されたオブジェクトを右目で見た場合における前記オブジェクトの右目用位置に関する右目用位置情報と、前記オブジェクトを左目で見た場合における前記オブジェクトの左目用位置に関する左目用位置情報と、前記オブジェクトの形状に関する形状情報と、を含むオブジェクト情報を保持するオブジェクト情報保持部から、前記オブジェクト情報を取得するオブジェクト情報取得ステップと、
前記表示部に表示されるカーソルの前記３次元空間におけるカーソル位置を取得するカーソル位置取得ステップと、
前記カーソル位置に応じて、前記右目用画像及び前記左目用画像の一方の画像を選択画像として選択する画像選択ステップと、
前記オブジェクト情報及び前記カーソル位置に基づいて、前記選択画像において前記カーソルと重ねて表示されるオブジェクトをターゲットオブジェクトとして設定するターゲットオブジェクト設定ステップと、
前記カーソルが前記３次元空間における奥行き方向と直交する左右方向の移動を含む移動をすることにより、前記ターゲットオブジェクト設定ステップにより前記奥行き方向の位置が異なる他のターゲットオブジェクトが設定された場合、前記選択画像における前記カーソルの前記奥行き方向の位置を当該他のターゲットオブジェクトの前記奥行き方向の位置に更新するカーソル位置更新ステップと、
を含む処理を実行させるための立体視オブジェクト操作プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の技術は、立体視オブジェクト操作装置、立体視オブジェクト操作方法、及び立体視オブジェクト操作プログラムに関する。
【背景技術】
【０００２】
立体視表示は、現在３Ｄ−ＴＶや３Ｄ−ＰＣ、ゲーム機などで用いられるようになってきており、映画やゲームなどのエンタテイメント用に普及し始めている。立体視表示には、映画やゲーム等で活用されているように臨場感を向上させるだけでなく、奥行き方向の位置が把握しやすい、奥に隠れたものを見つけやすくなる、といったメリットが存在する。将来的に立体視表示が広く普及した場合、ゲームや映画だけでなく、ＰＣ上で動作するような一般のアプリケーションでも立体視を使用することが考えられる。
【０００３】
立体視は、例えば図９に示すように、右目用と左目用とで視点位置がずれた右目用画像８０Ｒと左目用画像８０Ｌとを用意して、右目用画像８０Ｒは右目で、左目用画像８０Ｌは左目で見えるようにすることにより実現される。右目と左目で位置がずれることを視差といい、この視差のずれの大きさと向きによって奥行き位置が決まる。例えば図１０に示すように手前にあるオブジェクト（例えば木）は、図９に示すように左目用画像８０Ｌでは右目用画像８０Ｒと比べて右にずれている。この視差により奥行きを認識することは人間が日常的に行っていることであるため、自然に奥行きを認識できる。
【０００４】
この奥行きを認識しやすいというメリットを有効活用する応用の一例として、画像検索における画像の表示に立体視を適用することが考えられる。近年、デジタルカメラや携帯電話、スマートフォンの普及に伴い、気軽に写真や映像を撮影して保存することができるようになっている。この場合、大量の画像等を効率的に検索できるような手法が求められており、この分野に立体視を適用し、大量の画像を分類して配置し、欲しい画像を見つけやすくする方法が考えられる。
【０００５】
例えば、図１１に示すような多数の画像を仮想的な三次元空間に配置し、これらの画像から選択した画像と類似する画像が手前に配置されるように表示する方法や、キーワードなどの特定の条件に合致するものを手前に表示する方法がある（図１２参照）。
【０００６】
しかしながら、図１２に示すように、奥行き方向の画像が重なると見難い上、各画像同士の前後関係を把握できなくなる。
【０００７】
これに対して、立体視を適用すれば、どの画像が前にあるか、という把握が容易になる。また、奥にある画像については、右目用又は左目用のどちらかの画像で見える確率が高くなるため、奥に隠れたものを見つけやすくなるというメリットがある。
【０００８】
但し、この場合、例えば入力デバイスとしてマウス等のポインティングデバイスを用いる際に、マウスカーソルの下のオブジェクトをどのように指すのかという問題がある。
【０００９】
例えば、図１３（Ｂ）に示すように、３次元空間において観察者から見て手前に大きな四角形のオブジェクト８２が、その奥に小さな四角形のオブジェクト８４が配置されていた場合を考える。右目８６Ｒの視野８８Ｒと左目８６Ｌの視野８８Ｌは異なるので、図１３（Ａ）に示すように、右目用画像９０Ｒと左目用画像９０Ｌとではオブジェクト８２の位置が大きくずれて表示される。これは、手前に存在するオブジェクト８２の方が、奥にあるオブジェクト８４よりも視差が大きくなるからである。このため、図１３（Ａ）に示すように、右目用画像９０Ｒと左目用画像９０Ｌとで画面上の同じ座標ＡにカーソルＣＳを表示した場合、右目用画像９０Ｒではオブジェクト８２を指し、左目用画像９０Ｌではオブジェクト８４を指すこととなる。このように別々のオブジェクトを指すこととなるため、結果的にカーソルの表示がおかしくなり、立体感が損なわれる。
【００１０】
そこで、図１４に示すように、左目用画像９０Ｌ及び右目用画像９０Ｒにおいて、手前のオブジェクト８２上の同じ位置ＢにカーソルＣＳを表示させるようにした場合、オブジェクト８２上でカーソルが移動する場合は問題ない。
【００１１】
しかしながら、奥のオブジェクト８４を選択するためにカーソルＣＳを移動させた場合に、カーソルＣＳの奥行き位置を変更せずに単に左方向に移動させると、カーソルＣＳの位置が右目用画像９０Ｒでは奥のオブジェクト８４上に存在しないため選択できない。この場合、図１４（Ａ）に示すように、カーソルＣＳの奥行き位置を指定してカーソルＣＳが左目用画像９０Ｌでも右目用画像９０Ｒ上でも奥のオブジェクト８４上に位置するようにすればよいが、奥行き位置を指定する操作が煩わしいという問題がある。
【００１２】
そこで、図１５に示すように、常に何れかのオブジェクトの手前にカーソルＣＳが位置するように奥行き位置を自動的に変更すれば、オブジェクトを選択できないということはなくなる。
【００１３】
常に何れかのオブジェクトの手前にカーソルＣＳが移動させる方法としては、図１６に示すように、カーソルＣＳを奥行き方向に移動させた場合に最初にぶつかるオブジェクトの手前にカーソルＣＳを移動させる方法が考えられる。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特公平７−１２０４４０号公報
【特許文献２】特開平１１−２３２０１０号公報
【特許文献３】特開平６−６０１６４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
しかしながら、この場合、図１７（Ａ）に示すように、左目用画像９０Ｌでは、奥のオブジェクト８４の手前に移動させたカーソルＣＳが手前のオブジェクト８２によって隠れてしまうため、立体視できなくなるという問題がある。
【００１６】
開示の技術は、カーソルの奥行き位置を指定する操作を必要とすることなく、奥行き位置が異なる立体視されたオブジェクトの中から所望のオブジェクトを選択する操作を可能にすることが目的である。
【課題を解決するための手段】
【００１７】
開示の技術は、オブジェクト情報取得部は、オブジェクト情報を保持するオブジェクト情報保持部から、オブジェクト情報を取得する。オブジェクト情報は、表示部に立体視表示するための右目用画像及び左目用画像に含まれるオブジェクトであって、仮想的な３次元空間に配置されたオブジェクトを右目で見た場合におけるオブジェクトの右目用位置に関する右目用位置情報を含む。また、オブジェクト情報は、オブジェクトを左目で見た場合におけるオブジェクトの左目用位置に関する左目用位置情報を含む。また、オブジェクト情報は、オブジェクトの形状に関する形状情報を含む。カーソル位置取得部は、表示部に表示されるカーソルの３次元空間におけるカーソル位置を取得する。画像選択部は、カーソル位置に応じて、右目用画像及び左目用画像の一方の画像を選択画像として選択する。ターゲットオブジェクト設定部は、オブジェクト情報及びカーソル位置に基づいて、選択画像においてカーソルと重ねて表示されるオブジェクトをターゲットオブジェクトとして設定する。カーソル位置更新部は、カーソルが左右方向の移動を含む移動をすることにより、奥行き方向の位置が異なる他のターゲットオブジェクトが設定された場合、カーソルの奥行き方向の位置を他のターゲットオブジェクトの奥行き方向の位置に更新する。
【発明の効果】
【００１８】
開示の技術は、カーソルの奥行き位置を指定する操作を必要とすることなく、奥行き位置が異なる立体視されたオブジェクトの中から所望のオブジェクトを選択する操作を可能にすることができる、という効果を有する。
【図面の簡単な説明】
【００１９】
【図１】立体視オブジェクト操作装置の機能ブロック図である。
【図２】立体視オブジェクト操作装置として機能するコンピュータの概略ブロック図である。
【図３】立体視オブジェクト操作処理の一例を示すフローチャートである。
【図４】ターゲットオブジェクト設定処理の一例を示すフローチャートである。
【図５】３次元空間におけるオブジェクト位置、カーソル位置、視点位置等について説明するための図である。
【図６】中間面について説明するための図である。
【図７】（Ａ）は右目用画像及び左目用画像の一例を示す図、（Ｂ）は奥行き方向におけるオブジェクトの位置関係を示す図である。
【図８】（Ａ）は右目用画像及び左目用画像におけるカーソルの移動の一例を示す図、（Ｂ）は奥行き方向におけるオブジェクトの位置関係を示す図である。
【図９】立体視表示する場合における左目用画像及び右目用画像の一例を示す図である。
【図１０】視差について説明するための図である。
【図１１】画像検索の一例について説明するための図である。
【図１２】画像検索で立体視表示した場合の一例について説明するための図である。
【図１３】（Ａ）は右目用画像及び左目用画像のカーソルの表示の一例を示す図、（Ｂ）は奥行き方向におけるオブジェクトの位置関係を示す図である。
【図１４】（Ａ）は右目用画像及び左目用画像のカーソルの移動の一例を示す図、（Ｂ）は奥行き方向におけるオブジェクトの位置関係を示す図である。
【図１５】（Ａ）は右目用画像及び左目用画像のカーソルの移動の一例を示す図、（Ｂ）は奥行き方向におけるオブジェクトの位置関係を示す図である。
【図１６】カーソルの移動の一例を示す図である。
【図１７】（Ａ）は右目用画像及び左目用画像のカーソルの移動の一例を示す図、（Ｂ）は奥行き方向におけるオブジェクトの位置関係を示す図である。
【発明を実施するための形態】
【００２０】
以下、図面を参照して開示の技術の実施形態の一例を詳細に説明する。
【００２１】
（第１実施形態）
【００２２】
図１には、第１実施形態に係る立体視表示装置１１が示されている。立体視表示装置１１は、立体視オブジェクト操作装置１０、ポインティングデバイス１２、カーソル位置保持部１４、オブジェクト情報保持部１６、画像保持部１８、及び表示部２０を備えている。なお、立体視表示装置１１は、例えば３次元立体視対応のパーソナルコンピュータやテレビ、ゲーム機、携帯電話、スマートフォン等に搭載することができる。
【００２３】
ポインティングデバイス１２は、表示部２０に表示された画像に含まれるオブジェクトを選択したりするための入力デバイスであり、例えばマウスやタッチパッド、トラックボール等が用いられる。
【００２４】
カーソル位置保持部１４は、ポインティングデバイス１２の操作により移動するカーソルの仮想的な３次元空間におけるカーソル位置を保持する。
【００２５】
オブジェクト情報保持部１６は、表示部２０に立体視表示するための右目用画像及び左目用画像に含まれるオブジェクトに関するオブジェクト情報を保持する。
【００２６】
オブジェクト情報は、仮想的な３次元空間に配置されたオブジェクトを右目で見た場合におけるオブジェクトの右目用位置に関する右目用位置情報と、オブジェクトを左目で見た場合におけるオブジェクトの左目用位置に関する左目用位置情報と、を含む。さらに、オブジェクト情報は、オブジェクトの形状に関する形状情報を含む。形状情報は、オブジェクトの形状を特定するための情報であり、例えばオブジェクトが立方体であれば、幅や高さ、厚み等の情報である。また、オブジェクトは２次元的な画像や映像を表示したものでもよく、その場合は、形状情報は幅や高さ等の情報である。
【００２７】
画像保持部１８は、表示部２０に表示される画像を立体視表示するための右目用画像及び左目用画像を保持する。
【００２８】
表示部２０は、画像保持部１８から出力された左目用画像及び右目用画像を表示することにより立体視表示する３次元表示デバイスであり、液晶ディスプレイ等が用いられる。
【００２９】
立体視オブジェクト操作装置１０は、カーソル位置取得部３０、画像選択部３２、ターゲットオブジェクト設定部３４、カーソル位置算出部３６、及びカーソル位置更新部３８を備えている。
【００３０】
カーソル位置取得部３０は、表示部２０に表示されるカーソルの３次元空間におけるカーソル位置をカーソル位置保持部１４から取得する。
【００３１】
画像選択部３２は、カーソル位置に応じて、右目用画像及び左目用画像の一方の画像を選択画像として選択する。
【００３２】
ターゲットオブジェクト設定部３４は、オブジェクト情報保持部１６に保持されたオブジェクト情報及びカーソル位置取得部３０が取得したカーソル位置に基づいて、選択画像上でカーソルと重ねて表示されるオブジェクトをターゲットオブジェクトとして選択する。
【００３３】
カーソル位置算出部３６は、ターゲットオブジェクト設定部３４により選択されたターゲットオブジェクト上におけるカーソル位置（ターゲットオブジェクト上カーソル位置）を算出する。
【００３４】
カーソル位置更新部３８は、カーソルが移動して奥行き方向の位置が異なる他のターゲットオブジェクトが設定された場合、選択画像におけるカーソルの奥行き方向の位置を当該他のターゲットオブジェクトの奥行き方向の位置に更新する。
【００３５】
また、カーソル位置更新部３８は、非選択画像の他のターゲットオブジェクト上におけるカーソルのターゲットオブジェクト上カーソル位置を、選択画像におけるターゲットオブジェクト上カーソル位置と同じ位置に更新する。
【００３６】
立体視オブジェクト操作装置１０は、例えば図２に示すコンピュータ４０で実現することができる。コンピュータ４０はＣＰＵ４２、メモリ４４、及び不揮発性の記憶部４６を備え、これらはバス４８を介して互いに接続されている。
【００３７】
また、記憶部４６はフラッシュメモリやＨＤＤ(Hard Disk Drive)等によって実現できる。記録媒体としての記憶部４６には、コンピュータ４０を立体視オブジェクト操作装置１０として機能させるための立体視オブジェクト操作プログラム５０が記憶されている。
【００３８】
ＣＰＵ７２は、立体視オブジェクト操作プログラム５０を記憶部４６から読み出してメモリ７４に展開し、立体視オブジェクト操作プログラム５０が有するプロセスを順次実行する。
【００３９】
立体視オブジェクト操作プログラム５０は、カーソル位置取得プロセス５１、画像選択プロセス５２、ターゲットオブジェクト設定プロセス５３、カーソル位置算出プロセス５４、カーソル位置更新プロセス５５を有する。ＣＰＵ７２は、カーソル位置取得プロセス５１を実行することで、図１に示すカーソル位置取得部３０として動作する。また、ＣＰＵ７２は、画像選択プロセス５２を実行することで、図１に示す画像選択部３２として動作する。また、ＣＰＵ７２は、ターゲットオブジェクト設定プロセス５３を実行することで、図１に示すターゲットオブジェクト設定部３４として動作する。また、ＣＰＵ７２は、カーソル位置算出プロセス５４を実行することで、図１に示すカーソル位置算出部３６として動作する。またＣＰＵ７２は、カーソル位置更新プロセス５５を実行することで、図１に示すカーソル位置更新部３８として動作する。
【００４０】
これにより、立体視オブジェクト操作プログラム５０を実行したコンピュータ４０が、立体視オブジェクト操作装置１０として機能することになる。なお、立体視オブジェクト操作プログラム５０は開示の技術における立体視オブジェクト操作プログラムの一例である。
【００４１】
なお、立体視オブジェクト操作装置１０は、例えば半導体集積回路、より詳しくはＡＳＩＣ(Application Specific Integrated Circuit)等で実現することも可能である。
【００４２】
次に、第１実施形態の作用を説明する。第１実施形態に係る立体視オブジェクト操作装置１０では、ポインティングデバイス１２を操作することにより、表示部２０に表示された画像の任意の位置をカーソルによって指し示すことができる。このときのカーソル位置は、カーソル位置保持部１４に保持され、ポインティングデバイス１２が操作される毎に更新される。また、ポインティングデバイス１２が操作されてカーソル位置が更新されると、図３に示す立体視オブジェクト操作処理が実行される。
【００４３】
まず、ステップ１００において、カーソル位置取得部３０が、カーソル位置保持部１４からカーソル位置を取得する。
【００４４】
本実施形態では、図５に示すように、仮想的な３次元空間内のカーソルのカーソル位置をＣ（ｘ，ｙ，ｚ）、オブジェクトのオブジェクト位置をＯ（Ｏｘ，Ｏｙ，Ｏｚ）とする。同図において左右方向がＸ軸方向、上下方向がＺ軸方向、図５の紙面に垂直な方向がＹ軸方向であり、ｙ＝０のＸ−Ｚ平面を示している。また、立体視表示を行うための右目用画像の視点位置をＲ（Ｒｘ，０，０）、右目用画像の視点ベクトルをＤＲ（ＦＲ，０，１）、左目用画像の視点位置をＬ（Ｌｘ，０，０）、左目用画像の視点ベクトルをＤＬ（ＦＬ，０，１）とする。
【００４５】
なお、本実施形態では、ＦＲ＝ＦＬ＝０、すなわち右目用画像の視点方向と左目用画像の視点方向が平行である場合について説明する。また、図５に示すように、本実施形態では、カーソル位置Ｃ、右目用画像の視点位置Ｒ、右目用画像の視点ベクトルＤＲ、左目用画像の視点位置Ｌ、左目用画像の視点ベクトルＤＬは、全てｙ＝０のＸ−Ｚ平面上にあるものとする。また、計算の簡単化のため、視点位置Ｒ，Ｌの奥行き位置は同一とする。すなわち、本実施形態で、視点位置Ｒ，Ｌのｚ座標を何れもｚ＝０とすると共に、視点ベクトルＤＲ，ＤＬのｚ成分を何れも１とする。また、視点位置Ｒのｘ座標と視点位置Ｌのｘ座標との関係をＬｘ＝−Ｒｘとすることより、視点位置Ｒ，Ｌの中間の座標が（０，０，０）となる。本実施形態では、視点ベクトルＤＲ、ＤＬは平行なので、右目用画像と左目用画像は、平行な面に投影されていることになる。
【００４６】
また、左目用画像及び右目用画像の各々に含まれるオブジェクトの３次元空間における位置及びサイズは、下記の表１に示すようなオブジェクト情報テーブルに定義されている。このオブジェクト情報テーブルは、オブジェクト情報保持部１６に保持されている。
【００４７】
【表１】
0005845990.tif 000002
【００４８】
表１に示すように、オブジェクト情報テーブルは、各オブジェクトに固有のオブジェクトＩＤ、３次元空間におけるｘ座標、ｙ座標、ｚ座標、オブジェクトの幅（Ｘ方向の長さ）、高さ（Ｙ方向の長さ）、奥行き（Ｚ方向の長さ）の各情報を含んでいる。
【００４９】
仮想的な３次元空間において定義されたオブジェクトは、３次元座標を２次元座標に投影する方法の一つである透視変換により、２次元画像である右目用画像及び左目用画像にそれぞれ投影される。
【００５０】
透視変換では、実際の３次元空間を見た場合の見え方に近い見え方となるように各座標を変換することができる。例えば２次元空間におけるオブジェクトのｘ座標をｘ２、３次元空間におけるオブジェクトのｘ座標をｘ、オブジェクトに対する焦点距離（画角）をｆとした場合、２次元空間におけるオブジェクトのｘ座標ｘ２は、次の（１）式で算出することができる。
ｘ２＝ｘ・（ｆ／ｚ）    ・・・（１）
【００５１】
同様に、例えば２次元空間におけるオブジェクトのｙ座標をｙ２、３次元空間におけるオブジェクトのｙ座標をｙ、オブジェクトに対する焦点距離をｆとした場合、２次元空間におけるオブジェクト情報テーブルのｙ座標ｙ２は、次の（２）式で算出される。
ｙ２＝ｙ・（ｆ／ｚ）    ・・・（２）
【００５２】
なお、（１）、（２）式において、右目用画像におけるオブジェクトのｘ座標ｘ２、ｙ座標ｙ２を求める際には、焦点距離ｆは、右目の視点位置Ｒに対する焦点距離ｆｒを用いる。また、左目用画像におけるオブジェクトのｘ座標ｘ２、ｙ座標ｙ２を求める際には、焦点距離ｆは、左目の視点位置Ｌに対する焦点距離ｆｌを用いる。
【００５３】
このように、上記表１で示すオブジェクト情報テーブルと、右目の視点位置Ｒ及び左目の視点位置Ｌから各オブジェクトまでの焦点距離ｆｒ、ｆｌと、に基づいて、右目用画像及び左目用画像における各オブジェクトのｘ２、ｙ２座標を各々求めることができる。
【００５４】
オブジェクト情報保持部１６には、上記（１）、（２）式で求めた各オブジェクトのｘ２座標、ｙ２座標にｚ座標、幅、高さの情報を加えた情報が、下記の表２で示すようなオブジェクト右目用位置テーブル、オブジェクト左目用位置テーブルとして保持される。なお、本実施形態では、各オブジェクトは四角形であり、各オブジェクトのｘ２座標、ｙ２座標は、Ｘ−Ｙ平面において左上の座標を表すものとする。
【００５５】
【表２】
0005845990.tif 000003
【００５６】
ステップ１０２では、画像選択部３２が、カーソルのｘ座標及びｙ座標に応じて、すなわち、カーソルの左右方向の位置に応じて、表示部２０に表示される画像を立体視表示するための右目用画像及び左目用画像の何れか一方の画像を選択する。具体的には、カーソル位置が３次元空間において予め定めた中間面より右側にある場合は左目用画像を、中間面より左側にある場合は、右目用画像を選択する。ここで、図６に示すように、中間面Ｈは、左目の視点位置Ｌのｘ座標Ｌｘと右目の視点位置Ｒのｘ座標Ｒｘとの中間のｘ座標Ｃｘ（＝（Ｌｘ＋Ｒｘ）／２＝０）を含む平面である。
【００５７】
すなわち、取得したカーソル位置のｘ座標が０未満の場合はカーソルが中間面より左側に存在し、０以上の場合はカーソルが右側にあると判断する。なお、以下では、ステップ１０２で選択された画像を選択画像と称する。
【００５８】
ステップ１０４では、ターゲットオブジェクト設定部３４が、選択画像においてカーソルと重ねて表示されるオブジェクトをターゲットオブジェクトとして設定する。具体的には、ターゲットオブジェクト設定部３４が、図４に示すターゲットオブジェクト設定処理を実行する。
【００５９】
まず、ステップ２００では、選択画像に対応したオブジェクト右目用位置テーブル又はオブジェクト左目用位置テーブルを参照して、未だ選択されていないオブジェクトを選択する。そして、選択したオブジェクトのオブジェクト位置（ｘ２座標、ｙ２座標）を取得する。なお、オブジェクトの選択は、例えばオブジェクトＩＤの値の小さい方から行う。
【００６０】
ステップ２０２では、カーソル位置が選択したオブジェクト内であるか否かを判断する。具体的には、まず選択画像におけるカーソルの２次元位置を、透視変換を用いて求める。
【００６１】
選択画像が右目用画像である場合、右目用画像におけるカーソルの２次元のｘ座標ｘｒ２は、次の（３）式で求められる。
ｘｒ２＝（ｘ＋（Ｒｘ−Ｌｘ）／２）・（ｆｒ／ｚ）    ・・・（３）
【００６２】
同様に、選択画像が左目用画像である場合、左目用画像におけるカーソルの２次元のｘ座標ｘｌ２は、次の（４）式で求められる。
ｘｌ２＝（ｘ＋（Ｒｘ−Ｌｘ）／２）・（ｆｌ／ｚ）    ・・・（４）
【００６３】
また、選択画像が右目用画像である場合、カーソルの２次元のｙ座標ｙｒ２は、次の（５）式で求められる。
ｙｒ２＝ｙ・（ｆｒ／ｚ）    ・・・（５）
【００６４】
また、選択画像が左目用画像である場合、カーソルの２次元のｙ座標ｙｌ２は、次の（６）式で求められる。
ｙｌ２＝ｙ・（ｆｌ／ｚ）    ・・・（６）
【００６５】
次に、例えば選択画像が右目用画像である場合において、オブジェクトの２次元位置を（ｏｘ，ｏｙ）とし、オブジェクトの幅をｏｗ、高さをｏｈとした場合に、カーソルのｘ座標ｘｒ２、ｙ座標ｙｒ２が、次の（７）、（８）式を満たすか否かを判断する。なお、選択画像が左目用画像である場合も同様に判断する。
ｏｘ≦ｘｒ２≦ｏｘ＋ｏｗ    ・・・（７）
ｏｙ≦ｙｒ２≦ｏｙ＋ｏｈ    ・・・（８）
【００６６】
上記（７）、（８）式を満たす場合、カーソルがオブジェクト上に位置すると判断することができる。
【００６７】
そして、カーソル位置がオブジェクト内に存在する場合には、ステップ２０４へ移行し、カーソル位置がオブジェクト外に存在する場合には、ステップ２１０へ移行する。
【００６８】
ステップ２０４では、既に設定されたターゲットオブジェクト候補が有るか否かを判断する。そして、既に設定されたターゲットオブジェクト候補が有る場合にはステップ２０６へ移行し、まだターゲットオブジェクト候補が設定されていない場合は、ステップ２０８へ移行する。
【００６９】
ステップ２０６では、選択されたオブジェクトが既に設定されたターゲットオブジェクト候補より手前側に存在するか否か、すなわち、選択されたオブジェクトのｚ座標がターゲットオブジェクト候補のｚ座標以下であるか否かを判断する。そして、選択されたオブジェクトのｚ座標がターゲットオブジェクト候補のｚ座標以下の場合、すなわち選択されたオブジェクトが既に設定されているターゲットオブジェクト候補よりも手前側に存在する場合には、ステップ２０８へ移行する。一方、選択されたオブジェクトのｚ座標がターゲットオブジェクト候補のｚ座標より大きい場合、すなわち選択されたオブジェクトが既に設定されているターゲットオブジェクト候補よりも奥側に存在する場合には、ステップ２１０へ移行する。
【００７０】
ステップ２０８では、ステップ２００で選択されたオブジェクトをターゲットオブジェクト候補として設定する。
【００７１】
ステップ２１０では、未だ選択されていない他のオブジェクトが存在するか否かを判断し、未だ選択されていない他のオブジェクトが存在する場合にはステップ２００へ戻って上記と同様の処理を実行する。一方、未だ選択されていない他のオブジェクトが存在しない場合には、ステップ２１２へ移行する。
【００７２】
ステップ２１２では、ターゲットオブジェクト候補が設定されている場合には、これをターゲットオブジェクトとして設定する。ターゲットオブジェクト候補が設定されていない場合、すなわちカーソルがどのオブジェクト内にも存在しない場合には、ターゲットオブジェクトは設定されない。
【００７３】
図３に戻って、ステップ１０６では、ターゲットオブジェクト設定部３４が、ターゲットオブジェクトが設定されたか否かを判断する。すなわち、図４の処理でターゲットオブジェクトが設定されたか否かを判断する。そして、ターゲットオブジェクトが設定された場合には、ステップ１０８へ移動し、ターゲットオブジェクトが設定されなかった場合には、ステップ１１６へ移動する。ステップ１１６では、カーソル位置更新部３８が、左目用画像及び右目用画像の各々について、ポインティングデバイス１２の操作量に応じてカーソルを移動させる。
【００７４】
ステップ１０８では、カーソル位置算出部３６が、ステップ１０４で設定されたターゲットオブジェクト上におけるカーソルのターゲットオブジェクト上カーソル位置（２次元座標）を算出する。
【００７５】
具体的には、例えば選択画像が右目用画像である場合には、ターゲットオブジェクトオブジェクト上カーソル位置（ＣＳｘ、ＣＳｙ）は、次の（９）、（１０）式により求めることができる。なお、選択画像が左目用画像である場合は、ｘｒ２をｘｌ２に、ｙｒ２をｙｌ２に置き換えて算出すればよい。
ＣＳｘ＝ｘｒ２−ｏｘ    ・・・（９）
ＣＳｙ＝ｙｒ２−ｏｙ    ・・・（１０）
【００７６】
ステップ１１０では、カーソル位置更新部３８が、ステップ１０４で設定されたターゲットオブジェクトが、それまでのターゲットオブジェクトと奥行き位置が異なるか否かを判断する。すなわち、ターゲットオブジェクトのｚ座標に変更があったか否かを判断する。そして、ターゲットオブジェクトのｚ座標に変更があった場合はステップ１１２へ移行し、ターゲットオブジェクトのｚ座標に変更がない場合には、ステップ１１６へ移動する。
【００７７】
ステップ１１２では、カーソル位置更新部３８が、カーソルの奥行き位置がターゲットオブジェクトの奥行き位置と同一となるように、カーソルのｚ座標を更新し、カーソルを移動させる。また、ターゲットオブジェクトが変更されてカーソルのｚ座標をｚ１からｚ２に更新した場合、カーソルの上下左右位置（ｘ座標及びｙ座標）も変化する。このため、例えば選択画像が右目用画像である場合には、カーソルのｘ座標及びｙ座標も次の（１１）、（１２）式により更新する。なお、選択画像が左目用画像の場合は、焦点距離ｆｒをｆｌに置き換えて計算すればよい。
ｘ＝ｘ・ｚ２／ｆｒ−（Ｒｘ−Ｌｘ）／２＝（ｘ＋（Ｒｘ−Ｌｘ）／２）・ｚ２／ｚ１−（Ｒｘ−Ｌｘ）／２        ・・・（１１）
ｙ＝ｙ・（ｆｒ／ｚ２）      ・・・（１２）
【００７８】
ステップ１１４では、カーソル位置更新部３８が、非選択画像におけるターゲットオブジェクト上カーソル位置が、選択画像におけるターゲットオブジェクト上カーソル位置と同じ位置となるようにカーソルを移動させる。なお、選択画像が右目用画像の場合は、非選択画像は左目用画像であり、選択画像が左目用画像の場合は、非選択画像は右目用画像である。
【００７９】
具体的には、上記（９）、（１０）式により算出したターゲットオブジェクト上カーソル位置（ＣＳｘ、ＣＳｙ）を用いて、下記の（１３）、（１４）式により、非選択画像におけるカーソル位置（ｘ、ｙ）を算出して更新する。
ｘ＝ＣＳｘ＋ｏｘ    ・・・（１３）
ｙ＝ＣＳｙ＋ｏｙ    ・・・（１４）
【００８０】
ここで、図７（Ａ）に示すような立体視用として左目用画像６０Ｌ、右目用画像６０Ｒが表示部２０に表示される場合を考える。左目用画像６０Ｌ、右目用画像６０Ｒは、同図（Ｂ）に示すように、観察者から見て手前に大きい四角形のオブジェクト６２が、その奥に小さい四角形のオブジェクト６４、６６が配置された３次元空間を観察した場合に立体視表示するための画像である。また、左目用画像６０Ｌは、同図（Ｂ）に示すように、左目６８Ｌの視野７０Ｌに対応した画像であり、右目用画像６０Ｒは、右目６８Ｒの視野７０Ｒに対応した画像である。このため、同図（Ａ）に示すように、左目用画像６０Ｌでは、奥に位置するオブジェクト６４の一部の領域６４Ａは、右目６８Ｒでは見えない領域であり、右目用画像６０Ｒでは、オブジェクト６６の一部の領域６６Ａは、左目６８Ｌで見えない領域となる。
【００８１】
このような場合において、本実施形態では、例えば図８（Ｂ）に示すように、カーソルＣＳの位置が中間面Ｈよりも左側に有る場合には、図３のステップ１０２では、右目用画像６０Ｒが選択される。
【００８２】
そして、ポインティングデバイス１２が操作されてターゲットオブジェクトをオブジェクト６２からオブジェクト６４に変更するように指示されると、右目用画像６０Ｒでは、カーソルＣＳはポインティングデバイス１２の操作に応じて徐々に左側に移動する。すなわち、図８（Ａ）の矢印７２で示すようにカーソルＣＳは連続的に移動する。
【００８３】
一方、左目用画像６０Ｌにおいては、カーソルＣＳがオブジェクト６２上にあるうちは、図８（Ａ）の矢印７４Ａで示すように、カーソルＣＳはポインティングデバイス１２の操作に応じて徐々に左側に連続的に移動する。そして、ターゲットオブジェクトがオブジェクト６２からオブジェクト６４に変化した場合、カーソルＣＳは、図８（Ａ）に示すように、右目で見えない領域６４Ａを越えてオブジェクト６４上に移動する。その後、図８（Ａ）の矢印７４Ｂで示すように、カーソルＣＳは連続的に左側へ移動する。このように、右目用画像６０ＲではカーソルＣＳは連続的に移動するのに対し、左目用画像６０Ｌでは、右目で見えない領域６４Ａを越えて不連続に移動するため、カーソルＣＳの立体視表示がおかしくなるのを防ぐことができる。これにより、ユーザーがカーソルの奥行き位置を指定する操作を行うことなく、奥行き位置が異なる立体視されたオブジェクトの中から所望のオブジェクトを選択する操作を行うことが可能となる。
【００８４】
なお、カーソルＣＳを移動させる場合、カーソルＣＳの３次元位置（ｘ，ｙ，ｚ）の（ｘ，ｙ）のみにポインティングデバイス１２の移動量（ｄｘ，ｄｙ）を加算する。ただし、このままでは、オブジェクトの奥行き位置に応じてカーソルＣＳの移動速度が変化してしまうため、移動速度が変化しないように移動量ｄｘ、ｄｙを補正することが好ましい。例えば３次元空間において予め基準となる奥行き位置をｚｔとして定め、次の（１５）、（１６）式により移動量ｄｘ’、ｄｙ’を算出して、カーソルＣＳのｘ座標、ｙ座標に加算すればよい。
ｄｘ’＝ｄｘ・（ｚ／ｚｔ）    ・・・（１５）
ｄｙ’＝ｄｙ・（ｚ／ｚｔ）    ・・・（１６）
【００８５】
（第２実施形態）
【００８６】
次に開示の技術の第２実施形態について説明する。なお、第２実施形態では、第１実施形態と異なる部分についてのみ説明する。
【００８７】
第１実施形態では、右目用画像の視点ベクトルＤＲのｘ成分であるＦＲと左目用画像の視点ベクトルＤＬのｘ成分であるＦＬが共に０、すなわち右目用画像の視点方向と左目用画像の視点方向が平行である場合について説明した。第２実施形態では、ＦＬ≠０で、且つ、ＦＬ＝−ＦＲの場合について説明する。すなわち、右目用画像の視点方向と左目用画像の視点方向が平行でない場合について説明する。
【００８８】
この場合、視点位置Ｌから見たオブジェクトの位置ＯＬ（Ｏｘ，Ｏｙ，Ｏｚ）、視点位置Ｒから見たオブジェクトの位置ＯＲ（Ｏｘ，Ｏｙ，Ｏｚ）は次の（１７）、（１８）で表される。
【００８９】
【数１】
0005845990.tif 000004
【００９０】
従って、第１実施形態で説明したオブジェクト位置Ｏに代えて上記（１７）、（１８）で表されるオブジェクト位置ＯＬ又はＯＲを用いればよい。すなわち、例えばオブジェクトの３次元位置を２次元位置に透視変換する際には、上記（１７）、（１８）で示すＯｘ，Ｏｙを用いればよい。なお、カーソルの２次元位置を透視変換を用いて算出する際も、上記のオブジェクトの３次元位置を２次元位置に透視変換するのと同様にできる。
【００９１】
また、図３のステップ１１２でカーソルの奥行き位置を更新してカーソルをターゲットオブジェクト上に移動させる際には、ターゲットオブジェクトのオブジェクト位置Ｏを上記（１７）、（１８）で示されるオブジェクト位置ＯＬ、ＯＲに一旦変換する。そして、オブジェクト位置ＯＬ、ＯＲを用いて第１実施形態と同様の計算をした後、取得したオブジェクト位置を逆変換することによりカーソル位置を取得する。
【００９２】
例えば左目用画像の場合を例として、ターゲットオブジェクトのｚ座標がｚ１の場合に上記（１７）で求めたオブジェクト位置をＯＬ１（Ｏｘ１’、Ｏｙ、Ｏｚ１’）とする。また、ターゲットオブジェクトのｚ座標がｚ１からｚ２に変化した場合に上記（１７）で求めたオブジェクト位置をＯＬ２（Ｏｘ２’、Ｏｙ、Ｏｚ２’）とする。この場合、Ｏｘ２’，Ｏｙ’は次の（１９）、（２０）式で表される。
Ｏｘ２’＝Ｏｘ１’・（Ｏｚ２’／Ｏｚ１’）      ・・・（１９）
Ｏｙ’＝Ｏｙ・（Ｏｚ２’／Ｏｚ１’）      ・・・（２０）
【００９３】
そして、オブジェクト位置（Ｏｘ２’、Ｏｙ’、ｚ２）を視線ベクトルのｘ成分ＦＬを用いて次の（２１）、（２２）、（２３）式で逆変換する。
ｘ’＝Ｏｘ２’＋Ｌｘ＋ｚ２・ＦＬ    ・・・（２１）
ｙ’＝Ｏｙ’    ・・・（２２）
ｚ’＝ｚ２−Ｏｘ２’・ＦＬ    ・・・（２３）
【００９４】
なお、右目用画像の場合も上記と同様である。このようにして算出した（ｘ’、ｙ’、ｚ’）でカーソル位置を更新することにより、右目と左目の視点方向が平行でない場合でも、奥行き位置が異なる立体視されたオブジェクトの中から所望のオブジェクトを適切に選択する操作が可能となる。
【００９５】
なお、上記で開示した技術は、立体視表示専用のメガネの着用が必要な立体視表示装置、メガネの着用が不要な立体視表示装置の何れにも適用可能である。また、上記では、カーソルの形状を矢印の形状とした場合について説明したが、カーソルの形状は、矢印の形状以外の他の形状であってもよい。
【００９６】
また、上記では開示の技術に係る立体視オブジェクト操作プログラムの一例である立体視オブジェクト操作プログラムが記憶部７６に予め記憶（インストール）されている態様を説明したが、これに限定されるものではない。開示の技術に係る立体視オブジェクト操作プログラムは、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等の記録媒体に記録されている形態で提供することも可能である。
【００９７】
本明細書に記載された全ての文献、特許出願及び技術規格は、個々の文献、特許出願及び技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。
【００９８】
以上の実施形態に関し、更に以下の付記を開示する。
【００９９】
（付記１）
前記コンピュータは、
前記ターゲットオブジェクト上における前記カーソルのターゲットオブジェクト上カーソル位置を算出し、
前記右目用画像及び前記左目用画像の他方の画像である非選択画像の前記他のターゲットオブジェクト上における前記カーソルの前記ターゲットオブジェクト上カーソル位置を、前記選択画像の前記他のターゲットオブジェクト上における前記カーソルの前記ターゲットオブジェクト上カーソル位置と同じ位置に更新する
請求項５記載の立体視オブジェクト操作方法。
【０１００】
（付記２）
前記画像選択部は、前記カーソルの前記左右方向における位置が、前記右目の位置と前記左目の位置との中間位置よりも左側である場合は、前記右目用画像を選択し、前記カーソルの前記左右方向における位置が、前記中間位置よりも右側である場合は、前記左目用画像を選択する
請求項５又は付記１記載の立体視オブジェクト操作方法。
【０１０１】
（付記３）
前記カーソルが前記左右方向の移動を含む移動をした場合に、前記カーソルの移動速度が前記カーソルの奥行き位置に応じて変化しないように、前記カーソルの移動量を補正する
請求項５、付記１、及び付記２の何れかに記載の立体視オブジェクト操作方法。
【０１０２】
（付記４）
前記ターゲットオブジェクト上における前記カーソルのターゲットオブジェクト上カーソル位置を算出するカーソル位置算出ステップをさらに備え、
前記カーソル位置更新ステップは、前記右目用画像及び前記左目用画像の他方の画像である非選択画像の前記他のターゲットオブジェクト上における前記カーソルの前記ターゲットオブジェクト上カーソル位置を、前記選択画像の前記他のターゲットオブジェクト上における前記カーソルの前記ターゲットオブジェクト上カーソル位置と同じ位置に更新する
請求項６記載の立体視オブジェクト操作プログラム。
【０１０３】
（付記５）
前記画像選択ステップは、前記カーソルの前記左右方向における位置が、前記右目の位置と前記左目の位置との中間位置よりも左側である場合は、前記右目用画像を選択し、前記カーソルの前記左右方向における位置が、前記中間位置よりも右側である場合は、前記左目用画像を選択する
請求項６又は付記４記載の立体視オブジェクト操作プログラム。
【０１０４】
（付記６）
前記カーソルが前記左右方向の移動を含む移動をした場合に、前記カーソルの移動速度が前記カーソルの奥行き位置に応じて変化しないように、前記カーソルの移動量を補正する
請求項６、付記４、及び付記５の何れかに記載の立体視オブジェクト操作プログラム。
【符号の説明】
【０１０５】
１０  立体視オブジェクト操作装置
１２  ポインティングデバイス
１４  カーソル位置保持部
１６  オブジェクト情報保持部
１８  画像保持部
２０  表示部
３０  カーソル位置取得部
３２  画像選択部
３４  ターゲットオブジェクト設定部
３６  カーソル位置算出部
３８  カーソル位置更新部
５０  立体視表示装置
６０Ｒ      右目用画像
６０Ｌ      左目用画像
【図１】
0005845990.tif 000005
【図２】
0005845990.tif 000006
【図３】
0005845990.tif 000007
【図４】
0005845990.tif 000008
【図５】
0005845990.tif 000009
【図６】
0005845990.tif 000010
【図７】
0005845990.tif 000011
【図８】
0005845990.tif 000012
【図９】
0005845990.tif 000013
【図１０】
0005845990.tif 000014
【図１１】
0005845990.tif 000015
【図１２】
0005845990.tif 000016
【図１３】
0005845990.tif 000017
【図１４】
0005845990.tif 000018
【図１５】
0005845990.tif 000019
【図１６】
0005845990.tif 000020
【図１７】
0005845990.tif 000021