(57)【特許請求の範囲】
【請求項１】
投影面に投影された画像を撮像する撮像手段と、
前記撮像手段で撮像された前記画像に含まれる利用者の影を検出し、前記影に対応するポインティング位置を検出する検出手段と、
前記検出手段によって検出された前記影に基づいて、静止した時間に対応する処理を実行する処理手段と、を備える画像投影表示装置において、
前記影が静止している場合、利用者の位置と、前記画像に対応するポインティング位置とが結ばれる先にある前記画像の領域を前記利用者に近づけて表示することを特徴とする画像投影表示装置。
【請求項２】
前記画像投影表示装置は、前記検出手段にて影を検出する際に利用する所定の閾値を記憶する閾値初期設定手段をさらに有し、
前記閾値初期設定手段は、前記投影面に投影された画像の所定の範囲内に影を生じさせた状態を前記撮像手段で撮像し、該撮像された前記画像の所定の範囲内の影の輝度値を前記所定の閾値として決定すること、を特徴とする請求項１に記載の画像投影表示装置。
【請求項３】
前記処理手段は、所定の閾値よりも下の画素数が、該閾値よりも上の画素数より多い場合に、接地している面積が多いと判定することを特徴とする請求項２に記載の画像投影表示装置。
【請求項４】
ポインティング目的であることが検出された前記影が所定の時間だけ静止することによって、アクティベートされていないウィンドウをアクティベートさせるアクティベート手段、をさらに備えることを特徴とする請求項２に記載の画像投影表示装置。
【請求項５】
前記ウィンドウをアクティベートさせた後、前記検出手段によって検出された前記ポインティング位置の移動により、該ウィンドウを移動させるウィンドウ移動手段、をさらに備えることを特徴とする請求項４に記載の画像投影表示装置。
【請求項６】
前記検出手段によって検出された前記ポインティング位置にクリック可能なオブジェクトがある場合、ポインティング動作が停止したとき、クリックされたと判定するクリック判定手段、をさらに備えることを特徴とする請求項４に記載の画像投影表示装置。
【請求項７】
前記ウィンドウまたは検出されたユーザの位置と、ポインティング位置を結ぶ先にあるウィンドウのスクロールバーの引き寄せ中に、ポインティング動作を検出すると、直ちに前記ウィンドウまたは前記スクロールバーの引き寄せを停止させる、ことを特徴とする請求項１に記載の画像投影表示装置。
【請求項８】
投影面に投影された画像を撮像する撮像ステップと、
前記撮像ステップで撮像された前記画像に含まれる利用者の影を検出し、前記影に対応するポインティング位置を検出する検出ステップと、
前記検出ステップによって検出された前記影に基づいて、静止した時間に対応する処理を実行する処理ステップと、を備える画像投影表示方法において、
前記影が静止している場合、利用者の位置と、前記画像に対応するポインティング位置とが結ばれる先にある前記画像の領域を前記利用者に近づけて表示することを特徴とする画像投影表示方法。
【請求項９】
投影面に投影された画像を撮像する撮像ステップと、
前記撮像ステップで撮像された前記画像に含まれる利用者の影を検出し、前記影に対応するポインティング位置を検出する検出ステップと、
前記検出ステップによって検出された前記影に基づいて、静止した時間に対応する処理を実行する処理ステップと、を実行させることを特徴とする画像投影表示プログラム。
【請求項１０】
請求項９に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像投影表示装置、画像投影表示方法および画像投影表示プログラムに関し、特に、テーブルトップ型のコンピュータに用いて好適な画像投影表示装置、画像投影表示方法および画像投影表示プログラムに関するものである。
【背景技術】
【０００２】
テーブルトップ型のコンピュータを使用する場合、テーブルトップ上に筆記を行ったり、テーブルトップ上のオブジェクトを移動したりするケースにおいて、従来一般に利用されている、マウスと併用するのは、煩わしいという問題がある。また、テーブルトップ型のコンピュータを使用する場合、その形状ゆえの問題点がある。即ち、テーブルの前にユーザが着席して利用するとき、ユーザの手の届く範囲が決まっているため、スクリーン上のユーザから遠い部分に書き込みやオブジェクトの設置をする場合、姿勢に無理を生じる（非特許文献１参照）。
しかし、手が届く範囲の大きさでスクリーンを作ってしまうと、スクリーンが小さくなり、解像度が小さくなるなどの問題がある。そこで、影を利用して、ポインティングおよびユーザの位置を特定する方法もある（例えば、特許文献２、３参照）。
【０００３】
大画面を利用するときにユーザの姿勢の負担を減らしつつ、限られた画面サイズを有効に利用する方法としては、壁型ディスプレイのインタラクションでいくつかの方法が提案されている（例えば、非特許文献２、特許文献１参照）。
非特許文献２では、距離情報を取得できるカメラをユーザの上部に設置し、距離情報を元にユーザの動作情報を取得して、ディスプレイとのインタラクションを行っている。また、特許文献１の発明では、ポヒマスセンサを用いて、ユーザの動作情報を取得し、ディスプレイとのインタラクションを行っている。
【特許文献１】特開２００３−２８０８１７公報
【特許文献２】特開２００５−７８２９１公報
【特許文献３】特開２００５−１４８５５５公報
【特許文献４】特開２００４−１０９４０２公報
【非特許文献１】Aaron Toney,Bruce H.Thomas著「Considering Reach in Tangible and Table Top Design,TABLETOP’」06.2.
【非特許文献２】深澤哲生、福地健太郎、小池英樹著「壁型ディスプレイとの非接触対話手法に関する研究、１１９回ＨＩ研究会」
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、距離情報を取得できるカメラを利用する場合には、天井面にカメラの設置が必要なこと、ポヒマスセンサを利用する場合には、ユーザおよびセンサの可動範囲内に機器を置く必要があるなどの問題があった。
本発明は以上のことを顧みてなされたものであり、ある程度のスクリーンサイズを持ったテーブルトップ型コンピュータにおいて、天井面など、装置以外の場所に特殊な機器の設置を必要とせず、ユーザの動作に合わせてマウスなどを利用せずに操作できる機能を提案するものである。
【課題を解決するための手段】
【０００５】
請求項１に記載の画像投影表示装置は、投影面に投影された画像を撮像する撮像手段と、前記撮像手段で撮像された前記画像に含まれる利用者の影を検出し、前記影に対応するポインティング位置を検出する検出手段と、前記検出手段によって検出された前記影に基づいて、静止した時間に対応する処理を実行する処理手段と、を備える画像投影表示装置において、前記影が静止している場合、利用者の位置と、前記画像に対応するポインティング位置とが結ばれる先にある前記画像の領域を前記利用者に近づけて表示することを特徴とする。
請求項２は、前記画像投影表示装置は、前記検出手段にて影を検出する際に利用する所定の閾値を記憶する閾値初期設定手段をさらに有し、前記閾値初期設定手段は、前記投影面に投影された画像の所定の範囲内に影を生じさせた状態を前記撮像手段で撮像し、該撮像された前記画像の所定の範囲内の影の輝度値を前記所定の閾値として決定することを特徴とする。
請求項３は、前記処理手段は、所定の閾値よりも下の画素数が、該閾値よりも上の画素数より多い場合に、接地している面積が多いと判定することを特徴とする。
【０００６】
請求項４は、ポインティング目的であることが検出された前記影が所定の時間だけ静止することによって、アクティベートされていないウィンドウをアクティベートさせるアクティベート手段をさらに備えることを特徴とする。
請求項５は、前記ウィンドウをアクティベートさせた後、前記検出手段によって検出された前記ポインティング位置の移動により、該ウィンドウを移動させるウィンドウ移動手段をさらに備えることを特徴とする。
請求項６は、前記検出手段によって検出された前記ポインティング位置にクリック可能なオブジェクトがある場合、ポインティング動作が停止したとき、クリックされたと判定するクリック判定手段をさらに備えることを特徴とする。
請求項７は、前記ウィンドウまたは検出されたユーザの位置と、ポインティング位置を結ぶ先にあるウィンドウのスクロールバーの引き寄せ中に、ポインティング動作を検出すると、直ちに前記ウィンドウまたは前記スクロールバーの引き寄せを停止させる、ことを特徴とする。
【０００７】
請求項８は、投影面に投影された画像を撮像する撮像ステップと、
前記撮像ステップで撮像された前記画像に含まれる利用者の影を検出し、前記影に対応するポインティング位置を検出する検出ステップと、前記検出ステップによって検出された前記影に基づいて、静止した時間に対応する処理を実行する処理ステップと、を備える画像投影表示方法において、前記影が静止している場合、利用者の位置と、前記画像に対応するポインティング位置とが結ばれる先にある前記画像の領域を前記利用者に近づけて表示することを特徴とする。
請求項９は、投影面に投影された画像を撮像する撮像ステップと、前記撮像ステップで撮像された前記画像に含まれる利用者の影を検出し、前記影に対応するポインティング位置を検出する検出ステップと、前記検出ステップによって検出された前記影に基づいて、静止した時間に対応する処理を実行する処理ステップと、を実行させることを特徴とする。
請求項１０は、請求項９に記載のコンピュータ読み取り可能な記録媒体は、請求項１０に記載のプログラムを記録したことを特徴とする。
【発明の効果】
【０００８】
本発明の画像投影表示装置、画像投影表示方法および画像投影表示プログラムによれば、ある程度のスクリーンサイズを持ったテーブルトップ型コンピュータにおいて、天井面など、装置以外の場所に特殊な機器の設置を必要とせず、ユーザの動作に合わせてマウスなどを利用せずに操作することが可能となる。
【発明を実施するための最良の形態】
【０００９】
（第１の実施の形態）
図１は、本発明の第１の実施の形態の構成例を示す図である。同図に示すように、本実施の形態としての画像表示装置１は、書込面１１と、スクリーン１２と、投影面１３と、筐体１４と、筐体１４内に設置されたプロジェクタ１５およびＣＣＤ（Charge Coupled Device）カメラ１６と、プロジェクタ１５およびＣＣＤカメラ１６が接続された情報処理機器１００とから構成されている。
スクリーン１２は拡散処理が施されている透過性のあるスクリーンである。プロジェクタ１５はスクリーン１２に向けて設置されており、スクリーン１２上にプロジェクタ１５からの画像が投影されるようになっている。ＣＣＤカメラ１６はスクリーン１２を撮影し続けるようになっている。情報処理機器１００には、プロジェクタ１５およびＣＣＤカメラ１６が接続されており、ＣＣＤカメラ１６からの入力画像と、プロジェクタ１５への出力画像を処理するようになっている。書込面１１は、デスクとして使用するためのある程度の強度を持った透明な部材からなる。
【００１０】
以下、本実施の形態について詳細に説明する。図２は、本実施の形態の使用形態を示している。図２に示すように、本実施形態の画像表示装置１は、矩形の平面部（書込面１１）を有し、デスク状の表示部（スクリーン１２）と、情報処理機器１００とを備えている。表示部（スクリーン１２）は矩形の平面部（書込面１１）の中央部分に、筐体１４の内部から投影された画像が表示されるようになっている。
また、図１に示すように画像表示装置１は、スクリーン１２とスクリーン１２を支える筐体１４と、筐体１４内に設けられ、スクリーン１２上に画像を投影するプロジェクタ１５と、筐体１４内のスクリーン１２の裏面側全体が視野角となる位置に配置され、スクリーン１２を裏面側から撮影するＣＣＤカメラ１６とを備えている。筐体１４内に配置されたＣＣＤカメラ１６と情報処理機器１００とはコードによって接続され、筐体１４内に配置されたプロジェクタ１５と情報処理機器１００とは光学的に結合されている。
【００１１】
スクリーン１２は２重構造をなし、スクリーン１２の裏面側には投影画像が投影される投影面１３が設けられ、スクリーン１２の表面側には水性ペンやホワイトボードマーカなどを用いて描画可能な書込面１１が設けられ、投影面１３と書込面１１とは密着させて一体化されている。
書込面１１及び投影面１３はともに透明であるが、投影面１３の書込面１１と密着する側の表面には微細な凹凸が設けられており、投影面１３に画像が投影されると、その光はわずかに拡散して透過するので、書込面１１が設けられたスクリーン１２の表面側からは色々な角度からその投影された画像を視認することができるようになっている。ここで、書込面１１の表面には傷がつきにくいように、透明保護シートを被覆するようにしても良いし、透明な塗料などによりコーティングするようにしても良い。
情報処理機器１００はＣＣＤカメラ１６で撮影された影の画像を撮像して、認識し、取得した画像に応じて、プロジェクタ１５からスクリーン１２の裏面側に投影される投影画像を操作するようにすることができる。なお、情報処理機器１００は、本実施形態の画像表示装置１に専用に作成されたものであっても良いし、パーソナルコンピュータに所定のソフトウェアがインストールされたもので構成しても良い。また、情報処理機器１００は、筐体１４内に配置しても良い。
【００１２】
プロジェクタ１５は、図示しない反射ミラーやビームスプリッタなどの光学系によって情報処理機器１００の図示しないディスプレイと結合され、情報処理機器１００で生成された画像をスクリーン１２の投影面１３に投影することができるようになっている。
ＣＣＤカメラ１６は、例えばＵＳＢ（Universal Serial Bus）インタフェースを介して情報処理機器１００にコードで接続され、スクリーン１２の表面側、即ち、書込面１１に載置された物体や、書込面１１に描画された図形や書込面１１に映った影などを、スクリーン１２の裏面側、即ち投影面１３側から所定の時間間隔で撮影し、撮像データを得ることができるようになっている。撮影された画像に対応する画像データは情報処理機器１００に供給されるようになっている。
【００１３】
図２は本実施の形態としての画像表示装置１の使用形態を示している。ユーザＭは、画像表示装置１の前に着席するなどしてこの画像表示装置１を使用する。画像表示装置１は、テーブル状の骨組みの天板に当たる部分にスクリーン１２が埋め込まれている。ユーザＭは、スクリーン１２の表面側にペンで筆記などができるようになっている。
テーブルの下には、プロジェクタ１５およびＣＣＤカメラ１６が設置されている。プロジェクタ１５からの画像がスクリーン１２に投影され、また、ユーザＭがスクリーン１２上にペンで筆記した文字や図形や、スクリーン１２上に映ったユーザＭの影は、カメラ１６によって撮影され、撮影された画像の画像データが情報処理機器１００に供給され、処理される。
【００１４】
図３は、情報処理機器１００の構成例を示すブロック図である。情報処理機器１００は、情報処理機器１００全体を制御し、ＲＡＭ１０２に格納されているプログラムに従って動作するＣＰＵ（Central Processing Unit）１０１と、一時的にプログラムやデータを記憶する主記憶であるＲＡＭ（Random Access Memory）１０２と、プログラムやデータを記憶する大容量の外部記憶装置であるＨＤＤ（ハードディスクドライブ）１０３と、ＣＰＵ１０１の動作結果として出力される画像データのディスプレイへの表示を制御するディスプレイコントローラ１０４と、後述するＣＣＤ（Charge Coupled Device）カメラ１６をコントロールするＵＳＢ（Universal Serial Bus）コントローラ１０５等から構成されている。ディスプレイコントローラ１０４にはプロジェクタ１５が接続され、ＵＳＢコントローラ１０５にはＣＣＤカメラ１６が接続されている。
【００１５】
図４は、ＲＡＭ１０２に展開され、ＣＰＵ１０１によって実行されるソフトウェアの構成例を示している。このソフトウェアは、基本ソフト２００と応用ソフト２０５からなる。基本ソフト２００の制御下には、ＵＳＢデバイスドライバ２０１と、ウィンドウコントロール２０２と、ディスプレイコントロールドライバ２０３とがある。
ＵＳＢデバイスドライバ２０１は、ＣＣＤカメラ１６をコントロールし、ウィンドウコントロール２０２は、基本ソフト２００上で実行されている各種アプリケーション２０７のウィンドウの位置および大きさ、ウィンドウ同士の前後関係、ウィンドウのアクティブ／非アクティブを管理し制御している。
ディスプレイコントロールドライバ２０３は、映像を生成し、その出力を制御する。画像処理プログラム２０６は、必要に応じてＨＤＤ１０３から読み出され、ＲＡＭ１０２に展開されて実行される。そして、ＵＳＢデバイスドライバ２０１を介して得られたＣＣＤカメラ１６からの画像に対して所定の演算処理を施し、その演算結果をウィンドウコントロール２０２に渡す。
各種アプリケーション２０７は、ワープロソフトや、表計算ソフト、インターネット閲覧ソフトなどのいわゆる業務アプリケーションであり、基本ソフト２００の上で個別に動作している。
【００１６】
図５は、各手段の処理手順を示している。本実施の形態は、撮像手段としてのＣＣＤカメラ１６、画像取り込み手段としてのＵＳＢデバイスコントローラ２０１、画像処理手段としての画像処理プログラム２０６、ウィンドウ処理手段としてのウィンドウコントロール２０２、画像生成手段としてのディスプレイコントロールドライバ２０３、投影手段としてのプロジェクタ１５等から構成されている。
上述したように、撮像手段はＣＣＤカメラ１６を表し、画像取り込み手段はＵＳＢデバイスコントローラ２０１を表し、画像処理手段は情報処理機器１００内部にソフトウェアとして構成される画像処理プログラム２０６を表し、ウィンドウ処理手段は基本ソフト２００のウィンドウコントロール２０２を表し、画像生成手段は基本ソフト２００のディスプレイコントロールドライバ２０３を表し、投影手段はプロジェクタ１５を表す。
撮像手段で撮影されたデータは、画像取り込み手段によって情報処理機器１００に取り込まれる。取り込まれたデータは画像処理手段によって画像処理され解析される。解析内容に応じて、ウィンドウ処理手段によって各種ウィンドウの管理制御が行われ、その結果、画像生成手段の出力画像に変化を生じさせる。変化したデータは投影手段に出力され、スクリーン上に投影される。
【００１７】
次に、本発明の実施の形態において、ウィンドウをアクティベートして引き寄せる方法について示す。ウィンドウのアクティベートは、ユーザＭがスクリーン１２をある一定期間指差すことによって行われる。
図６は、デスクトップＷ０の現状の様子を示している。デスクトップＷ０には、アクティブウィンドウＷ１と背景にあるウィンドウＷ２が重なって配置されている。なお、これらのウィンドウＷ１，Ｗ２は、ウィンドウコントロール２０２によって制御されている。
図７は、ウィンドウのアクティベートの概念図を示している。アクティベートさせる対象となるウィンドウＷ１内のある位置のスクリーン１２をタッチする。それにより、撮像手段（ＣＣＤカメラ１６）によって指先の大きさの影の画像が撮像され、指先の大きさの影の画像の画像データが画像取り込み手段（ＵＳＢデバイスコントローラ２０１）によって取り込まれ、画像処理手段（画像処理プログラム２０６）に供給される。これにより、ウィンドウ処理手段（ウィンドウコントロール２０２）は、指先の影の位置にあるアクティブウィンドウＷ１をアクティベートする。
【００１８】
図８は、アクティベートの処理手順を示すフローチャートである。まず、ステップＳ１１において、画像差分と影のサイズを取得する。即ち、ＣＣＤカメラ１６から画像取り込み手段（ＵＳＢデバイスコントローラ２０１）を介して取得した画像と、ＲＡＭ１０２に保存されている参照画像とから画像処理プログラム２０６によって差分画像が取得される。
図９は、差分画像を取得する手順を示すフローチャートである。まず、ステップＳ３１において、画像処理プログラム２０６は、ＲＡＭ１０２から参照画像を読み出す。図１０は、参照画像の例を示している。次に、ステップＳ３２において、ＣＣＤカメラ１６によって撮像された現在の画像を取得する。図１１は、スクリーン１２に接地して指差している場合に撮像された画像の例を示している。
次に、ステップＳ３３において、画像処理プログラム２０６は、参照画像と現在の画像の同位置の輝度の差分を演算する。図１２は、図１０に示した参照画像と図１１に示した現在の画像との差分を演算して得られた差分画像を示している。ユーザＭの位置は点Ｐ１で表され、指先の位置は点Ｐ２で表されている。次に、ステップＳ３４において、演算によって得られた差分画像がＲＡＭ１０２に供給され、格納される。
【００１９】
図１３は、影のサイズ取得手順を示すフローチャートである。まず、ステップＳ４１において、画像処理プログラム２０６は、図９のステップＳ３４においてＲＡＭ１０２に格納された差分画像をＲＡＭ１０２から読み出す。次に、ステップＳ４２において、ＲＡＭ１０２から読み出した差分画像の各画素の輝度が閾値以上であるか否かが判定される。
その結果、差分画像の各画素の輝度が閾値以上であると判定された場合、ステップＳ４３に進み、サイズカウンタを加算し、ステップＳ４４において、その該当部分の輝度を影画像としてＲＡＭ１０２に格納する。閾値は例えば、２５６階調に対して４０程度とされる。一方、ステップＳ４２において、ＲＡＭ１０２から読み出した差分画像の各画素の輝度が閾値以下であると判定された場合、何も処理をせず、終了する。
その後、図８のステップＳ１２に戻り、画像処理プログラム２０６は、影画像の画素の面積が基準値Ａ１よりも大きく、かつ基準値Ａ２よりも小さいか否かを判定し、影画像の画素の面積が基準値Ａ１よりも大きく、かつ基準値Ａ２よりも小さい場合、ユーザＭが操作をしていると認識し、ステップＳ１３の処理へ進む。ステップＳ１３においては、閾値を用いて影領域が抽出される。
【００２０】
一方、差分画像の画素の面積（影画像の画素の面積）が基準値Ａ１よりも小さいか、または基準値Ａ２よりも大きいと判定された場合、ステップＳ１３の処理には進まず、エラーあるいはユーザＭが他の操作をしていると判断し、ステップＳ２０に進み、カウンタをリセットして待機する。
なお、基準値Ａ１およびＡ２は、キャリブレーションによって設定されるか、または任意の値として設定される。図示しないが、キャリブレーションの方法としては、スクリーン１２の上に接触せずに手をかざす場合と、スクリーン１２の上に手を置く場合の影情報をそれぞれ読み取り、スクリーン１２の上に接触せずに手をかざす場合には認識される影の面積がほとんど無くなり、かつ、スクリーン１２の上に手を置くと認識される影の面積があるような閾値Ａ１および閾値Ａ２をキャリブレーションプログラムによって設定し、ＲＡＭ１０２やＨＤＤ１０３などに保存される。
【００２１】
図１４は、影画像のサイズを閾値によって分別する手順を示すフローチャートである。まず、ステップＳ５１において、画像処理プログラム２０６は、影画像をＲＡＭ１０２から読み出す。次に、ステップＳ５２において、画像処理プログラム２０６により、影画像を構成する各画素の輝度値と閾値が比較され、各画素の輝度値が閾値より大きいか否かが判定される。
その結果、画素の輝度値が閾値より大きい（値が上である）と判定された場合、閾値上影カウンタの値に１だけ加算し、画素の輝度値が閾値以下である場合、閾値下影カウンタの値に１だけ加算する。なお、画素の輝度値は例えば２５６階調の値とされる。影画像を構成する全ての画素について上記判定が行われ、閾値上影カウンタの値および閾値下影カウンタの値がセットされる。
次に、図８のステップＳ１４に戻り、閾値よりも下の画素の数が、閾値よりも上の画素の数よりも少ないか否かが判定され、閾値よりも下の画素の数が、閾値よりも上の画素の数よりも少ないと判定された場合、画像処理プログラム２０６により、手がスクリーン１２に接地している面積が多いと判断され、ステップＳ１５の処理へ進む。
【００２２】
一方、閾値よりも下の画素の数が、閾値よりも上の画素の数よりも少なくない場合（閾値よりも上の画素の数が、閾値よりも下の画素の数以上である場合）には、手がスクリーン１２に接地している面積が少ないと判断され、次のステップＳ１５の処理には進まず、ステップＳ２０に進み、カウンタをリセットして待機する。上記閾値はキャリブレーションや任意の値として設定される。
次に、ステップＳ１５において、画像処理プログラム２０６は、差分画像を構成する各画素のうちスクリーン１２の縁に接地している画素の位置を認識する。また、縁にある連続する画素の中間地点をユーザＭの位置として認識する。次に、ステップＳ１６において、影画像の先端部分の位置を指の位置として認識し、ＲＡＭ１０２に保存する。
【００２３】
図１５は、図８のステップＳ１６において、指先の影のサイズおよび位置を取得する手順を示すフローチャートである。まず、ステップＳ６１において、画像処理プログラム２０６は、影画像をＲＡＭ１０２から読み出す。次に、ステップＳ６２において、ユーザＭの位置から一番遠い影の先端部分の位置を指の位置として認識し、ＲＡＭ１０２に保存する。
次に、ステップＳ６３において、影の先端部分の各画素の輝度値を閾値と比較し、輝度値が閾値より大きいか否かが判定される。その結果、輝度値が閾値よりも大きいと判定された場合、ステップＳ６４に進み、サイズカウンタの値に１だけ加算する。一方、輝度値が閾値よりも大きくないと判定された場合、サイズカウンタへの加算は行わない。全画素についてステップＳ６３およびステップＳ６４の処理を実行することにより、先端部の面積がサイズカウンタの値として求められる。
次に、図８のステップＳ１７に戻り、画像処理プログラム２０６により、影画像の先端部分の面積が基準値Ｃ１よりも大きくかつ基準値Ｃ２よりも小さいか否かが判定される。その結果、影画像の先端部分の面積が基準値Ｃ１よりも大きくかつ基準値Ｃ２よりも小さいと判定された場合、画像処理プログラム２０６はある箇所を指差していると認識し、次のステップＳ１８の処理へ進む。
【００２４】
一方、先端部分の面積が基準値Ｃ１よりも小さいか、または基準値Ｃ２よりも大きいと判定された場合、次のステップＳ１８の処理には進まず、ステップＳ２０に進み、画像処理プログラム２０６は、カウンタをリセットして待機する。
ステップＳ１８においては、画像処理プログラム２０６は、今回認識した先端の位置と、前回認識した先端の位置とを比較し、今回認識した先端の位置と前回認識した先端の位置とが等しいか否かを判定する。その結果、画像処理プログラム２０６により、前回認識した先端の位置と今回認識した先端の位置とがほぼ等しいと判定された場合、次のステップＳ１９の処理へ進む。一方、前回認識した先端の位置と今回認識した先端の位置とが等しくないと判定された場合、ユーザＭの意図が無いと判断され、次のステップＳ１９の処理には進まず、ステップＳ２０に進み、カウンタをリセットして待機する。
ステップＳ１９においては、画像処理プログラム２０６により、カウンタの値に１だけ加算される。次に、ステップＳ２１において、カウンタの値と、基準値Ｂとが比較され、カウンタの値が基準値Ｂより大きいか否かが判定される。その結果、カウンタの値が基準値Ｂより大きいと判定された場合、ステップＳ２２に進む。一方、カウンタの値が基準値Ｂ以下であると判定された場合、この時点では、意図が判断できないため、待機する。Ｂは任意の値として設定され、本処理を終了する。ここまでが、画像処理プログラム２０６の動作範囲である。
ステップＳ２２においては、ウィンドウのアクティベート処理が行われる。ウィンドウのアクティベート処理は、ウィンドウコントロール２０２によって行われる。
【００２５】
図１６は、ウィンドウをアクティベートする手順を示すフローチャートである。図８の処理により、画像処理プログラム２０６は、影画像からユーザＭの指の位置を推測して、その位置をウィンドウコントロール２０２に渡す。
ステップＳ７１において、ウィンドウコントロール２０２は、画像処理プログラム２０６から渡されたユーザＭの指の位置を取得する。次に、ステップＳ７２において、ウィンドウコントロール２０２により、ユーザＭの指の位置にウィンドウが存在するか否かが判定される。その結果、指の位置にウィンドウが存在すると判定された場合、ステップＳ７３に進み、そのウィンドウを対象ウィンドウとし、アクティベートする。一方、ステップＳ７２において、指の位置にウィンドウが存在しないと判定された場合、ウィンドウのアクティベート処理は行わず、処理を終了する。
【００２６】
（第２の実施の形態）
次に、第２の実施の形態として、アクティベートしたウィンドウを指で移動させる方法について説明する。図１７は、アクティベートしたウィンドウを指で移動させる方法を示す概要図である。
ユーザＭの位置Ｐ１および手の指先の位置Ｐ２は、第１の実施の形態に示した手順で取得する。指をスクリーン１２にタッチしたまま移動させることにより、アクティベートしたウィンドウＷ３を移動させることができる。
図１８は、ウィンドウを移動させるときの処理手順を示すフローチャートである。まず、ステップＳ８１において、画像処理プログラム２０６は、ＣＣＤカメラ１６から画像取り込み手段を通して取得した画像と、ＲＡＭ１０２に保存されている参照画像とを差分し、差分画像を取得し、そのサイズを算出する。
図９は、差分画像取得手順を示すフローチャートである。まず、ステップＳ３１において、画像処理プログラム２０６は、参照画像をＲＡＭ１０２から読み出す。次に、ステップＳ３２において、ＣＣＤカメラ１６から現在の画像を取得する。次に、ステップＳ３３において、参照画像と現在の画像の同位置の輝度の差分を演算する。次に、ステップＳ３４において、演算した差分画像をＲＡＭ１０２に格納する。
【００２７】
図１３は、影のサイズ取得手順を示すフローチャートである。まず、ステップＳ４１において、画像処理プログラム２０６は、差分画像をＲＡＭ１０２から読み出す。次に、ステップＳ４２において、各画素の輝度値と閾値を比較し、各画素の輝度値が閾値より大きいか否かが判定される。その結果、各画素の輝度値が閾値より大きいと判定された場合、ステップＳ４３に進み、サイズカウンタの値に１だけを加算する。次に、ステップＳ４４において、その該当部分の輝度値を影画像（差分画像）としてＲＡＭ１０２に格納する。一方、ステップＳ４２において、ＲＡＭ１０２から読み出した差分画像の各画素の輝度値が閾値以下であると判定された場合、何も処理をせずに終了する。
次に、図１８のステップＳ８２に戻り、影画像（差分画像）の画素の面積が基準値Ａ１よりも大きく、かつ基準値Ａ２よりも小さいか否かが判定される。その結果、差分画像の画素の面積が基準値Ａ１よりも大きく、かつ基準値Ａ２よりも小さいと判定された場合、画像処理プログラム２０６は、ユーザＭが操作をしていると認識し、次のステップＳ８３の処理へ進む。ステップＳ８３においては、閾値を用いて影領域が抽出される。
一方、差分画像の画素の面積が基準値Ａ１よりも小さいか、または基準値Ａ２よりも大きいと判定された場合、エラーあるいはユーザＭが他の操作をしていると判断され、ステップＳ９０に進み、カウンタとアクティベート状態をリセットして待機する。なお、基準値Ａ１および基準値Ａ２は、キャリブレーションによって設定されるか、または任意の値として設定される。キャリブレーション手段については第１の実施の形態で述べた通りであるので、ここではその説明は省略する。
【００２８】
図１４は、影画像のサイズを閾値によって分別する手順を示すフローチャートである。まず、ステップＳ５１において、画像処理プログラム２０６は、影画像をＲＡＭ１０２から読み出す。次に、ステップＳ５２において、画像処理プログラム２０６により、影画像を構成する各画素の輝度値と閾値が比較され、各画素の輝度値が閾値より大きいか否かが判定される。
その結果、画素の輝度値が閾値より大きい（値が上である）と判定された場合、閾値上影カウンタの値に１だけ加算し、画素の輝度値が閾値以下である場合、閾値下影カウンタの値に１だけ加算する。なお、画素の輝度値は例えば２５６階調の値とされる。影画像を構成する全ての画素について上記判定が行われ、閾値上影カウンタの値および閾値下影カウンタの値がセットされる。
次に、図１８のステップＳ８４に戻り、閾値よりも下の画素（輝度値が閾値より小さい画素）の数が、閾値よりも上の画素（輝度値が閾値より大きい画素）の数よりも少ない場合、画像処理プログラム２０６は、手がスクリーン１２に接地している面積が多いと判断し、次のステップＳ８５の処理へ進む。
【００２９】
一方、閾値よりも下の画素（輝度値が閾値より小さい画素）の数が、閾値よりも上の画素（輝度値が閾値より大きい画素）の数よりも多いと判定された場合、手がスクリーン１２に接地している面積が少ないと判断され、次のステップＳ８５の処理には進まず、ステップＳ９０に進み、カウンタとアクティベート状態をリセットして待機する。閾値はキャリブレーションや任意の値として設定される。
次に、ステップＳ８５において、画像処理プログラム２０６は、差分画像の画素のうちスクリーン１２の縁に接地している位置を認識する。次に、画像処理プログラム２０６は、縁にある連続する画素の中間地点をユーザＭの位置として認識する。次に、ステップＳ８６において、影画像の先端部分の位置を指の位置として認識し、ＲＡＭ１０２に保存する。
【００３０】
図１５は、図１８のステップＳ８６において、指先の影のサイズおよび位置を取得する手順を示すフローチャートである。まず、ステップＳ６１において、画像処理プログラム２０６は、影画像をＲＡＭ１０２から読み出す。次に、ステップＳ６２において、ユーザＭの位置から一番遠い影の先端部分の位置を指の位置として認識し、ＲＡＭ１０２に保存する。
次に、ステップＳ６３において、影の先端部分の各画素の輝度値を閾値と比較し、輝度値が閾値より大きいか否かが判定される。その結果、輝度値が閾値よりも大きいと判定された場合、ステップＳ６４に進み、サイズカウンタの値に１だけ加算する。一方、輝度値が閾値よりも大きくないと判定された場合、サイズカウンタへの加算は行わない。全画素についてステップＳ６３およびステップＳ６４の処理を実行することにより、先端部の面積がサイズカウンタの値として求められる。
次に、図１８のステップＳ８７に戻り、画像処理プログラム２０６により、影画像の先端部分の面積が基準値Ｃ１よりも大きくかつ基準値Ｃ２よりも小さいか否かが判定される。その結果、影画像の先端部分の面積が基準値Ｃ１よりも大きくかつ基準値Ｃ２よりも小さいと判定された場合、画像処理プログラム２０６はある箇所を指差していると認識し、次のステップＳ８８の処理へ進む。
【００３１】
一方、先端部分の面積が基準値Ｃ１よりも小さいか、または基準値Ｃ２よりも大きいと判定された場合、次のステップＳ８８の処理には進まず、ステップＳ９０に進み、画像処理プログラム２０６は、カウンタとアクティベート状態をリセットして待機する。
ステップＳ８８においては、画像処理プログラム２０６は、今回認識した先端の位置と、前回認識した先端の位置とを比較し、今回認識した先端の位置と前回認識した先端の位置とが等しいか否かを判定する。その結果、画像処理プログラム２０６により、前回認識した先端の位置と今回認識した先端の位置とがほぼ等しいと判定された場合、次のステップＳ９１の処理へ進む。
一方、前回認識した先端の位置と今回認識した先端の位置とが等しくないと判定された場合、ユーザＭの意図が無いと判断され、次のステップＳ９１の処理には進まず、ステップＳ８９に進む。ステップＳ８９においては、ウィンドウはアクティベート済であるか否かが判定される。その結果、アクティベート済ではないと判定された場合、ステップＳ９０に進み、画像処理プログラム２０６は、カウンタとアクティベート状態とをリセットして待機する。
一方、アクティベート済であると判定された場合、ステップＳ９２に進み、先程認識した先端位置へウィンドウを移動させるために、ウィンドウコントロール２０２へ先端位置と移動させるべきウィンドウの識別情報を送る。画像処理プログラム２０６から上記情報を受け取ったウィンドウコントロール２０２は、該当するウィンドウを先端位置へ移動させる。
【００３２】
ステップＳ９１においては、画像処理プログラム２０６により、カウンタの値に１だけ加算される。次に、ステップＳ９３において、カウンタの値と、基準値Ｂとが比較され、カウンタの値が基準値Ｂより大きいか否かが判定される。その結果、カウンタの値が基準値Ｂより大きいと判定された場合、ステップＳ９４に進む。一方、カウンタの値が基準値Ｂ以下であると判定された場合、この時点では、意図が判断できないため、待機する。基準値Ｂは任意の値として設定される。その後、本処理を終了する。ここまでが、画像処理プログラム２０６の動作範囲である。
ステップＳ９４においては、ウィンドウのアクティベート処理が行われる。ウィンドウのアクティベート処理は、ウィンドウコントロール２０２によって行われ、アクティベート状態が保存される。
【００３３】
（第３の実施の形態）
次に、第３の実施の形態として、プログラムを起動する手順について説明する。図１９は、プログラムを起動する方法を示す概念図である。ユーザＭの位置Ｐ１および手の指先の位置Ｐ２は、第１の実施の形態で示した方法で取得される。
一定時間指先でタッチしたところがクリッカブルであるとウィンドウコントロール２０２によって判断されるならば、マウスのクリック動作と同様に、カテゴリが順次表示され、それを選択していくことで、目的とするプログラムを起動することができる。もちろん、指先を認識し、一定時間止まったところでポイントし、指先を離したところで実行する手法は、プログラムの起動だけではなく、ウィンドウに付随するメニューの操作など、他の用途にも利用できることは言うまでもない。
【００３４】
図２０は、プログラム起動の処理手順を示すフローチャートである。まず、ステップＳ１０１において、画像処理プログラム２０６は、カメラ１６から画像取り込み手段を通して取得した画像とＲＡＭ１０２に保存されている参照画像の差分画像を取得する。
図９は、差分画像を取得する手順を示すフローチャートである。まず、ステップＳ３１において、画像処理プログラム２０６は、ＲＡＭ１０２から参照画像を読み出す。次に、ステップＳ３２において、ＣＣＤカメラ１６によって撮像された現在の画像を取得する。次に、ステップＳ３３において、画像処理プログラム２０６は、参照画像と現在の画像の同位置の輝度の差分を演算する。次に、ステップＳ３４において、演算によって得られた差分画像がＲＡＭ１０２に供給され、格納される。
【００３５】
図１３は、影のサイズ取得手順を示すフローチャートである。まず、ステップＳ４１において、画像処理プログラム２０６は、図９のステップＳ３４においてＲＡＭ１０２に格納された差分画像をＲＡＭ１０２から読み出す。次に、ステップＳ４２において、ＲＡＭ１０２から読み出した差分画像の各画素の輝度値が閾値より大きいか否かが判定される。
その結果、差分画像の各画素の輝度が閾値より大きい場合、ステップＳ４３に進み、サイズカウンタを加算し、ステップＳ４４において、その該当部分の輝度を影画像としてＲＡＭ１０２に格納する。閾値は例えば、２５６階調に対して４０程度とされる。一方、ステップＳ４２において、ＲＡＭ１０２から読み出した差分画像の各画素の輝度値が閾値以下である場合、何も処理はせず、終了する。
【００３６】
次に、図２０のステップＳ１０２に戻り、影画像（差分画像）の画素の面積が基準値Ａ１よりも大きく、かつ基準値Ａ２よりも小さいか否かが判定される。その結果、差分画像の画素の面積が基準値Ａ１よりも大きく、かつ基準値Ａ２よりも小さいと判定された場合、画像処理プログラム２０６は、ユーザＭが操作をしていると認識し、次のステップＳ１０３の処理へ進む。ステップＳ１０３においては、閾値を用いて影領域が抽出される。
一方、差分画像の画素の面積が基準値Ａ１よりも小さいか、または基準値Ａ２よりも大きいと判定された場合、エラーあるいはユーザＭが他の操作をしていると判断され、ステップＳ１１０に進み、カウンタとアクティベート状態をリセットして待機する。なお、基準値Ａ１および基準値Ａ２は、キャリブレーションによって設定されるか、または任意の値として設定される。キャリブレーション手段については第１の実施の形態で述べた通りであるので、ここではその説明は省略する。
【００３７】
図１４は、影画像のサイズを閾値によって分別する手順を示すフローチャートである。まず、ステップＳ５１において、画像処理プログラム２０６は、影画像をＲＡＭ１０２から読み出す。次に、ステップＳ５２において、画像処理プログラム２０６により、影画像を構成する各画素の輝度値と閾値が比較され、各画素の輝度値が閾値より大きいか否かが判定される。
その結果、画素の輝度値が閾値より大きい（値が上である）と判定された場合、閾値上影カウンタの値に１だけ加算し、画素の輝度値が閾値以下である場合、閾値下影カウンタの値に１だけ加算する。なお、画素の輝度値は例えば２５６階調の値とされる。影画像を構成する全ての画素について上記判定が行われ、閾値上影カウンタの値および閾値下影カウンタの値がセットされる。
次に、図２０のステップＳ１０４に戻り、閾値よりも下の画素（輝度値が閾値より小さい画素）の数が、閾値よりも上の画素（輝度値が閾値より大きい画素）の数よりも少ない場合、画像処理プログラム２０６は、手がスクリーン１２に接地している面積が多いと判断し、次のステップＳ１０５の処理へ進む。
【００３８】
一方、閾値よりも下の画素（輝度値が閾値より小さい画素）の数が、閾値よりも上の画素（輝度値が閾値より大きい画素）の数よりも多いと判定された場合、手がスクリーン１２に接地している面積が少ないと判断され、次のステップＳ１０５の処理には進まず、ステップＳ１１０に進み、カウンタとアクティベート状態をリセットして待機する。閾値はキャリブレーションや任意の値として設定される。
次に、ステップＳ１０５において、画像処理プログラム２０６は、差分画像の画素のうちスクリーン１２の縁に接地している位置を認識する。次に、画像処理プログラム２０６は、縁にある連続する画素の中間地点をユーザＭの位置として認識する。次に、ステップＳ１０６において、影画像の先端部分の位置を指の位置として認識し、ＲＡＭ１０２に保存する。
【００３９】
図１５は、図２０のステップＳ１０６において、指先の影のサイズおよび位置を取得する手順を示すフローチャートである。まず、ステップＳ６１において、画像処理プログラム２０６は、影画像をＲＡＭ１０２から読み出す。次に、ステップＳ６２において、ユーザＭの位置から一番遠い影の先端部分の位置を指の位置として認識し、ＲＡＭ１０２に保存する。
次に、ステップＳ６３において、影の先端部分の各画素の輝度値を閾値と比較し、輝度値が閾値より大きいか否かが判定される。その結果、輝度値が閾値よりも大きいと判定された場合、ステップＳ６４に進み、サイズカウンタの値に１だけ加算する。一方、輝度値が閾値よりも大きくないと判定された場合、サイズカウンタへの加算は行わない。全画素についてステップＳ６３およびステップＳ６４の処理を実行することにより、先端部の面積がサイズカウンタの値として求められる。
次に、図２０のステップＳ１０７に戻り、画像処理プログラム２０６により、影画像の先端部分の面積が基準値Ｃ１よりも大きくかつ基準値Ｃ２よりも小さいか否かが判定される。その結果、影画像の先端部分の面積が基準値Ｃ１よりも大きくかつ基準値Ｃ２よりも小さいと判定された場合、画像処理プログラム２０６はある箇所を指差していると認識し、次のステップＳ１０８の処理へ進む。
【００４０】
一方、先端部分の面積が基準値Ｃ１よりも小さいか、または基準値Ｃ２よりも大きいと判定された場合、次のステップＳ８８の処理には進まず、ステップＳ１１０に進み、画像処理プログラム２０６は、カウンタとアクティベート状態をリセットして待機する。
ステップＳ１０８においては、画像処理プログラム２０６は、今回認識した先端の位置と、前回認識した先端の位置とを比較し、今回認識した先端の位置と前回認識した先端の位置とが等しいか否かを判定する。その結果、画像処理プログラム２０６により、前回認識した先端の位置と今回認識した先端の位置とがほぼ等しいと判定された場合、次のステップＳ１０９の処理へ進む。
一方、前回認識した先端の位置と今回認識した先端の位置とが等しくないと判定された場合、ユーザＭの意図が無いと判断され、次のステップＳ１０９の処理には進まず、ステップＳ１１０に進む。
【００４１】
ステップＳ１０９においては、画像処理プログラム２０６により、カウンタの値に１だけ加算される。次に、ステップＳ１１１において、カウンタの値と、基準値Ｂとが比較され、カウンタの値が基準値Ｂより大きいか否かが判定される。その結果、カウンタの値が基準値Ｂより大きいと判定された場合、ステップＳ１１２に進む。一方、カウンタの値が基準値Ｂ以下であると判定された場合、この時点では、意図が判断できないため、待機する。基準値Ｂは任意の値として設定される。その後、本処理を終了する。
ステップＳ１１２においては、ウィンドウコントロール２０２により、対象となる場所がクリッカブルであるか否かが判定される。ウィンドウコントロール２０２により、クリッカブルであると判定された場合、クリックした結果を表示し、プログラムを起動処理を実行する。一方、クリックできないと判定された場合、待機する。その後、本処理を終了する。
【００４２】
（第４の実施の形態）
次に、対象ウィンドウの引き寄せ方法について説明する。図２１、図２２は、対象ウィンドウの引き寄せ方法を示す概念図である。図２１に示した方法では、対象ウィンドウＷ４をウィンドウＷ４ごと引き寄せる。図２２に示した方法では、対象ウィンドウＷ４のスクロールバーＢ１、Ｂ２をスクロールすることで引き寄せる。これらの引き寄せ方法は、ウィンドウＷ４の状態とユーザＭの手の位置などにより選択することができる。
図２３は、対象ウィンドウの引き寄せ処理の手順を示すフローチャートである。対象ウィンドウＷ４の引き寄せは、ユーザＭの手の位置がスクリーン１２から離れていて、一定時間同じ場所にとどまっているときに行われる処理である。
まず、ステップＳ１２１において、画像差分と影のサイズを取得する。即ち、ＣＣＤカメラ１６から画像取り込み手段（ＵＳＢデバイスコントローラ２０１）を介して取得した画像と、ＲＡＭ１０２に保存されている参照画像とから画像処理プログラム２０６によって差分画像（画像差分）が取得される。
【００４３】
図９は、差分画像を取得する手順を示すフローチャートである。まず、ステップＳ３１において、画像処理プログラム２０６は、ＲＡＭ１０２から参照画像を読み出す。図１０は、参照画像の例を示している。次に、ステップＳ３２において、ＣＣＤカメラ１６によって撮像された現在の画像を取得する。図１１は、スクリーン１２に接地して指差している場合に撮像された画像を示している。
次に、ステップＳ３３において、画像処理プログラム２０６は、参照画像と現在の画像の同位置の輝度の差分を演算する。図１２は、図１０に示した参照画像と図１１に示した現在の画像との差分を演算して得られた差分画像を示している。次に、ステップＳ３４において、演算によって得られた差分画像がＲＡＭ１０２に供給され、格納される。
【００４４】
図１３は、影のサイズ取得手順を示すフローチャートである。まず、ステップＳ４１において、画像処理プログラム２０６は、図９のステップＳ３４においてＲＡＭ１０２に格納された差分画像をＲＡＭ１０２から読み出す。次に、ステップＳ４２において、ＲＡＭ１０２から読み出した差分画像の各画素の輝度が閾値以上であるか否かが判定される。
その結果、差分画像の各画素の輝度が閾値以上であると判定された場合、ステップＳ４３に進み、サイズカウンタを加算し、ステップＳ４４において、その該当部分の輝度を影画像としてＲＡＭ１０２に格納する。閾値は例えば、２５６階調に対して４０程度とされる。一方、ステップＳ４２において、ＲＡＭ１０２から読み出した差分画像の各画素の輝度が閾値以下であると判定された場合、何も処理をせず、終了する。
その後、図２３のステップＳ１２２に戻り、画像処理プログラム２０６は、影画像の画素の面積が基準値Ａ１よりも大きく、かつ基準値Ａ２よりも小さいか否かを判定し、影画像の画素の面積が基準値Ａ１よりも大きく、かつ基準値Ａ２よりも小さい場合、ユーザＭが操作をしていると認識し、ステップＳ１２３の処理へ進む。ステップＳ１２３においては、閾値を用いて影領域が抽出される。
【００４５】
一方、差分画像の画素の面積（影画像の画素の面積）が基準値Ａ１よりも小さいか、または基準値Ａ２よりも大きいと判定された場合、ステップＳ１２３の処理には進まず、エラーあるいはユーザＭが他の操作をしていると判断し、ステップＳ１２９に進み、カウンタをリセットして待機する。
なお、基準値Ａ１およびＡ２は、キャリブレーションによって設定されるか、または任意の値として設定される。図示しないが、キャリブレーションの方法としては、スクリーン１２の上に接触せずに手をかざす場合と、スクリーン１２の上に手を置く場合の影情報をそれぞれ読み取り、スクリーン１２の上に接触せずに手をかざす場合には認識される影の面積がほとんど無くなり、かつ、スクリーン１２の上に手を置くと認識される影の面積があるような閾値Ａ１および閾値Ａ２をキャリブレーションプログラムによって設定し、ＲＡＭ１０２やＨＤＤ１０３などに保存される。
【００４６】
図１４は、影画像のサイズを閾値によって分別する手順を示すフローチャートである。まず、ステップＳ５１において、画像処理プログラム２０６は、影画像をＲＡＭ１０２から読み出す。次に、ステップＳ５２において、画像処理プログラム２０６により、影画像を構成する各画素の輝度値と閾値が比較され、各画素の輝度値が閾値より大きいか否かが判定される。
その結果、画素の輝度値が閾値より大きい（値が上である）と判定された場合、閾値上影カウンタの値に１だけ加算し、画素の輝度値が閾値以下である場合、閾値下影カウンタの値に１だけ加算する。なお、画素の輝度値は例えば２５６階調の値とされる。影画像を構成する全ての画素について上記判定が行われ、閾値上影カウンタの値および閾値下影カウンタの値がセットされる。
次に、図２３のステップＳ１２４に戻り、閾値よりも下の画素の数が、閾値よりも上の画素の数よりも少ないか否かが判定され、閾値よりも下の画素の数が、閾値よりも上の画素の数よりも少ないと判定された場合、画像処理プログラム２０６により、手がスクリーン１２に接地している面積が多いと判断され、ステップＳ１２５の処理へ進む。
【００４７】
一方、閾値よりも下の画素の数が、閾値よりも上の画素の数よりも少なくない場合（閾値よりも上の画素の数が、閾値よりも下の画素の数以上である場合）には、手がスクリーン１２に接地している面積が少ないと判断され、次のステップＳ１２５の処理には進まず、ステップＳ１２９に進み、カウンタをリセットして待機する。上記閾値はキャリブレーションや任意の値として設定される。
次に、ステップＳ１２５において、画像処理プログラム２０６は、差分画像を構成する各画素のうちスクリーン１２の縁に接地している画素の位置を認識する。また、縁にある連続する画素の中間地点をユーザＭの位置として認識する。次に、ステップＳ１２６において、影画像の先端部分の位置を指の位置として認識し、ＲＡＭ１０２に保存する。
【００４８】
図１５は、図２３のステップＳ１２６において、指先の影のサイズおよび位置を取得する手順を示すフローチャートである。まず、ステップＳ６１において、画像処理プログラム２０６は、影画像をＲＡＭ１０２から読み出す。次に、ステップＳ６２において、ユーザＭの位置から一番遠い影の先端部分の位置を指の位置として認識し、ＲＡＭ１０２に保存する。
次に、ステップＳ６３において、影の先端部分の各画素の輝度値を閾値と比較し、輝度値が閾値より大きいか否かが判定される。その結果、輝度値が閾値よりも大きいと判定された場合、ステップＳ６４に進み、サイズカウンタの値に１だけ加算する。一方、輝度値が閾値よりも大きくないと判定された場合、サイズカウンタへの加算は行わない。全画素についてステップＳ６３およびステップＳ６４の処理を実行することにより、先端部の面積がサイズカウンタの値として求められる。
次に、図２３のステップＳ１２７に戻り、画像処理プログラム２０６は、今回認識した先端の位置と、前回認識した先端の位置とを比較し、今回認識した先端の位置と前回認識した先端の位置とが等しいか否かを判定する。その結果、画像処理プログラム２０６により、前回認識した先端の位置と今回認識した先端の位置とがほぼ等しいと判定された場合、次のステップＳ１２８の処理へ進む。
【００４９】
一方、前回認識した先端の位置と今回認識した先端の位置とが等しくないと判定された場合、ユーザＭの意図が無いと判断され、次のステップＳ１２８の処理には進まず、ステップＳ１２９に進み、カウンタをリセットして待機する。
ステップＳ１２８においては、画像処理プログラム２０６により、カウンタの値に１だけ加算される。次に、ステップＳ１３０において、カウンタの値と、基準値Ｂとが比較され、カウンタの値が基準値Ｂより大きいか否かが判定される。その結果、カウンタの値が基準値Ｂより大きいと判定された場合、ステップＳ１３１に進む。一方、カウンタの値が基準値Ｂ以下であると判定された場合、この時点では、意図が判断できないため、待機する。Ｂは任意の値として設定され、本処理を終了する。ここまでが、画像処理プログラム２０６の動作範囲である。
次に、ステップＳ１３１において、ウィンドウの引き寄せ処理が行われる。図２４は、ウィンドウの引き寄せ選択処理を示すフローチャートである。図２３に示したフローチャートの処理により、画像処理プログラム２０６は、影画像からユーザＭの手の位置を推測し、ユーザＭの手の位置を値としてウィンドウコントロール２０２に渡す。
【００５０】
図２５は、対象ウィンドウを指定する方法を示す概念図である。図２５に示したように、ウィンドウコントロール２０２は、ユーザＭの位置Ｐ１から手の位置Ｐ２に延ばした線の延長線上にあるウィンドウＷ４を対象ウィンドウとする。対象となるウィンドウが無い場合、引き寄せ選択の処理を終了する。
ウィンドウコントロール２０２により、対象ウィンドウにスクロールバーがあると判断された場合、手と推測される位置Ｐ１と、ウィンドウＷ４の位置を比較する。手の位置として認識された場所Ｐ１とウィンドウＷ４が重なる場合、ウィンドウコントロール２０２は、スクロールバーＢ１、Ｂ２がユーザＭの方へスクロールできるゆとりがあるか否かを確認する。ゆとりがある場合には、ウィンドウＷ４をスクロールする（図２２）。ゆとりが無い場合には、ウィンドウコントロール２０２は、ウィンドウを引き寄せる操作をする（図２１）。
手とウィンドウＷ４が重ならない場合、ウィンドウコントロール２０２は、ウィンドウを引き寄せる（図２１）。また、ウィンドウＷ４にスクロールバーＢ１、Ｂ２が無く、手の位置がウィンドウＷ４と重ならない場合、ウィンドウコントロール２０２は、ウィンドウＷ４を引き寄せる（図２１）。手の位置とウィンドウが重なる場合にはウィンドウコントロール２０２は、ウィンドウＷ４をスクロールする（図２２）。
【００５１】
図２５は、対象ウィンドウのある方向を検知する方法を示す概念図である。手前にある○印がユーザＭの位置Ｐ１として認識され、画面中央右にある○印が手の位置Ｐ２として画像処理プログラム２０６により認識されたとする、ウィンドウコントロール２０２は、ユーザＭの位置Ｐ１と手の位置Ｐ２とを結んだ直線上の先にあるウィンドウＷ４が対象ウィンドウであるとして認識する。
図２６は参照画像を示しており、図２７は、スクリーン１２から手が離れている場合の実際の画像を示している。図２８は、図２７に示したスクリーン１２から手が離れている場合の実際の画像と、図２６に示した参照画像との差分を取った差分画像を示している。図２８において、点Ｐ１は、ユーザＭの位置を表し、点Ｐ２は、指先の位置を表している。
【００５２】
図２９は、スクリーン１２にペンで筆記し、手がスクリーン１２に接地している場合の実際の画像を示しており、図３０は図２９に示した手がスクリーン１２に接地している場合の実際の画像と、図２６に示した参照画像との差分を取った差分画像を示している。図３０において、点Ｐ１は、ユーザＭの位置を表し、点Ｐ２は、指先の位置を表している。
このように、画像処理プログラム２０６は、参照画像との差分により、手の影を取得でき、その輝度によって、ユーザＭの手の状態を知ることができる。これにより、ウィンドウコントロール２０２を通してインタラクションを行うことができる。
以上説明したように、各実施の形態においては、スクリーン１２に落ちるユーザＭの影を元にユーザＭの意図を判断することができる。本実施の形態のポイントは、拡散スクリーン１２に落ちる影の形状解析とカウンタを用いた時間推移によるユーザＭの動作の判断である。
拡散スクリーン１２を利用することで、影の輝度がスクリーン１２とユーザＭの手との距離によって変化する。また、ユーザＭの動作が一時停止するのをユーザＭの意図として取得することによって、誤動作を防ぐことができる。例えば、重なっているウィンドウをアクティベートする場合においては、目的のウィンドウの上で指先をポイントすることで、その形状をシステムで読み取り、一定時間過ぎると、アクティベートさせるようにすることができる。
【００５３】
また、ウィンドウを移動させる場合には、アクティベートさせたウィンドウをタッチしたままの指先を目的の場所に移動させることで、ウィンドウを移動させる。タッチしたままスクリーン１２上を指で滑らせる操作は、プログラムの起動などにも利用することができる。
スクリーン１２上の位置を指先の一時停止動作を含む認識によって辿り、最後にスクリーン１２から指を離すことで、プログラムの起動を行うことができる。もちろん、プログラムの起動ばかりではなく、同操作によりウィンドウのメニューの操作も可能である。
あるいは、ユーザＭが手を伸ばして空中で一時停止した場合には、ユーザＭは手の先にある領域を利用したいのだと判断し、その領域を引き寄せる。領域の引き寄せ方法は、「ウィンドウを引き寄せる」、「ウィンドウをスクロールする」という方法が考えられる。どちらの引き寄せ方法が選択されるかは、対象となる領域にどのような形態で表示されているかを判断して決定される。
対象となる領域の判断は、影を用いてユーザＭの位置を特定し、ユーザＭの位置と手の先の影を線で結んだ先にある領域であると判断するようにしても良い。ユーザＭが利用したい領域が引き寄せられた後、ユーザＭがスクリーン１２に手を近づけることにより、手の影の違いを判断して、引き寄せを停止させるようにすることができる。
なお、上記実施の形態の構成及び動作は例であって、本発明の趣旨を逸脱しない範囲で適宜変更することができることは言うまでもない。
【産業上の利用可能性】
【００５４】
本発明は、例えば、投影型の画像表示装置だけでなく、その他の種々の表示装置にも適用することができる。
【図面の簡単な説明】
【００５５】
【図１】本発明が適用される画像表示装置の第１の実施の形態の構成例を示す図である。
【図２】画像表示装置の使用形態を示す斜視図である。
【図３】情報処理機器の構成例を示すブロック図である。
【図４】ソフトウェアの構成例を示す図である。
【図５】各手段の処理手順を示す図である。
【図６】デスクトップの現状の様子を示す図である。
【図７】ウィンドウのアクティベートの概念図を示す図である。
【図８】アクティベートの処理手順を示すフローチャートである。
【図９】差分画像を取得する手順を示すフローチャートである。
【図１０】参照画像の例を示す図である。
【図１１】スクリーンに接地して指差している場合に撮像された画像の例を示す図である。
【図１２】差分画像の例を示す図である。
【図１３】影のサイズ取得手順を示すフローチャートである。
【図１４】影画像のサイズを閾値によって分別する手順を示すフローチャートである。
【図１５】指先の影のサイズおよび位置を取得する手順を示すフローチャートである。
【図１６】ウィンドウをアクティベートする手順を示すフローチャートである。
【図１７】アクティベートしたウィンドウを指で移動させる方法を示す概要図である。
【図１８】ウィンドウを移動させるときの処理手順を示すフローチャートである。
【図１９】プログラムを起動する方法を示す概念図である。
【図２０】プログラム起動の処理手順を示すフローチャートである。
【図２１】対象ウィンドウの引き寄せ方法を示す概念図である。
【図２２】対象ウィンドウの引き寄せ方法を示す概念図である。
【図２３】対象ウィンドウの引き寄せ処理の手順を示すフローチャートである。
【図２４】ウィンドウの引き寄せ選択処理を示すフローチャートである。
【図２５】対象ウィンドウを指定する方法を示す概念図である。
【図２６】参照画像を示す図である。
【図２７】スクリーンから手が離れている場合の実際の画像を示す図である。
【図２８】差分画像の例を示す図である。
【図２９】スクリーンにペンで筆記し、手がスクリーンに接地している場合の実際の画像を示す図である。
【図３０】差分画像の例を示す図である。
【符号の説明】
【００５６】
１  画像表示装置、１１  書込面、１２  スクリーン、１３  投影面、１４  筐体、１５  プロジェクタ、１６  ＣＣＤカメラ、１００  情報処理機器、１０１  ＣＰＵ、１０２  ＲＡＭ、１０３  ＲＯＭ、１０４  ディスプレイコントローラ、１０５  ＵＳＢコントローラ、２００  基本ソフト、２０１  ＵＳＢデバイスドライバ、２０２  ウィンドウコントロール、２０３  ディスプレイコントロールドライバ、２０４  設定値、２０５  応用ソフト、２０６  画像処理プログラム、２０７  各種アプリケーション
【図１】
0004933389.tif 000002
【図２】
0004933389.tif 000003
【図３】
0004933389.tif 000004
【図４】
0004933389.tif 000005
【図５】
0004933389.tif 000006
【図６】
0004933389.tif 000007
【図７】
0004933389.tif 000008
【図８】
0004933389.tif 000009
【図９】
0004933389.tif 000010
【図１０】
0004933389.tif 000011
【図１１】
0004933389.tif 000012
【図１２】
0004933389.tif 000013
【図１３】
0004933389.tif 000014
【図１４】
0004933389.tif 000015
【図１５】
0004933389.tif 000016
【図１６】
0004933389.tif 000017
【図１７】
0004933389.tif 000018
【図１８】
0004933389.tif 000019
【図１９】
0004933389.tif 000020
【図２０】
0004933389.tif 000021
【図２１】
0004933389.tif 000022
【図２２】
0004933389.tif 000023
【図２３】
0004933389.tif 000024
【図２４】
0004933389.tif 000025
【図２５】
0004933389.tif 000026
【図２６】
0004933389.tif 000027
【図２７】
0004933389.tif 000028
【図２８】
0004933389.tif 000029
【図２９】
0004933389.tif 000030
【図３０】
0004933389.tif 000031