以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。従って、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
本発明の第1の側面の画像処理システム(例えば、図1のプレゼンテーションシステム11)は、表示画像を表示する表示装置(例えば、図1のプロジェクタ25)と、前記表示画像に光を照射して、前記表示画像上に表示されるポインタ(例えば、図1の3次元ポインタ31)の位置を指示する指示装置(例えば、図1のレーザポインタ22)と、前記表示画像が表示されている領域を撮像する撮像装置(例えば、図1のカメラ23)と、前記撮像装置による撮像により得られた撮像画像に基づいて、新たに表示画像を生成する画像処理装置(例えば、図1の画像処理装置24)とから構成される画像処理システムであって、前記指示装置は、前記表示装置により表示されている前記表示画像に対して想定された仮想3次元空間上の表示位置であって、前記ポインタを表示させる表示位置を指示するための光である位置指示光を射出する位置指示光射出手段(例えば、図3の不可視光レーザ81)と、前記位置指示光とは異なる波長の光であり、前記位置指示光の光路と平行な方向への前記ポインタの移動を指示する方向指示光を射出する方向指示光射出手段(例えば、図3の不可視光レーザ83または不可視光レーザ84)とを備え、前記撮像装置は、前記表示画像に照射された前記位置指示光の像、および前記方向指示光の像を前記撮像画像として撮像し、前記画像処理装置は、前記撮像画像から、前記位置指示光と同じ波長の光の画像である位置指示光画像と、前記方向指示光と同じ波長の光の画像である方向指示光画像とを分離する分離手段(例えば、図10の幾何変換処理部222)と、前記位置指示光画像から、前記表示画像上における前記位置指示光の像の位置および形状を検出する位置指示光検出手段(例えば、図10の位置指示光検出部223)と、前記方向指示光画像から前記方向指示光の像を検出し、その検出結果に基づいて、前記ポインタの前記方向への移動が指示されたか否かを示す方向情報を出力する方向指示光検出手段(例えば、図10の前進指示光検出部224または後進指示光検出部225)と、前記位置指示光の像の位置および形状と、出力された前記方向情報とに基づいて、前記仮想3次元空間上における前記ポインタの表示位置を特定する位置特定手段(例えば、図10の座標計算部226)と、前記位置特定手段により特定された前記ポインタの表示位置に対応する前記表示画像上の位置に前記ポインタが表示された新たな表示画像を生成する表示画像生成手段(例えば、図10の表示画像処理部228)とを備え、前記表示装置は、これまで表示していた前記表示画像の表示を、生成された前記新たな表示画像に切り替える。
本発明の第2の側面の画像処理装置(例えば、図10の画像処理装置24)は、表示画像に対して想定された仮想3次元空間上の表示位置であり、ポインタ(例えば、図1の3次元ポインタ31)を表示させる表示位置を特定する画像処理装置であって、前記表示画像が表示されている領域を撮像して得られる位置指示光画像であって、前記仮想3次元空間上の前記ポインタを表示させる表示位置を指示するための位置指示光と同じ波長の光の画像である位置指示光画像から、前記表示画像上における、前記表示画像に照射された前記位置指示光の像の位置および形状を検出する位置指示光検出手段(例えば、図10の位置指示光検出部223)と、前記表示画像が表示されている前記領域を撮像して得られる第1の方向指示光画像であって、前記位置指示光の光路と平行な第1の方向への前記ポインタの移動を指示する第1の方向指示光と同じ波長であり、前記位置指示光とは異なる波長の光の画像である第1の方向指示光画像から、前記表示画像に照射された前記第1の方向指示光の像を検出し、その検出結果に基づいて、前記ポインタの前記第1の方向への移動が指示されたか否かを示す第1の方向情報を出力する第1の方向指示光検出手段(例えば、図10の前進指示光検出部224)と、前記位置指示光の像の位置および形状と、出力された前記第1の方向情報とに基づいて、前記仮想3次元空間上における前記ポインタの表示位置を特定する位置特定手段(例えば、図10の座標計算部226)とを備える。
画像処理装置には、前記位置特定手段により特定された前記ポインタの表示位置に対応する前記表示画像上の位置に前記ポインタが表示された新たな表示画像を生成する表示画像生成手段(例えば、図10の表示画像処理部228)をさらに設けることができる。
前記位置特定手段には、前記位置指示光の像の位置に対応する前記仮想3次元空間上の位置から、前記ポインタの表示位置までの長さを定める奥行き長さを記憶させ、前記第1の方向情報に基づいて前記奥行き長さを変更させ、さらに変更後の前記奥行き長さと、前記位置指示光の像の位置および形状とに基づいて、前記ポインタの表示位置を特定させる(例えば、図29のステップS164乃至ステップS168の処理)ことができる。
画像処理装置には、前記表示画像が表示されている前記領域を撮像して得られる第2の方向指示光画像であって、前記第1の方向とは反対の第2の方向への前記ポインタの移動を指示する第2の方向指示光と同じ波長であり、前記位置指示光および前記第1の方向指示光とは異なる波長の光の画像である第2の方向指示光画像から、前記表示画像に照射された前記第2の方向指示光の像を検出し、その検出結果に基づいて、前記ポインタの前記第2の方向への移動が指示されたか否かを示す第2の方向情報を出力する第2の方向指示光検出手段(例えば、図10の後進指示光検出部225)をさらに設け、前記位置特定手段には、前記第1の方向情報および前記第2の方向情報に基づいて、前記奥行き長さを変更させる(例えば、図29のステップS165またはステップS167の処理)ことができる。
画像処理装置には、前記表示画像、前記表示画像に照射された前記位置指示光の像、および前記表示画像に照射された前記第1の方向指示光の像を前記撮像画像として撮像する撮像手段(例えば、図1のカメラ23)と、前記撮像画像から、前記位置指示光画像と、前記第1の方向指示光画像とを分離する分離手段(例えば、図10の幾何変換処理部222)とをさらに設けることができる。
本発明の第2の側面の画像処理方法またはプログラムは、表示画像に対して想定された仮想3次元空間上の表示位置であり、ポインタを表示させる表示位置を特定する画像処理装置の画像処理方法またはプログラムであって、前記表示画像が表示されている領域を撮像して得られる位置指示光画像であって、前記仮想3次元空間上の前記ポインタを表示させる表示位置を指示するための位置指示光と同じ波長の光の画像である位置指示光画像から、前記表示画像上における、前記表示画像に照射された前記位置指示光の像の位置および形状を検出する位置指示光検出ステップ(例えば、図12のステップS43)と、前記表示画像が表示されている前記領域を撮像して得られる方向指示光画像であって、前記位置指示光の光路と平行な方向への前記ポインタの移動を指示する方向指示光と同じ波長であり、前記位置指示光とは異なる波長の光の画像である方向指示光画像から、前記表示画像に照射された前記方向指示光の像を検出し、その検出結果に基づいて、前記ポインタの前記方向への移動が指示されたか否かを示す第1の方向情報を出力する方向指示光検出ステップ(例えば、図12のステップS44またはステップS45)と、前記位置指示光の像の位置および形状と、出力された前記方向情報とに基づいて、前記仮想3次元空間上における前記ポインタの表示位置を特定する位置特定ステップ(例えば、図12のステップS46)とを含む。
以下、図面を参照して、本発明を適用した実施の形態について説明する。
図1は、本発明を適用したプレゼンテーションシステムの一実施の形態の構成例を示す図である。
プレゼンテーションシステム11は、スクリーン21、レーザポインタ22、カメラ23、画像処理装置24、およびプロジェクタ25から構成され、スクリーン21には、プロジェクタ25から投影された表示画像が表示される。
この表示画像は、表示されるオブジェクト等の仮想3次元空間上の情報に基づいて、それらのオブジェクト等を2次元の平面上に射影することにより生成された、3次元コンピュータグラフィクスとされる。表示画像上には仮想3次元空間が想定され、表示画像には、その仮想3次元空間上の所定の位置を示す3次元ポインタ31が表示されている。
プレゼンテーションを行うユーザ32は、スクリーン21から適度に離れた位置でレーザポインタ22を操作して、表示画像上に表示された3次元ポインタ31を移動させてプレゼンテーションを行う。レーザポインタ22は、ユーザ32の操作に応じて赤外光などの不可視光(非可視光)を射出することにより、3次元ポインタ31の位置を指定する。
カメラ23は、マルチスペクトルカメラからなり、カメラ23とスクリーン21との間にユーザ32が位置しないようにカメラ23の配置位置が定められる。つまり、カメラ23は、スクリーン21上に表示されている表示画像の全体を撮像することができるような位置に配置される。
カメラ23は、スクリーン21と、その周囲の領域の画像を撮像し、これにより得られた撮像画像を画像処理装置24に供給する。したがって、カメラ23により撮像された撮像画像には、スクリーン21に投影された表示画像の他、スクリーン21上に映るレーザポインタ22から射出された不可視光の像も含まれることになる。
このようにカメラ23が、表示画像の全体を含む画像を撮像画像として撮像するので、カメラ23がスクリーン21に対向する位置に配置されなくても、表示画像に照射された不可視光の像の表示画像上の位置を把握することができる。これにより、ユーザ32により指示された3次元ポインタ31の表示位置を確実に特定することができる。
画像処理装置24は、カメラ23から供給された撮像画像に基づいて、ユーザ32がレーザポインタ22を操作することにより指定された、仮想3次元空間上の位置を求める。また、画像処理装置24は、説明資料としての3次元コンピュータグラフィクスである3次元画像を予め記録しており、記録している3次元画像に対して想定された仮想3次元空間上の求められた位置に、3次元ポインタ31が表示された画像を新たな表示画像として生成する。
すなわち、3次元画像に対して想定された仮想3次元空間は、表示画像に対して想定された仮想3次元空間に対応しており、表示画像は、3次元画像の所定の位置に3次元ポインタ31が表示されている画像とされる。画像処理装置24は、生成した表示画像をプロジェクタ25に供給して、表示画像の表示を制御する。
プロジェクタ25は、画像処理装置24から供給された表示画像に基づいて、表示画像を表示させるための光をスクリーン21に投光し、スクリーン21に表示画像を表示させる。したがって、画像処理装置24により新たな表示画像が生成されるたびに、スクリーン21に表示される表示画像が更新される。
また、ユーザ32により操作されるレーザポインタ22は、例えば図2に示すように、ペン型のレーザポインタとされる。レーザポインタ22の図中、左側には、3つのボタンから構成されるボタン部51が設けられており、ユーザ32は、ボタン部51を操作することにより、レーザポインタ22の左端に設けられた射出口52から、操作に応じた不可視光を射出させる。
すなわち、レーザポインタ22には、3次元ポインタ31の表示位置を指示するための不可視光として、赤外光を射出する複数の不可視光レーザが内蔵されており、矢印A11の方向から見たレーザポインタ22の断面には、図3に示すように、複数の不可視光レーザが配置されている。
図3では、レーザポインタ22の断面は円形状とされており、レーザポインタ22のほぼ中央に断面が真円形状となるレーザ光(赤外光)を射出する不可視光レーザ81が配置されている。不可視光レーザ81からは、仮想3次元空間上における3次元ポインタ31の位置、すなわち表示画像上における3次元ポインタ31の表示位置を指定するためのレーザ光である位置指示光が射出される。
不可視光レーザ81の図中、上側には、位置指示光と同じ波長のレーザ光である補助光を射出する不可視光レーザ82が設けられている。この補助光は、位置指示光が表示画像に照射されたときに、どの方向から位置指示光が照射されているかを識別することができるようにするためのレーザ光であり、その断面は真円形状とされる。
また、補助光は、そのビーム径が位置指示光のビーム径よりも小さい光とされる。このように位置指示光と補助光のビーム径を異なるものとすることにより、スクリーン21上の位置指示光の像の大きさと、補助光の像の大きさとは異なるものとなり、それらの像が位置指示光の像であるのか、または補助光の像であるのかを区別することができる。
例えば図4に示すように、スクリーン21上に位置指示光および補助光が照射され、スクリーン21に位置指示光の像111および補助光の像112が観察されたとする。この場合、画像処理装置24は、撮像画像上の位置指示光の像111だけでは、位置指示光が矢印A31により示される方向からスクリーン21に照射されたのか、または矢印A32により示される方向からスクリーン21に照射されたのかを知ることはできない。
そこで、補助光よりも位置指示光が常に鉛直方向側に位置するように、ユーザ32がレーザポインタ22を操作することによって、つまりボタン部51が常に、鉛直方向と反対の方向を向くように、ユーザ32がレーザポインタ22を操作することにより、どの方向から位置指示光が照射されているかを知ることができるようになる。
図4において図中、下方向を鉛直方向とすると、ユーザ32は、ボタン部51を常に上側に向けながらレーザポインタ22の操作を行うので、補助光の像112は、常に位置指示光の像111の上側に位置することになり、これらの像111および像112の位置関係から、矢印A31の方向から位置指示光が照射されていることが分かる。
図3の説明に戻り、不可視光レーザ81の図中、左側には、3次元ポインタ31を表示させる仮想3次元空間上の位置を、ユーザ32に対して手前側に移動させるためのレーザ光である後進指示光を射出する不可視光レーザ83が設けられている。後進指示光は、位置指示光とは異なる波長の不可視光であり、3次元ポインタ31の位置をユーザ32側に位置指示光の光路と平行に移動させるように指示するための光とされる。
また、不可視光レーザ81の図中、右側には、3次元ポインタ31を表示させる仮想3次元空間上の位置を、ユーザ32に対して奥側に移動させるためのレーザ光である前進指示光を射出する不可視光レーザ84が設けられている。前進指示光は、位置指示光および後進指示光とは異なる波長の不可視光であり、3次元ポインタ31の位置をユーザ32側とは反対側に位置指示光の光路と平行に移動させるように指示するための光とされる。
すなわち、図5に示すように、スクリーン21の所定の領域に表示画像141が表示されることとすると、表示画像141に対して想定される仮想3次元空間は、表示画像141の図中、左下の頂点を基準点O(原点)とする3次元空間座標系の空間とされる。図5においては、基準点Oから図中、右方向がx軸方向、上方向がy軸方向、表示画像141に直交し、奥側に向かう方向がz軸方向とされている。したがって、この仮想3次元空間をz軸方向に見た画像が表示画像141として表示されることになる。
また、直線142は、レーザポインタ22から射出された位置指示光の軌跡、つまり位置指示光の光路を示しており、表示画像141上の領域143および領域144は、位置指示光および補助光の像を表している。なお、以下、領域143および領域144を、位置指示光の像143および補助光の像144と称する。
図5では、位置指示光の像143および補助光の像144は、表示画像141上に位置し、表示画像141はxy平面上に位置している。また、3次元ポインタ31は、直線142の延長線上にある仮想3次元空間上の物体145の所定の位置を示している。この物体145は、実際には表示画像141上に表示されているが、仮想3次元空間内では、xy平面よりもz軸方向側に位置している。
ここで、画像処理装置24は、位置指示光の像143から、3次元ポインタ31により示される位置までの距離を示すパラメータである奥行き長さEを記憶しており、ユーザ32の操作に応じて奥行き長さEの値を変化させることで、3次元ポインタ31が直線142と平行な方向に移動された表示画像を新たに生成する。
例えば、ユーザ32が、レーザポインタ22を動かさずに、つまりレーザポインタ22の位置および方向を変えずに、位置指示光とともに後進指示光が射出されるようにレーザポインタ22を操作した場合、奥行き長さEの値が所定の大きさだけ小さくなるように変更され、3次元ポインタ31(により示される位置)は、図中、手前側に、かつ直線142と平行な方向に移動する。つまり、移動後の3次元ポインタ31の位置は、直線142の延長線上の点であって、その点から位置指示光の像143までの長さが、変更後の奥行き長さEにより示される長さとなるような点の位置とされる。
また、ユーザ32がレーザポインタ22を動かさずに、位置指示光とともに前進指示光が射出されるようにレーザポインタ22を操作した場合、奥行き長さEの値が所定の大きさだけ大きくなるように変更され、3次元ポインタ31(により示される位置)は、図中、奥側に、かつ直線142と平行な方向に移動する。
したがって、例えば、図6に示すように、位置指示光が表示画像上の基準点Oの位置に照射され、3次元ポインタ31により示される位置が仮想3次元空間上の点P11の位置である場合、ユーザ32は、レーザポインタ22を、その位置および方向を動かさずに操作することで、3次元ポインタ31の位置を、基準点Oおよび点P11を通る直線上の任意の位置に移動させることができる。例えば、ユーザ32は、後進指示光を射出させて3次元ポインタ31の位置を点P11から、基準点Oおよび点P11を通る直線上の点P12の位置に移動させたり、前進指示光を射出させて点P13の位置に移動させたりすることができる。
なお、図6において、図中、右方向はx軸方向、上方向はy軸方向、x軸方向およびy軸方向に直交し、奥側に向かう方向はz軸方向とされている。また、以下の説明において、3次元ポインタ31を奥行き長さEが小さくなる方向に移動させることを、手前方向に移動させるともいい、逆に3次元ポインタ31を奥行き長さEが大きくなる方向に移動させることを、奥行き方向に移動させるともいう。さらに、奥行き長さEの値は、0以上の整数値とされる。すなわち、3次元ポインタ31は、仮想3次元空間において、z座標が負の値となるような位置には表示されない。
このように、ユーザ32はレーザポインタ22に設けられたボタン部51を操作することにより、レーザポインタ22から不可視光を射出させて3次元ポインタ31の表示位置を指示する。
例えば、奥行き長さEの値が変化せず、3次元ポインタ31が移動されるように、ユーザ32がレーザポインタ22を操作した場合、図7Aに示すように、不可視光レーザ81および不可視光レーザ82から位置指示光および補助光が射出され、不可視光レーザ83および不可視光レーザ84からは、後進指示光および前進指示光は射出されない。換言すれば、不可視光レーザ81および不可視光レーザ82だけが点灯し、不可視光レーザ83および不可視光レーザ84は点灯しない。
なお、図7Aにおいて、不可視光レーザ81乃至不可視光レーザ84のうち、斜線が施されているものは、点灯していることを表しており、斜線の施されていないものは、点灯していないことを表している。また、後述する図7Bおよび図7Cにおいても同様に、点灯している不可視光レーザには斜線が施されている。
また、3次元ポインタ31が奥行き方向に移動するように、ユーザ32がレーザポインタ22を操作した場合、図7Bに示すように、不可視光レーザ81、不可視光レーザ82、および不可視光レーザ84が点灯し、不可視光レーザ83は点灯しない。すなわち、レーザポインタ22からは、位置指示光、補助光、および前進指示光が射出される。
さらに、3次元ポインタ31が手前方向に移動するように、ユーザ32がレーザポインタ22を操作した場合、図7Cに示すように、不可視光レーザ81、不可視光レーザ82、および不可視光レーザ83が点灯し、不可視光レーザ84は点灯しない。すなわち、レーザポインタ22からは、位置指示光、補助光、および後進指示光が射出される。
このように、レーザポインタ22からは、ユーザ32による操作に応じて、3次元ポインタ31の表示位置を指示するための赤外光が射出される。プレゼンテーションシステム11においては、レーザポインタ22から射出される位置指示光、補助光、前進指示光、および後進指示光を赤外光とすることで、レーザポインタとして可視光レーザを用いる場合と比べて安全性の向上を図ることができる。
つまり、可視のレーザ光が人の目に入射した場合、その人に不快感を与えるだけでなく、人の目に障害を及ぼす恐れもある。これに対して、レーザポインタ22では、可視光よりも波長の長い赤外光を利用することで、人の目に対する安全性を向上させることができ、また、赤外光は不可視光なので人の目に入射しても不快感を与えることもない。さらに、表示画像に照射された位置指示光や前進指示光などは人の目には見えないので、余計な可視光が表示画像に照射されて、表示画像が見にくくなるようなこともない。
次に、図8は、図1のカメラ23の構成例を示すブロック図である。
カメラ23は、レンズ181、絞り182、CCD(Charge Coupled Devices)イメージセンサ183、相関2重サンプリング回路184、A/D(Analog/Digital)コンバータ185、DSP(Digital Signal Processor)186、タイミングジェネレータ187、D/A(Digital/Analog)コンバータ188、ビデオエンコーダ189、ディスプレイ190、CODEC(Compression/Decompression)191、メモリ192、バス193、CPU(Central Processing Unit)194、およびインプットデバイス195から構成される。
レンズ181は、被写体であるスクリーン21とその周囲の領域からの光を集光し、集光した光を絞り182を介してCCDイメージセンサ183に入射させる。絞り182は、レンズ181からCCDイメージセンサ183に入射させる光の光量を調節する。
CCDイメージセンサ183は、レンズ181から入射した光を光電変換することにより、入射した光を電気信号に変換し、スクリーン21とその周囲の領域の画像である撮像画像を生成する。ここで、撮像画像の各画素は、例えば光の3原色であるR(赤)、G(緑)、若しくはB(青)、位置指示光の波長の色、前進指示光の波長の色、または後進指示光の波長の色のいずれかの色のデータ(画素値)だけを有している。CCDイメージセンサ183は、生成した撮像画像を相関2重サンプリング回路184に供給する。
相関2重サンプリング回路184は、CCDイメージセンサ183からの撮像画像をサンプリングすることによって撮像画像からノイズを除去し、ノイズが除去された撮像画像をA/Dコンバータ185に供給する。A/Dコンバータ185は、相関2重サンプリング回路184からの撮像画像、より詳細には撮像画像の画像信号をアナログ信号からデジタル信号に変換してDSP186に供給する。
DSP186は、例えば信号処理用プロセッサおよび画像用RAM(Random Access Memory)から構成される。DSP186は、A/Dコンバータ185から供給され、画像用RAMに格納した撮像画像に対して、必要に応じて階調圧縮処理などの予めプログラムされた画像処理を施す。
また、DSP186は、必要に応じて、撮像画像の各画素が、R(赤)、G(緑)、B(青)、位置指示光の波長の色、前進指示光の波長の色、および後進指示光の波長の色のそれぞれの色のデータを有するように、A/Dコンバータ185からの撮像画像に対して色同時化処理を施す。画像処理の施された撮像画像は、バス193を介して図1の画像処理装置24に供給されたり、D/Aコンバータ188またはCODEC191に供給されたりする。
また、バス193には、DSP186、タイミングジェネレータ187、CODEC191、メモリ192、CPU194、およびインプットデバイス195が接続されている。
タイミングジェネレータ187は、CCDイメージセンサ183乃至DSP186のそれぞれの動作のタイミングを制御する。D/Aコンバータ188は、DSP186から供給された撮像画像をデジタル信号からアナログ信号に変換し、ビデオエンコーダ189に供給する。ビデオエンコーダ189は、D/Aコンバータ188からの撮像画像を、R、G、B等の通常のビデオ信号に変換してディスプレイ190に供給する。ディスプレイ190は、例えばファインダやビデオモニタとして機能するLCD(Liquid Crystal Display)などからなり、ビデオエンコーダ189から供給された撮像画像を表示する。
CODEC191は、DSP186からの撮像画像をエンコードしてメモリ192に記録させたり、メモリ192に記録されている撮像画像を読み出してデコードし、DSP186に供給したりする。メモリ192は、例えば磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどからなり、CODEC191から供給された撮像画像を記録したり、記録している撮像画像をCODEC191に供給したりする。
CPU194は、インプットデバイス195からの操作信号などに応じて、カメラ23全体の動作を制御する。インプットデバイス195は、例えばボタンやスイッチなどからなり、ユーザ32の操作に応じた操作信号をCPU194に供給する。
また、CCDイメージセンサ183は、画素ごとに異なる分光感度を有している。すなわち、CCDイメージセンサ183の受光面には、画素ごとにR(赤)、G(緑)、B(青)、位置指示光の波長の色、前進指示光の波長の色、または後進指示光の波長の色のうちのいずれかの色の光だけを透過させるオンチップカラーフィルタが配置されており、CCDイメージセンサ183に入射した光はオンチップカラーフィルタを透過して、光電変換を行う撮像素子に入射する。
例えば、CCDイメージセンサ183の受光面には、図9に示すオンチップカラーフィルタが配置されている。なお、図9において、1つの正方形は1つの画素を表しており、それらの正方形内の文字R、G、B、L1、L2、およびL3のそれぞれは、R(赤)、G(緑)、B(青)、位置指示光の波長の色、前進指示光の波長の色、および後進指示光の波長の色の光のそれぞれだけを透過させるRのフィルタ、Gのフィルタ、Bのフィルタ、位置指示光の波長のフィルタ、前進指示光の波長のフィルタ、および後進指示光の波長のフィルタのそれぞれを表している。
図9では、各フィルタのそれぞれがモザイク状に配置されている。すなわち、Gのフィルタおよび位置指示光の波長のフィルタが、1画素おきに図中、上下方向および左右方向に並べられており、Rのフィルタ、Bのフィルタ、前進指示光の波長のフィルタ、および後進指示光の波長のフィルタのそれぞれが、3画素おきに上下方向および左右方向に並べられている。
図10は、図1の画像処理装置24の構成を示すブロック図である。
画像処理装置24は、色同時化処理部221、幾何変換処理部222、位置指示光検出部223、前進指示光検出部224、後進指示光検出部225、座標計算部226、3次元画像記録部227、および表示画像処理部228から構成される。
色同時化処理部221には、カメラ23のDSP186からバス193を介して撮像画像、より詳細には撮像画像の画像信号が供給される。ここで、色同時化処理部221に供給される撮像画像は、各画素がR(赤)、G(緑)、B(青)、位置指示光の波長の色、前進指示光の波長の色、または後進指示光の波長の色のいずれかの色の画素値だけを有する画像とされる。
色同時化処理部221は、カメラ23から供給された撮像画像に対して、各色の画素値を補間する色同時化処理を施して、色同時化処理が施された撮像画像を幾何変換処理部222に供給する。これにより、色同時化処理の施された撮像画像は、各画素がR(赤)、G(緑)、B(青)、位置指示光の波長の色、前進指示光の波長の色、および後進指示光の波長の色のそれぞれの色の画素値を有する画像となる。
幾何変換処理部222は、色同時化処理部221から供給された撮像画像に幾何変換処理を施し、幾何変換処理が施された撮像画像から、撮像画像上の表示画像の領域の画像である抽出画像を抽出する。ここで、本来、スクリーン21に表示される表示画像は長方形であるが、カメラ23は必ずしもスクリーン21に対向する位置に配置される訳ではないので、撮像画像上の表示画像の領域は長方形とはならない場合がある。そこで、幾何変換処理部222は、撮像画像に幾何変換処理を施すことにより、撮像画像上の表示画像の領域を長方形の領域に変換する。
また、幾何変換処理部222は、抽出画像を位置指示光画像、前進指示光画像、および後進指示光画像のそれぞれに分離し、分離された位置指示光画像、前進指示光画像、および後進指示光画像のそれぞれを、位置指示光検出部223、前進指示光検出部224、および後進指示光検出部225のそれぞれに供給する。
ここで、位置指示光画像とは、位置指示光と同じ波長の光の画像、つまり各画素が位置指示光の波長の色の画素値をだけ有する画像をいい、前進指示光画像とは、前進指示光と同じ波長の光の画像、つまり各画素が前進指示光の波長の色の画素値だけを有する画像をいう。また、後進指示光画像とは、後進指示光と同じ波長の光の画像、つまり各画素が後進指示光の波長の色の画素値だけを有する画像をいう。
位置指示光検出部223は、幾何変換処理部222から供給された位置指示光画像から、位置指示光の像を検出し、その像を構成する画素数K、位置指示光の像の重心の座標(xi,yi)、位置指示光の像の輪郭とその輪郭の長軸との交点の座標(xf,yf)、および位置指示光の像の輪郭とその輪郭の短軸との交点の座標(xn,yn)を求める。
すなわち、位置指示光の断面は真円形であるので、スクリーン21上の位置指示光の像の輪郭の形状は真円または楕円となる。したがって座標(xf,yf)は、輪郭としての円の長軸と、その円との交点の座標とされ、座標(xn,yn)は、長軸に直交する直線と、その円との交点の座標とされる。以下、座標(xi,yi)、座標(xf,yf)、および座標(xn,yn)のそれぞれを、重心座標、長軸交点座標、および短軸交点座標とも称する。
位置指示光検出部223は、このようにして求められた画素数Kおよび重心座標(xi,yi)を、前進指示光検出部224および後進指示光検出部225に供給する。また、位置指示光検出部223は、重心座標(xi,yi)、長軸交点座標(xf,yf)、および短軸交点座標(xn,yn)を座標情報として座標計算部226に供給する。
前進指示光検出部224は、位置指示光検出部223から供給された画素数Kおよび重心座標を用いて、幾何変換処理部222から供給された前進指示光画像から、前進指示光の像を検出する。そして、前進指示光検出部224は、その検出結果を示す情報である前進フラグを座標計算部226に供給する。ここで、前進フラグとは、ユーザ32により3次元ポインタ31の奥行き方向への移動が指示されたか否かを示す情報をいう。
後進指示光検出部225は、位置指示光検出部223から供給された画素数Kおよび重心座標を用いて、幾何変換処理部222から供給された後進指示光画像から、後進指示光の像を検出する。そして、後進指示光検出部225は、その検出結果を示す情報である後進フラグを座標計算部226に供給する。ここで、後進フラグとは、ユーザ32により3次元ポインタ31の手前方向への移動が指示されたか否かを示す情報をいう。
座標計算部226は、奥行き長さEを記憶している。座標計算部226は、記憶している奥行き長さE、位置指示光検出部223からの座標情報、前進指示光検出部224からの前進フラグ、および後進指示光検出部225からの後進フラグに基づいて、3次元ポインタ31を表示させる位置を算出し、その結果得られた、3次元ポインタ31を表示させるべき位置を示す情報を表示画像処理部228に供給する。3次元画像記録部227は、3次元画像を記録しており、記録している3次元画像を必要に応じて表示画像処理部228に供給する。
表示画像処理部228は、座標計算部226から供給された、3次元ポインタ31を表示させるべき位置を示す情報と、3次元画像記録部227から供給された3次元画像とから表示画像を生成してプロジェクタ25に供給する。
ところで、ユーザ32がプレゼンテーションを行うために、画像処理装置24を操作して表示画像のスクリーン21への表示を指示すると、表示画像処理部228は、ユーザ32に指示された3次元画像を表示画像としてプロジェクタ25に供給し、プロジェクタ25に表示画像の表示を指示する。すると、プロジェクタ25は、画像処理装置24の表示画像処理部228の制御に基づいて、表示画像処理部228から供給された表示画像を表示させるための光をスクリーン21に投光し、スクリーン21に表示画像を表示させる。
スクリーン21に表示画像が表示されると、ユーザ32は、レーザポインタ22を操作して、3次元ポインタ31を移動させながらプレゼンテーションを行う。
また、スクリーン21に表示画像が表示されると、プレゼンテーションシステム11により、ユーザ32によるレーザポインタ22への操作が反映された表示画像を表示する処理である表示処理が開始される。以下、図11のフローチャートを参照して、プレゼンテーションシステム11による表示処理について説明する。
ステップS11において、カメラ23は、スクリーン21とその周囲の領域を撮像し、これにより得られた撮像画像を画像処理装置24の色同時化処理部221に供給する。すなわち、レンズ181は、入射した光を集光してCCDイメージセンサ183に入射させ、CCDイメージセンサ183は、レンズ181から入射した光を光電変換することにより撮像画像を生成して、生成した撮像画像を相関2重サンプリング回路184に供給する。また、相関2重サンプリング回路184は、CCDイメージセンサ183からの撮像画像をサンプリングすることによって、撮像画像からノイズを除去して、ノイズの除去された撮像画像をA/Dコンバータ185に供給する。A/Dコンバータ185は、相関2重サンプリング回路184からの撮像画像をアナログ信号からデジタル信号に変換してDSP186に供給する。
そしてDSP186は、A/Dコンバータ185から供給された撮像画像に対して、必要に応じて階調圧縮処理などの画像処理を施し、画像処理の施された撮像画像を、バス193を介して画像処理装置24の色同時化処理部221に供給する。
ステップS12において、画像処理装置24は生成処理を行う。なお、生成処理の詳細は後述するが、この生成処理において、画像処理装置24は、カメラ23から供給された撮像画像を用いて、3次元ポインタ31を表示させるべき表示位置を特定し、その表示位置に3次元ポインタ31が表示される表示画像を生成する。表示画像が生成されると画像処理装置24は、生成した表示画像をプロジェクタ25に供給する。
ステップS13において、画像処理装置24は、プロジェクタ25を制御して、スクリーン21に表示画像を表示させる。プロジェクタ25は、画像処理装置24から供給された表示画像に基づいて、表示画像を表示させるための光をスクリーン21に投光し、スクリーン21に表示画像を表示させる。これにより、スクリーン21の表示が、これまで表示されていた表示画像から、ユーザ32の操作が反映された新たな表示画像に切り替わる。
ステップS14において、画像処理装置24は、表示画像を表示させる処理を終了するか否かを判定する。例えば、ユーザ32により画像処理装置24が操作され、表示画像の表示の終了が指示されると、画像処理装置24は処理を終了すると判定する。
ステップS14において、処理を終了しないと判定された場合、処理はステップS11に戻り、上述した処理が繰り返される。すなわち、画像処理装置24により新たに表示させるべき表示画像が生成されて、生成された表示画像が、プロジェクタ25によりスクリーン21に表示される。
これに対して、ステップS14において、処理を終了すると判定された場合、プレゼンテーションシステム11の各装置は行っている処理を終了し、表示処理は終了する。
このようにして、プレゼンテーションシステム11は、スクリーン21とその周囲の領域を撮像し、その結果得られた撮像画像から、ユーザ32による操作を反映した表示画像を生成する。そして、新たに生成した表示画像をスクリーン21に表示させる。
次に、図12のフローチャートを参照して、図11のステップS12の処理に対応する処理である生成処理について説明する。
ステップS41において、色同時化処理部221は、カメラ23から供給された撮像画像に対して色同時化処理を施して、色同時化処理の施された撮像画像を幾何変換処理部222に供給する。
色同時化処理部221は色同時化処理を行うことにより、撮像画像の各画素について、それらの画素の周囲にある画素の画素値を用いて各色の画素値を補間する。これにより、各画素がR(赤)、G(緑)、B(青)、位置指示光の波長の色、前進指示光の波長の色、および後進指示光の波長の色のそれぞれの色の画素値を有する撮像画像が得られる。なお、この色同時化処理はデモザイク処理などとも呼ばれている。
より具体的には、例えば、色同時化処理部221は、特開2003−230159号公報に記載されている技術を利用して色同時化処理を行う。すなわち、色同時化処理部221は、撮像画像のR、G、およびBの色の画素値から色差信号を生成し、撮像画像と色差信号とから全ての画素が輝度成分を有する輝度画像を生成する。そして、色同時化処理部221は、色差信号に基づいて、輝度画像を各画素がR、G、およびBの色の画素値を有する撮像画像に変換し、Gの色の画素値に基づいてRおよびBの画素値を補正する。
さらに、色同時化処理部221は、各画素のR、G、およびBの色の画素値と、所定の画素の位置指示光の波長の色、前進指示光の波長の色、および後進指示光の波長の色の画素値とを用いて、各画素の位置指示光の波長の色の画素値、前進指示光の波長の色の画素値、および後進指示光の波長の色の画素値を求めて、撮像画像を、各画素がR、G、B、位置指示光の波長の色、前進指示光の波長の色、および後進指示光の波長の色のそれぞれの画素値を有する画像とする。
また、例えば、色同時化処理部221は、特表昭61−502424号公報に記載されている技術を利用して色同時化処理を行うようにしてもよい。そのような場合、色同時化処理部221は、撮像画像の画素のR、G、およびBの色の画素値から色相成分の値を求めて線形補間を行うことにより各画素の色相成分の値を得る。そして、色同時化処理部221は、各画素の色相成分の値から再びR、G、およびBの色の画素値を求める。
さらに、色同時化処理部221は、各画素のR、G、およびBの色の画素値と、所定の画素の位置指示光の波長の色、前進指示光の波長の色、および後進指示光の波長の色のそれぞれの画素値とを用いて、各画素の位置指示光の波長の色の画素値、前進指示光の波長の色の画素値、および後進指示光の波長の色の画素値を求める。
色同時化処理が施された撮像画像が、色同時化処理部221から幾何変換処理部222に供給されると、ステップS42において、幾何変換処理部222は、色同時化処理部221から供給された撮像画像に幾何変換処理を施す。
例えば、図13に示すように、プロジェクタ25は、スクリーン21に対して正面から表示画像を表示させるための光を投光することができるように、スクリーン21の正面、つまりスクリーン21に対向する位置に配置される。
これに対して、カメラ23は、スクリーン21のほぼ全体の画像を撮像することができる位置に配置される。図13では、カメラ23は、スクリーン21に対して図中、右下の位置に配置されている。したがって、スクリーン21に表示されている長方形状の表示画像は、例えば、図14に示すように、撮像画像上においては台形状となる。
図14に示す撮像画像251内には、スクリーン21に表示されている表示画像252が含まれている。また、表示画像252は、4つの点253−1乃至点253−4のそれぞれを頂点とする台形状の領域となっている。すなわち、カメラ23は、スクリーン21を斜め方向から撮像するので、スクリーン21上において長方形状である表示画像が、図14の撮像画像251上においては、図中、左側の辺よりも右側の辺が長い台形状となっている。
そこで、まず幾何変換処理部222は、図14の撮像画像251に対してエッジ検出をすることで、撮像画像251から表示画像252の領域を検出する。幾何変換処理部222は、検出された表示画像252の4つの頂点である点253−1乃至点253−4を特徴点とし、それらの点253−1乃至点253−4を頂点とする四角形の領域を、長方形の領域に変形するためのパラメータを算出し、算出したパラメータに基づいて撮像画像に幾何変換処理を施す。さらに、幾何変換処理部222は、幾何変換処理が施された撮像画像251から、点253−1乃至点253−4を頂点とする長方形状の領域を、抽出画像として抽出する。
そして、幾何変換処理部222は、撮像画像から抽出された抽出画像を、位置指示光画像、前進指示光画像、および後進指示光画像のそれぞれに分離し、分離された位置指示光画像、前進指示光画像、および後進指示光画像のそれぞれを、位置指示光検出部223、前進指示光検出部224、および後進指示光検出部225のそれぞれに供給する。
例えば、カメラ23が撮像画像を撮像する時点において、スクリーン21に、図15Aに示す表示画像が表示されていたとする。図15Aに示す表示画像では、3つの物体が表示されており、それらの物体のうちの図中、一番左側にある物体上に3次元ポインタ31が表示されている。また、この表示画像が表示されているときに撮像されて得られた撮像画像からは、例えば図15Bに示す位置指示光画像が得られる。
図15Bに示す位置指示光画像では、図中、左側に楕円形の位置指示光の像281と、楕円形の補助光の像282とが撮像されて表示されている。この位置指示光画像においては、補助光の像282が位置指示光の像281の図中、左上に位置しているので、位置指示光は、右下の方向からスクリーン21上の表示画像に照射されていることが分かる。
さらに、スクリーン21に図15Aに示した表示画像が表示されており、ユーザ32により3次元ポインタ31の奥行き方向への移動が指示された場合、レーザポインタ22から表示画像には前進指示光が照射されるので、撮像画像からは、例えば図15Cに示す前進指示光画像が得られる。
なお、図15Cにおいて、図15Bにおける場合と対応する部分には同一の符号を付してあり、その説明は省略する。また、位置指示光および補助光の波長は、前進指示光の波長とは異なるので、位置指示光の像281および補助光の像282は、実際には前進指示光画像には表示されない。
図15Cでは、位置指示光の像281の図中、右側に前進指示光の像291が撮像されて表示されている。すなわち、前進指示光画像からは、前進指示光の像291が検出されることになるので、3次元ポインタ31の奥行き方向への移動が指示されたとされる。
また、スクリーン21に図15Aに示した表示画像が表示されており、ユーザ32により3次元ポインタ31の手前方向への移動が指示された場合、レーザポインタ22から表示画像には後進指示光が照射されるので、撮像画像からは、例えば図15Dに示す後進指示光画像が得られる。
なお、図15Dにおいて、図15Bにおける場合と対応する部分には同一の符号を付してあり、その説明は省略する。また、位置指示光および補助光の波長は、後進指示光の波長とは異なるので、位置指示光の像281および補助光の像282は、実際には後進指示光画像には表示されない。
図15Dでは、位置指示光の像281の図中、左側に後進指示光の像301が撮像されて表示されている。すなわち、後進指示光画像からは、後進指示光の像301が検出されることになるので、3次元ポインタ31の手前方向への移動が指示されたとされる。
このように、幾何変換処理部222においては、抽出画像から、位置指示光画像、前進指示光画像、および後進指示光画像のそれぞれが分離される。
図12のフローチャートの説明に戻り、ステップS42において撮像画像から位置指示光画像、前進指示光画像、および後進指示光画像が得られると、ステップS43において、位置指示光検出部223は、重心位置検出処理を行う。なお、重心位置検出処理の詳細は後述するが、この重心位置検出処理において、位置指示光検出部223は、幾何変換処理部222から供給された位置指示光画像から、画素数K、重心座標、長軸交点座標、および短軸交点座標を求める。そして、位置指示光検出部223は、画素数Kおよび重心座標を、前進指示光検出部224および後進指示光検出部225に供給し、重心座標、長軸交点座標、および短軸交点座標を座標計算部226に供給する。
ステップS44において、前進指示光検出部224は、前進指示光の検出処理を行う。すなわち、前進指示光検出部224は、幾何変換処理部222から供給された前進指示光画像から前進指示光の像を検出し、その検出結果としての前進フラグを座標計算部226に供給する。
ステップS45において、後進指示光検出部225は、後進指示光の検出処理を行う。すなわち、後進指示光検出部225は、幾何変換処理部222から供給された後進指示光画像から後進指示光の像を検出して、その検出結果としての後進フラグを座標計算部226に供給する。なお、前進指示光の検出処理および後進指示光の検出処理の詳細は後述する。
ステップS46において、座標計算部226は、3次元ポインタ位置算出処理を行う。なお、3次元ポインタ位置算出処理の詳細は後述するが、この3次元ポインタ位置算出処理において、座標計算部226は、3次元ポインタ31の表示位置を求めて、3次元ポインタ31の表示位置を示す情報を表示画像処理部228に供給する。ここで、3次元ポインタ31の表示位置として、例えば表示画像に対して想定された仮想3次元空間上の位置を示す座標が求められ、その仮想3次元空間の座標を示す情報が、座標計算部226から表示画像処理部228に供給される。
ステップS47において、表示画像処理部228は、3次元画像記録部227に記録されている3次元画像と、座標計算部226から供給された3次元ポインタ31の表示位置を示す情報とに基づいて、表示画像を生成する。
すなわち、表示画像処理部228は、座標計算部226から供給された情報により特定される仮想3次元空間上の位置に対応する3次元画像上の位置に、3次元ポインタ31が表示される画像を表示画像として生成する。ここで、3次元ポインタ31が表示される3次元画像上の位置は、2次元の平面に表示される3次元画像上の位置であって、仮想3次元空間上の3次元ポインタ31の表示位置に対応する位置とされる。
表示画像処理部228は、表示画像を生成すると、生成した表示画像をプロジェクタ25に供給して、プロジェクタ25に表示画像の表示を指示する。そして、プロジェクタ25に表示画像が供給されると、処理は図11のステップS13に進み、生成処理は終了する。
このようにして、画像処理装置24は、撮像画像から位置指示光画像、前進指示光画像、および後進指示光画像を分離する。そして、画像処理装置24は、位置指示光画像、前進指示光画像、および後進指示光画像を用いて3次元ポインタ31の表示位置を特定し、その表示位置に3次元ポインタ31が表示される表示画像を生成する。
つまり、画像処理装置24は、撮像画像から、前進指示光の像および後進指示光の像を検出することにより、3次元ポインタ31をどの方向に移動させるかを特定し、さらに、特定された方向、および位置指示光の像の位置とその形状から3次元ポインタ31を表示させるべき位置を特定する。
このように、位置指示光画像、前進指示光画像、および後進指示光画像を用いて3次元ポインタ31の表示位置を求め、表示画像を生成することにより、簡単かつ確実にユーザ32により指定された3次元ポインタ31の表示位置を特定することができる。これにより、ユーザ32は、レーザポインタ22を操作して不可視光を表示画像に照射するだけで、2次元の平面に表示される画像に対して想定された仮想3次元空間上の位置を、簡単に指定することができる。
従来、表示画像に対して想定された仮想3次元空間上の位置を指定するには、磁気センサや磁気マーカ、超音波センサが用いられていたが、これらのセンサやマーカは高価であった。また、表示画像の大きさによっては、センサがセンシングを行う範囲を変更する必要があるため、表示画像を表示させる大きさに応じて、プレゼンテーションシステムに用いる磁気センサや超音波センサを選択しなければならなかった。
これに対して、プレゼンテーションシステム11においては、レーザポインタ22から射出された不可視光を撮像し、その結果得られた撮像画像を用いて3次元ポインタ31の表示位置を特定するようにしたので、周囲の環境に影響されることなく、また表示画像の大きさに関係なく、簡単かつ確実に仮想3次元空間上の位置を指定することができる。
しかも、このプレゼンテーションシステム11は、スクリーン21およびプロジェクタ25として既存の装置を用いることができる。また、カメラ23としてのマルチスペクトルカメラは、一般的なカラーカメラの撮像素子の受光面に配置されるオンチップカラーフィルタを、図9に示したオンチップカラーフィルタに置き換えるだけで簡単かつ安価に作成することができるため、量産効果により通常のカラーカメラと同等のコストで得られることが期待できる。
さらに、レーザポインタ22は不可視光を射出するレーザポインタであるが、不可視光のレーザポインタは既に製品として販売されており、その価格も可視光のレーザポインタと比較してそれほど高価ではない。
したがって、既存の装置を利用することで、汎用性を低下させることなく、低コストでプレゼンテーションシステム11を実現することができる。
次に、図16のフローチャートを参照して、図12のステップS43の処理に対応する処理である重心位置検出処理について説明する。
幾何変換処理部222から位置指示光検出部223に位置指示光画像が供給されると、ステップS71において、位置指示光検出部223は、位置指示光画像の各画素のうち、画素値が予め定められた閾値th1以上である画素を検出する。
ステップS72において、位置指示光検出部223は、検出した位置指示光画像の画素についてクラスタリングを行う。すなわち、位置指示光検出部223は、互いに隣接し、閾値th1以上の画素値を有する複数の画素からなる位置指示光画像上の領域、つまりそれらの画素の集合を1つのクラスタとする。
これにより、例えば位置指示光画像から、図15Bに示した位置指示光の像281の領域、および補助光の像282の領域がクラスタとして検出される。つまり、位置指示光画像からクラスタとして検出される領域は、スクリーン21上の位置指示光および補助光と同じ波長の赤外光が照射されている領域であり、プロジェクタ25から投光される光は、そのほとんどが可視光であるので、位置指示光画像からは、通常、2つのクラスタが検出されると予測される。
また、何らかの影響によりノイズとしての赤外光がスクリーン21に照射される場合には、位置指示光画像から3以上のクラスタが検出されることも考えられるが、ノイズとして、位置指示光や補助光よりもビーム径の大きい赤外光がスクリーン21に照射されることは稀である。したがって、検出された複数のクラスタのうちの最も大きいクラスタが、レーザポインタ22からスクリーン21に照射された位置指示光の像であり、2番目に大きいクラスタが補助光の像であると予測される。
ステップS73において、位置指示光検出部223は、クラスタリングを行うことにより得られたクラスタのうち、2番目に大きいクラスタ、つまり2番目に多い画素からなるクラスタの重心の位置を求める。
例えば、位置指示光検出部223は、表示画像に対して想定された仮想3次元空間の基準点Oに対応する位置指示光画像上の位置を基準点とするxy座標系における、2番目に大きいクラスタの重心の位置の座標(xj,yj)を求める。
ここで、表示画像に対して想定された仮想3次元空間の基準点Oは、例えば図5の表示画像141の図中、左下の頂点であるので、図15Bに示した位置指示光画像の図中、左下の頂点がxy座標系の基準点とされる。また、位置指示光画像に対するxy座標系のx軸方向、およびy軸方向は、表示画像に対して想定された仮想3次元空間のx軸方向およびy軸方向と同じ方向とされる。したがって、図15Bにおいて、右方向がx軸方向とされ、上方向がy軸方向とされる。
ステップS74において、位置指示光検出部223は、クラスタリングを行うことにより得られたクラスタのうち、最も大きいクラスタの重心の位置、およびそのクラスタを構成する画素数を求める。
例えば、図17に示すように、位置指示光画像に対するクラスタリングの結果、位置指示光画像から、クラスタC1およびクラスタC2が検出されたとする。ここで、補助光よりも位置指示光のビーム径がより大きいので、補助光の象よりも位置指示光の像の方が大きいと予測される。そこで、位置指示光検出部223は、位置指示光画像から検出された2つのクラスタのうち、その大きさの大きい方のクラスタC1が位置指示光の像であるとし、小さい方のクラスタC2が補助光の像であるとする。
そして、位置指示光検出部223は、まず小さい方のクラスタC2の重心の位置の座標を、位置指示光画像における補助光の像の重心座標として求める。例えば、位置指示光検出部223は、クラスタC2を構成する各画素の重心の位置の座標をクラスタC2の重心の位置の座標として求める。その結果、点331の座標(xj,yj)がクラスタC2の重心の座標として求まる。
また、位置指示光検出部223は、大きい方のクラスタC1の重心の位置の座標を、位置指示光画像における位置指示光の像の重心座標として求める。その結果、点332の座標(xi,yi)がクラスタC1の重心の座標として求まる。この点332の座標(xi,yi)は、表示画像に照射された位置指示光の表示画像上における像の重心の位置を示している。さらに、位置指示光検出部223は、クラスタC1を構成する画素数、つまりクラスタC1の領域内の画素の数を、位置指示光の像の画素数Kとして求める。
図16のフローチャートの説明に戻り、位置指示光検出部223は、位置指示光の像の重心座標(xi,yi)と位置指示光の像の画素数Kとを、前進指示光検出部224および後進指示光検出部225に供給する。
ステップS75において、位置指示光検出部223は、位置指示光画像から検出されたクラスタのうち、最も大きいクラスタについてエッジ検出処理を行う。
例えば、位置指示光検出部223は、図17のクラスタC1についてエッジ検出処理を行い、クラスタC1の輪郭を検出する。これにより、例えば、図18に示す楕円341がクラスタC1の輪郭として検出される。この楕円341は、スクリーン21に照射された位置指示光の像の輪郭とされる。したがって、エッジ検出処理により、表示画像に照射された位置指示光の像の表示画像上における形状が検出される。なお、以下、楕円341をクラスタC1の輪郭341とも称する。
最も大きいクラスタの輪郭が検出されると、ステップS76において、位置指示光検出部223は、エッジ検出処理により検出されたクラスタの輪郭について、長軸交点座標(xf,yf)を求める。例えば、位置指示光検出部223は、図18のクラスタC1の輪郭341上の点であって、クラスタC1の重心の点332から最も遠い点、つまり点332からの距離が最大である点を検出する。図18の例においては、輪郭341は楕円形であるので、点332からの距離が最大である点として、2つの点が検出される。
そして、位置指示光検出部223は、点332から最も遠い2つの点のうち、クラスタC2の重心である点331側の点、つまり点331と点332との間に位置する点342の座標を長軸交点座標(xf,yf)として求める。
なお、輪郭341が真円である場合には、点332から輪郭341上の任意の点までの距離が等しくなるが、長軸交点座標の点は、重心座標の点332から最も遠い輪郭341上の点であって、点331側の点であるから、点331および点332を結ぶ直線と、輪郭341との交点の座標が、長軸交点座標とされる。
ステップS77において、位置指示光検出部223は、最も大きいクラスタの重心の点を通り、その点および長軸交点座標の点を結ぶ直線に直交する直線を求め、求められた直線と、最も大きいクラスタの輪郭との交点のうち、クラスタの重心の点に対して予め定められた方向に位置する点の位置の座標を、短軸交点座標として求める。そして、位置指示光検出部223は、求めた重心座標(xi,yi)、長軸交点座標(xf,yf)、および短軸交点座標(xn,yn)を座標情報として座標計算部226に供給して処理は図12のステップS44に進み、重心位置検出処理は終了する。
例えば、図19に示すように、位置指示光検出部223は、クラスタC1の重心の点332と、長軸交点座標の位置の点342とを結ぶ(通る)直線M1を求める。そして、位置指示光検出部223は、クラスタC1の重心の点332を通り、直線M1に直交する直線N1を求め、さらに直線N1と、クラスタC1の輪郭341との交点のうちの図中、右側の点351の位置の座標を、短軸交点座標(xn,yn)として求める。すなわち、楕円である輪郭341の短軸は長軸と直交するので、点332を通り、長軸を延長した直線である直線M1に直交する直線N1は、短軸を延長した直線であるといえる。そこで、位置指示光検出部223は、直線N1と輪郭341の交点の座標を短軸交点座標とする。
以上のようにして求められた重心座標、長軸交点座標、および短軸交点座標からは、位置指示光の像の位置および形状を知ることができるので、位置指示光検出部223は、位置指示光画像から、位置指示光の像の位置および形状を検出するということができる。
このようにして、位置指示光検出部223は、位置指示光画像から、表示画像上における位置指示光の像の位置および形状を検出する。このように、位置指示光の像の位置および形状を検出することにより、表示画像上において3次元ポインタ31を表示させるべき位置を特定することができる。特に、位置指示光は、表示画像を表示させるための光、つまり可視光や、前進指示光および後進指示光などの他の光とは異なる波長であるので、それらの光の像は位置指示光画像からは検出されず、位置指示光の像だけが検出されるようになされている。これにより、位置指示光画像から位置指示光の像を容易に検出することができる。
次に、図20のフローチャートを参照して、図12のステップS44の処理に対応する処理である、前進指示光の検出処理について説明する。
ステップS101において、前進指示光検出部224は、幾何変換処理部222から供給された前進指示光画像において、位置指示光検出部223から供給された重心座標(xi,yi)の点を中心とする予め定められた半径rの円の領域内の画素のうち、画素値が予め定められた閾値th2以上である画素を検出する。
ここで、前進指示光画像における座標系は、表示画像に対して想定された仮想3次元空間の基準点Oと対応する位置を基準点とし、前進指示光画像における座標系におけるx軸方向およびy軸方向は、表示画像の仮想3次元空間のx軸方向およびy軸方向と同じ方向とされる。
ステップS102において、前進指示光検出部224は、検出した前進指示光画像の画素についてクラスタリングを行う。すなわち、前進指示光検出部224は、互いに隣接し、閾値th2以上の画素値を有する複数の画素からなる前進指示光画像上の領域を1つのクラスタとする。
レーザポインタ22において、前進指示光を射出する不可視光レーザ84は、位置指示光を射出する不可視光レーザ81に近接して設けられている。したがって、表示画像上において、前進指示光の像は、位置指示光の像に近接した位置にあると予測される。そこで、位置指示光の像の周囲から前進指示光の像を確実に検出することのできる適切な半径rの値を定め、図21に示すように、位置指示光の像の重心の点332を中心とし、半径がrである円381内の領域を、画素値が閾値th2以上である画素、つまり前進指示光の像の検出の対象とすることで、より効率よく、かつ確実に前進指示光の像を検出することができる。
なお、図21において、図19における場合と対応する部分には同一の符号を付してあり、その説明は省略する。また、位置指示光の像の輪郭341は、実際には前進指示光画像には表示されない。
図21では、画素値が閾値th2以上である画素についてのクラスタリングの結果、点332の図中、右上の位置に楕円形のクラスタC21が検出されている。クラスタC21は、輪郭341、すなわち位置指示光の像とほぼ同じ大きさであり、円381内には、他にクラスタは検出されていないので、クラスタC21が前進指示光の像であると予測される。
図20のフローチャートの説明に戻り、ステップS103において、前進指示光検出部224は、クラスタリングの結果として検出されたクラスタのうち、最も大きいクラスタの画素数R1を求める。つまり、最も大きいクラスタを構成する画素の数が画素数R1とされる。
ステップS104において、前進指示光検出部224は、求めた画素数R1と、位置指示光検出部223から供給された画素数Kとの差の絶対値が、予め定められた閾値th3よりも小さいか否かを判定する。
すなわち、前進指示光検出部224は、|R1−K|<th3であるか否かを判定する。ここで、|R1−K|は、画素数R1と画素数Kとの差の絶対値を表している。
ステップS104において、|R1−K|<th3であると判定された場合、前進指示光画像から検出されたクラスタと、位置指示光の像の大きさはほぼ同じであるので、検出されたクラスタは、前進指示光の像であるとされ、処理はステップS105に進む。そして、ステップS105において、前進指示光検出部224は、前進フラグを“true”に設定し、処理はステップS107に進む。ここで、“true”である前進フラグは、前進指示光画像から前進指示光の像が検出され、3次元ポインタ31の奥行き方向への移動が指示されたことを示している。
これに対して、ステップS104において、|R1−K|<th3でないと判定された場合、前進指示光画像から検出されたクラスタは、位置指示光とは大きく異なる大きさであるか、または前進指示光画像からクラスタが検出されなかったので、前進指示光画像から前進指示光の像は検出されなかったとされ、処理はステップS106に進む。
ステップS106において、前進指示光検出部224は、前進フラグを“false”に設定し、処理はステップS107に進む。ここで、“false”である前進フラグは、前進指示光画像から前進指示光の像が検出されず、3次元ポインタ31の奥行き方向への移動が指示されなかったことを示している。
ステップS107において、前進指示光検出部224は、“true”または“false”の何れかに設定された前進フラグを出力して処理は図12のステップS45に進み、前進指示光の検出処理は終了する。これにより、前進指示光検出部224から座標計算部226に、前進フラグが供給される。
このようにして、前進指示光検出部224は、前進指示光画像から前進指示光の像を検出し、その検出の結果に応じて、3次元ポインタ31の奥行き方向への移動が指示されたか否かを示す前進フラグを出力する。
このように、前進指示光の像を検出することにより、3次元ポインタ31の奥行き方向への移動が指示されたか否かを簡単に知ることができる。特に、前進指示光は、表示画像を表示させるための可視光、位置指示光、後進指示光などの他の光とは異なる波長であるので、それらの光の像は前進指示光画像からは検出されず、前進指示光の像だけが検出されるようになされている。これにより、前進指示光画像から前進指示光の像を容易に検出することができる。
前進指示光検出部224から前進フラグが出力されると、図12のステップS45の処理に対応する処理である後進指示光の検出処理が行われる。以下、図22のフローチャートを参照して、後進指示光の検出処理について説明する。なお、ステップS131乃至ステップS133の処理のそれぞれは、図20のステップS101乃至ステップS103の処理と同様であるので、その説明は適宜、省略する。
すなわち、ステップS131乃至ステップS133の処理において、例えば、図23に示すように、後進指示光検出部225は、位置指示光の重心の点332を中心とする半径rの円401内の領域を対象として、画素値が閾値th2以上である画素を検出し、クラスタリングを行う。なお、図23において、図19における場合と対応する部分には同一の符号を付してあり、その説明は省略する。また、位置指示光の像の輪郭341は、実際には後進指示光画像には表示されない。
図23では、画素値が閾値th2以上である画素についてのクラスタリングの結果、点332の図中、左下の位置に楕円形のクラスタC31が検出されている。クラスタC31は、輪郭341、すなわち位置指示光の像とほぼ同じ大きさであり、円401内には、他にクラスタは検出されていないので、クラスタC31が後進指示光の像であると予測される。また、後進指示光検出部225は、検出されたクラスタのうち、最も大きいクラスタの画素数R2を求める。
図22のフローチャートの説明に戻り、ステップS134において、後進指示光検出部225は、求めた画素数R2と、位置指示光検出部223から供給された画素数Kとの差の絶対値が、予め定められた閾値th3よりも小さいか否か、つまり|R2−K|<th3であるか否かを判定する。
ステップS134において、|R2−K|<th3であると判定された場合、検出されたクラスタは、後進指示光の像であるとされ、処理はステップS135に進む。そしてステップS135において、後進指示光検出部225は、後進フラグを“true”に設定し、処理はステップS137に進む。ここで、“true”である後進フラグは、後進指示光画像から後進指示光の像が検出され、3次元ポインタ31の手前方向への移動が指示されたことを示している。
これに対して、ステップS134において、|R2−K|<th3でないと判定された場合、後進指示光画像から後進指示光の像は検出されなかったとされ、処理はステップS136に進む。ステップS136において、後進指示光検出部225は、後進フラグを“false”に設定し、処理はステップS137に進む。ここで、“false”である後進フラグは、3次元ポインタ31の手前方向への移動が指示されなかったことを示している。
ステップS137において、後進指示光検出部225は、後進フラグを出力して処理は図12のステップS46に進み、後進指示光の検出処理は終了する。これにより、後進指示光検出部225から座標計算部226に、後進フラグが供給される。
このようにして、後進指示光検出部225は、後進指示光画像から後進指示光の像を検出し、その検出の結果に応じて、3次元ポインタ31の手前方向への移動が指示されたか否かを示す後進フラグを出力する。
このように、後進指示光の像を検出することにより、3次元ポインタ31の手前方向への移動が指示されたか否かを簡単に知ることができる。特に、後進指示光は、表示画像を表示させるための可視光、位置指示光、前進指示光などの他の光とは異なる波長であるので、それらの光の像は後進指示光画像からは検出されず、後進指示光の像を容易に検出することができる。
後進指示光検出部225から後進フラグが出力されると、図12のステップS46の処理に対応する3次元ポインタ位置算出処理が行われる。以下、図24乃至図28を参照して、この3次元ポインタ位置算出処理について説明する。
3次元ポインタ位置算出処理において、座標計算部226は、位置指示光検出部223、前進指示光検出部224、および後進指示光検出部225から供給された座標情報、前進フラグ、および後進フラグから、仮想3次元空間上における、3次元ポインタ31を表示させるべき表示位置の座標を求める。
まず、座標計算部226は、仮想3次元空間における位置指示光の仰角α、および回転角βを求める。ここで、回転角βは、図24に示すように、位置指示光のxy平面に対する回転角をいう。例えば、位置指示光画像からは、図25に示すように、位置指示光の像の重心の点332と、補助光の像の重心の点331とが検出される。なお、図25において、図19における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
位置指示光が空間方向に広がりを持たないものとすると、すなわち位置指示光のビーム径が限りなく0に近いものとすると、位置指示光は、点331および点332を含み、xy平面に垂直な平面上を進むことになる。そこで、その平面とyz平面とがなす角を、位置指示光の回転角βとする。
したがって、図中、縦方向の直線431が、仮想3次元空間のy軸と平行な直線であり、横方向の直線432が、仮想3次元空間のx軸と平行な直線であるとすると、位置指示光の回転角βは、楕円である位置指示光の像の輪郭341の長軸と、直線431とのなす角度とされる。
座標計算部226は、座標情報として供給された点332の座標(xi,yi)、点342の座標(xf,yf)、および点351の座標(xn,yn)から、輪郭341としての楕円の長軸の長さLと短軸の長さDとを求める。そして、座標計算部226は、輪郭341の長軸およびy軸の関係から回転角βを求める。ここで、長軸の長さLは、点332から点342までの長さ(距離)の2倍の長さとされ、短軸の長さDは、点332から点351までの長さ(距離)の2倍の長さとされる。
具体的には、座標計算部226は、点332の座標(xi,yi)および点342の座標(xf,yf)から、次式(1)を計算することにより、cosβを求める。
ここで、式(1)において、|yf−yi|は、yfとyiの差の絶対値を表している。このようにしてcosβが求められると、座標計算部226は、さらに式(1)を次式(2)に示すように変形し、回転角βを求める。
このようにして、座標計算部226は、点332の座標(xi,yi)および点342の座標(xf,yf)から、回転角βを求める。換言すれば、座標計算部226は、位置指示光の像と、補助光の像の位置関係から回転角βを求める。
また、仮想3次元空間における位置指示光の仰角αは、点332および点342を含み、xy平面に直交する平面内における、位置指示光の光路と平行な直線と、z軸とがなす角度とされる。つまり、仰角αは、位置指示光のz軸に対する仰角とされる。
例えば、図26に示すように、表示画像の表示面であるスクリーン21に対して、回転角βが0となるように位置指示光が入射したとする。図26では、縦方向が仮想3次元空間のy軸方向、横方向が仮想3次元空間のz軸方向とされ、スクリーン21の表示面をx軸方向に見た図を表している。
図26では、スクリーン21の表示面に対して、矢印61に示す方向に、つまり図中、右下から左上方向に位置指示光が入射している。ここで、縦方向の直線461は、スクリーン21の表示面を表しており、直線462および直線463は位置指示光を表している。
つまり、仮に位置指示光が表示面を透過するものとすると、実際には位置指示光のビーム径は0ではないので、位置指示光は、直線462と直線463との間の領域を通過する。したがって、直線462と直線463との距離が位置指示光のビーム径とされる。
また、直線464が、仮想3次元空間のz軸に平行な直線であるとすると、位置指示光の仰角αは、位置指示光とz軸とがなす角であるので、直線464と直線462(または直線463)とがなす角が仰角αとされる。
ここで、表示面上の位置指示光の像である楕円の短軸の長さ、つまり位置指示光画像上の位置指示光の像の輪郭である楕円の短軸の長さDは、常に位置指示光の直径の大きさと等しい。また、表示面上の位置指示光の像である楕円の長軸の長さ、つまり位置指示光画像上の位置指示光の像の輪郭である楕円の長軸の長さLは、直線462と直線461との交点から、直線463と直線461との交点までの長さ(距離)とされる。
さらに、直線462に直交する直線と、直線461とのなす角はαであるので、円形である位置指示光の像の長軸の長さLと、位置指示光の直径の長さ、つまり短軸の長さDとは、cosα=D/Lという関係を満たす。したがって、座標計算部226は、位置指示光画像上の位置指示光の像の輪郭である楕円の長軸の長さL、および短軸の長さDの関係から、位置指示光の仰角αを求めることができる。換言すれば、座標計算部226は、位置指示光の像の形状、つまり位置指示光の像の歪みの度合いから仰角αを求める。
より具体的には、座標計算部226は、座標情報としての位置指示光の重心座標(xi,yi)、長軸交点座標(xf,yf)、および短軸交点座標(xn,yn)から、長軸の長さLおよび短軸の長さDを求め、さらに求めた長軸の長さLおよび短軸の長さDから、式(3)を計算することによりcosαを求める。
そして、さらに座標計算部226は、式(3)を次式(4)に示すように変形することで、仰角αを求める。
このようにして、座標計算部226は、座標情報としての重心座標(xi,yi)、長軸交点座標(xf,yf)、および短軸交点座標(xn,yn)から仰角αを求める。
以上のようにして、位置指示光の回転角βおよび仰角αが求められると、座標計算部226は、重心座標(xi,yi)、回転角β、仰角α、および記憶している奥行き長さEから、3次元ポインタ31の表示位置の座標を求める。
例えば、位置指示光の像の重心の位置、つまり重心座標(xi,yi)により特定される位置が、表示画像に対して想定された仮想3次元空間の座標系の基準点Oの位置であるとすると、図27に示すように、3次元ポインタ31の表示位置の点Gは、奥行き長さE、回転角β、および仰角αから求まる。なお、図27において、右方向がx軸方向、上方向がy軸方向、奥行き方向がz軸方向とされている。
また、図27において、点Hは、点Gからxz平面に下ろした垂線の足であり、点Iは、点Gからz軸に下ろした垂線の足であり、点Jは、点Gからyz平面に下ろした垂線の足である。ここで、基準点Oおよび点Gを結ぶ直線OGは、位置指示光の光路を延長した直線となるので、直線OGとz軸とがなす角が、位置指示光の仰角αとされる。すなわち、∠GOIが仰角αとされる。
さらに、位置指示光の像の重心の位置、つまり基準点Oと、補助光の像の重心の位置とを通り、xy平面に直交する平面は、基準点O、点G、および点Iを含む平面であるので、その平面と、yz平面とがなす角が回転角βとされる。すなわち、点Gおよび点Iを結ぶ直線GIと、点Jおよび点Iを結ぶ直線JIとがなす角度である、∠GIJが回転角βとされる。なお、基準点O、点G、および点Iを含む平面は、z軸を回転軸として、yz平面を角度βだけ回転させた平面である。
ここで、点Gのx座標、y座標、およびz座標のそれぞれは、点Hのx座標、点Jのy座標、および点Iのz座標のそれぞれと等しい。また、点Hのx座標、点Jのy座標、および点Iのz座標のそれぞれは、点Hから点Iまでの距離、点Jから点Iまでの距離、および点Iから基準点Oまでの距離のそれぞれに等しいので、これらの距離(長さ)を求めることにより、点Gの座標を求めることができる。
そこで、直線OG(ベクトルOG)を、点G、基準点O、および点Iを含む平面GOIに沿って分解することを考えると、ベクトルOGは、ベクトルOIとベクトルIGの和として表すことができる。直線OGの長さは奥行き長さEであり、∠GOIは仰角αであるので、点Iから基準点Oまでの距離(長さ)はEcosαとなり、点Gから点Iまでの距離(長さ)は、Esinαとなる。したがって、点Iのz座標、すなわち点Gのz座標はEcosαとなる。
さらに、点Gから点Iまでの長さ、つまり直線GIの長さEsinαと、位置指示光の回転角βとから点Hのx座標および点Jのy座標を求めることができる。すなわち、図28に示すように、点G、点H、点I、および点Jは、xy平面に平行な1つの平面上に位置している。なお、図28において、図27における場合と対応する部分には、同一の符号を付してあり、その説明は省略する。
図28において、直線GIの長さはEsinαであり、∠GIJは回転角βであるので、点Jから点Iまでの長さ、つまり直線JIの長さは、Esinαcosβとなる。また、∠GIJがβであり、∠HIJは90度であるので、∠HGIはβとなる。したがって、点Hから点Iまでの長さ、つまり直線HIの長さは、Esinαsinβとなる。
図27の説明に戻り、直線HIの長さはEsinαsinβであり、直線HIはx軸に平行であるので、点Gのx座標は、直線HIの長さに等しく、Esinαsinβとされる。また、直線JIの長さはEsinαcosβであり、直線JIはy軸に平行であるので、点Gのy座標は、直線JIの長さに等しく、Esinαcosβとされる。このようにして、点Gのx座標、y座標、およびz座標が求められたので、点Gの座標は、座標(Esinαsinβ,Esinαcosβ,Ecosα)となる。
なお、図27の例においては、位置指示光の像の重心の位置が、基準点Oと同じ位置である場合について考えたが、実際には、位置指示光の像の重心の位置は、基準点Oと同じ位置となるとは限らない。そこで、位置指示光の像の重心の座標を(xi,yi,0)として、点Gを位置指示光の重心の位置の分だけ移動させると、3次元ポインタ31を表示させるべき位置を示す点Gの座標は、(xi+Esinαsinβ,yi+Esinαcosβ,Ecosα)となる。
このように、3次元ポインタ31の表示位置は、位置指示光の重心座標(xi,yi,0)、位置指示光の回転角β、位置指示光の仰角α、および奥行き長さEを用いて表すことができる。また、点Gの座標のEを変化させることで、3次元ポインタ31の表示位置を奥行き方向、および手前方向に簡単に移動させることができる。
次に、図29のフローチャートを参照して、以上において説明した3次元ポインタ位置算出処理の流れを説明する。この3次元ポインタ位置算出処理は図12のステップS46の処理に対応する処理であり、図12のステップS45において後進指示光の検出が行われると開始される。
ステップS161において、座標計算部226は、位置指示光検出部223から供給された座標情報としての重心座標(xi,yi)、長軸交点座標(xf,yf)、および短軸交点座標(xn,yn)を用いて、仰角αおよび回転角βを求める。すなわち、座標計算部226は、上述した式(4)を計算することにより仰角αを求め、式(2)を計算することにより回転角βを求める。
ステップS162において、座標計算部226は、求めた仰角αを用いて、sinαおよびcosαを求める。そして、ステップS163において、座標計算部226は、求めた回転角βを用いて、sinβおよびcosβを求める。
ステップS164において、座標計算部226は、3次元ポインタ31を手前方向に移動させるか否かを判定する。例えば、座標計算部226は、前進指示光検出部224から供給された前進フラグが“false”に設定されており、後進指示光検出部225から供給された後進フラグが“true”に設定されており、かつ記憶している奥行き長さEが1以上である場合、3次元ポインタ31を手前方向に移動させると判定する。
すなわち、後進フラグが“true”に設定されている場合、ユーザにより3次元ポインタ31の手前方向への移動が指示されたことを示している。また、奥行き長さEが0である場合には、これ以上3次元ポインタ31を手前方向に移動させることはできない。そこで、前進フラグが“false”に設定され、後進フラグが“true”に設定され、かつ奥行き長さEが1以上である場合に、3次元ポインタ31が手前方向に移動される。
ステップS164において、手前方向に移動させると判定された場合、3次元ポインタ31を手前方向に移動させるので、処理はステップS165に進む。そして、ステップS165において、座標計算部226は、記憶している奥行き長さEの値を1だけ小さくし、処理はステップS168に進む。
一方、ステップS164において、手前方向に移動させないと判定された場合、ステップS166において、座標計算部226は、3次元ポインタ31を奥行き方向に移動させるか否かを判定する。
例えば、座標計算部226は、前進指示光検出部224から供給された前進フラグが“true”に設定されており、後進指示光検出部225から供給された後進フラグが“false”に設定されている場合、3次元ポインタ31を奥行き方向に移動させると判定する。
すなわち、前進フラグが“true”に設定されている場合、ユーザにより3次元ポインタ31の奥行き方向への移動が指示されたことを示している。そこで、前進フラグが“true”に設定され、後進フラグが“false”に設定されている場合に、3次元ポインタ31が奥行き方向に移動される。
ステップS166において、奥行き方向に移動させると判定された場合、3次元ポインタ31を奥行き方向に移動させるので、処理はステップS167に進む。そして、ステップS167において、座標計算部226は、記憶している奥行き長さEの値を1だけ大きくし、処理はステップS168に進む。
これに対して、ステップS166において、奥行き方向に移動させないと判定された場合、ユーザにより3次元ポインタ31の移動が指示されていないか、またはこれ以上3次元ポインタ31を手前方向に移動させることはできないので、奥行き長さEの値は変更されず、処理はステップS168に進む。
ステップS165若しくはステップS167において奥行き長さEが変更されたか、またはステップS166において奥行き方向に移動させないと判定されると、ステップS168において、座標計算部226は、重心座標(xi,yi,0)、記憶している奥行き長さE、並びに求めたsinα、cosα、sinβ、およびcosβから、3次元ポインタ31を表示させるべき表示位置の座標を求める。そして、座標計算部226は、求めた座標を表示画像処理部228に供給して処理は図12のステップS47に進み、3次元ポインタ位置算出処理は終了する。
すなわち、座標計算部226は、3次元ポインタ31の表示位置の座標(xi+Esinαsinβ,yi+Esinαcosβ,Ecosα)に、重心座標のxiおよびyi、奥行き長さEの値、並びに求めたsinα、cosα、sinβ、およびcosβの値を代入することにより、3次元ポインタ31の表示位置の座標を求める。
このようにして求められた座標は、表示画像処理部228に供給され、図12のステップS47において、表示画像処理部228により、求められた表示位置に対応する3次元画像上の位置に、3次元ポインタ31が表示された画像である表示画像が生成される。
このようにして、座標計算部226は、位置指示光の仰角αおよび回転角βを求め、それらの角度、位置指示光の重心の位置、および記憶している奥行き長さEから3次元ポインタ31の表示位置の座標を求める。
このように、仰角αおよび回転角βを求め、それらの角度、位置指示光の重心の位置、および記憶している奥行き長さEから3次元ポインタ31の表示位置の座標を求めることにより、3次元ポインタ31の移動先の位置を簡単に求めることができる。したがって、ユーザ32は、レーザポインタ22を操作して、前進指示光または後進指示光を射出させるという簡単な操作だけで、3次元ポインタ31を奥行き方向または手前方向に移動させることができる。
特に、位置指示光、前進指示光、および後進指示光は、それぞれ不可視光であるため、スクリーン21に照射されても、表示されている表示画像に影響を与えることもない。つまり、表示画像を観察する観察者には、表示画像に照射される位置指示光や前進指示光の像が見えないので、不快に感じることもない。また、カメラ23で位置指示光や前進指示光の像を撮像するだけで、3次元ポインタ31を表示させるべき位置を特定できるため、例えば会議場のスクリーンのような大きい表示面に表示画像を表示させる場合においても、簡単かつ高精度に3次元ポインタ31の表示位置を特定することができる。
なお、以上においては、カメラ23のCCDイメージセンサ183の受光面には、図9に示したオンチップカラーフィルタが配置されると説明したが、図30に示すオンチップカラーフィルタが配置されるようにしてもよい。
なお、図30において、1つの正方形は1つの画素を表しており、それらの正方形内の文字W、およびL1乃至L3のそれぞれは、可視光、位置指示光、前進指示光、および後進指示光のそれぞれだけを透過させる可視光のフィルタ、位置指示光の波長のフィルタ、前進指示光の波長のフィルタ、および後進指示光の波長のフィルタのそれぞれを表している。
図30では、それぞれのフィルタがモザイク状に配置されている。すなわち、可視光のフィルタ、位置指示光の波長のフィルタ、前進指示光の波長のフィルタ、および後進指示光の波長のフィルタのそれぞれが、1画素おきに図中、上下方向および左右方向に並べられている。
このように、図30に示したオンチップカラーフィルタがCCDイメージセンサ183の受光面に配置される場合には、各波長のフィルタ同士の間隔、すなわち各色の光のサンプリング間隔が短くなるので、より精度よく位置指示光の像、前進指示光の像、および後進指示光の像を検出することができる。
また、CCDイメージセンサ183が、2つの撮像素子から構成されるようにしてもよい。そのような場合、例えば、レンズ181により集光された光は、それぞれの撮像素子において同じ像が撮像されるように、プリズムなどにより2つの光に分離されてCCDイメージセンサ183を構成する撮像素子のそれぞれに入射するようになされる。
また、CCDイメージセンサ183が、2つの撮像素子から構成される場合、それらの撮像素子の受光面には、例えば図31に示すオンチップカラーフィルタが配置される。
ここで、図31AはCCDイメージセンサ183を構成する一方の撮像素子の受光面に配置されるオンチップカラーフィルタを示しており、図31Bは、他方の撮像素子の受光面に配置されるオンチップカラーフィルタを示している。さらに、図31Cは、他方の撮像素子の受光面に配置されるオンチップカラーフィルタの他の例を示している。なお、図31A乃至図31Cにおいて、1つの正方形は1つの画素を表している。
図31Aにおいて、1つの画素を表す正方形内の文字L1乃至L3のそれぞれは、位置指示光、前進指示光、および後進指示光のそれぞれだけを透過させる位置指示光の波長のフィルタ、前進指示光の波長のフィルタ、および後進指示光の波長のフィルタのそれぞれを表している。
図31Aでは、位置指示光の波長のフィルタ、前進指示光の波長のフィルタ、および後進指示光の波長のフィルタのそれぞれが、1画素おきに図中、上下方向および左右方向に並べられている。したがって、図31Aに示すオンチップカラーフィルタが配置された撮像素子により撮像された撮像画像からは、位置指示光画像、前進指示光画像、および後進指示光画像が分離される。
また、他方の撮像素子の受光面に配置されるオンチップカラーフィルタは、図31Bに示すように、Rのフィルタ、Gのフィルタ、およびBのフィルタがベイヤー配列と呼ばれる配列で配置されたフィルタとされる。
図31Bにおいて、1つの画素を表す正方形内の文字R、G、およびBのそれぞれは、R(赤)、G(緑)、およびB(青)の色の光のそれぞれだけを透過させるRのフィルタ、Gのフィルタ、およびBのフィルタのそれぞれを表している。したがって、このオンチップカラーフィルタが受光面に配置されている撮像素子により撮像された撮像画像からは、可視光の画像を得ることができる。
さらに、他方の撮像素子の受光面に配置されるオンチップカラーフィルタは、図31Cに示すフィルタとされてもよい。図31Cにおいて、1つの画素を表す正方形内の文字Wは、可視光だけを透過させる可視光のフィルタを表している。このオンチップカラーフィルタが受光面に配置されている撮像素子により撮像された撮像画像からも、可視光の画像を得ることができる。
このように、CCDイメージセンサ183が、2つの撮像素子から構成されるようにした場合、各色の光のサンプリング間隔が短くなるので、より精度よく位置指示光の像、前進指示光の像、および後進指示光の像を検出することができる。また、図31に示したオンチップカラーフィルタを用いる場合、既存のCCDイメージセンサを用いることができるため、コストを削減することができる。
また、以上においては、スクリーン21を用いて表示画像を表示させると説明したが、画像処理装置24にLCDやCRTディスプレイなどの表示装置を接続し、その表示装置に表示画像を表示させるようにしてもよい。そのような場合、ユーザ32は、表示画像を表示する表示装置の表示画面に対して、レーザポインタ22からの位置指示光や前進指示光を照射させ、カメラ23は、表示装置の表示画面とその周囲の領域を撮像する。
さらに、画像処理装置24にカメラ23が接続されると説明したが、画像処理装置24にカメラ23が設けられるようにしてもよい。
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
図32は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
コンピュータにおいて、CPU501,ROM(Read Only Memory)502,RAM(Random Access Memory)503は、バス504により相互に接続されている。
バス504には、さらに、入出力インターフェース505が接続されている。入出力インターフェース505には、キーボード、マウス、マイクロホンなどよりなる入力部506、ディスプレイ、スピーカなどよりなる出力部507、ハードディスクや不揮発性のメモリなどよりなる記録部508、ネットワークインターフェースなどよりなる通信部509、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア511を駆動するドライブ510が接続されている。
以上のように構成されるコンピュータでは、CPU501が、例えば、記録部508に記録されているプログラムを、入出力インターフェース505及びバス504を介して、RAM503にロードして実行することにより、上述した一連の処理が行われる。
コンピュータ(CPU501)が実行するプログラムは、例えば、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等)、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア511に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。
そして、プログラムは、リムーバブルメディア511をドライブ510に装着することにより、入出力インターフェース505を介して、記録部508にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部509で受信し、記録部508にインストールすることができる。その他、プログラムは、ROM502や記録部508に、あらかじめインストールしておくことができる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
11 プレゼンテーションシステム, 21 スクリーン, 22 レーザポインタ, 23 カメラ, 24 画像処理装置, 25 プロジェクタ, 81 不可視光レーザ, 83 不可視光レーザ, 84 不可視光レーザ, 183 CCDイメージセンサ, 186 DSP, 221 色同時化処理部, 222 幾何変換処理部, 223 位置指示光検出部, 224 前進指示光検出部, 225 後進指示光検出部, 226 座標計算部, 228 表示画像処理部