JP2015191250A - 情報処理装置、及びその制御方法、プログラム、記録媒体 - Google Patents
情報処理装置、及びその制御方法、プログラム、記録媒体 Download PDFInfo
- Publication number
- JP2015191250A JP2015191250A JP2014065680A JP2014065680A JP2015191250A JP 2015191250 A JP2015191250 A JP 2015191250A JP 2014065680 A JP2014065680 A JP 2014065680A JP 2014065680 A JP2014065680 A JP 2014065680A JP 2015191250 A JP2015191250 A JP 2015191250A
- Authority
- JP
- Japan
- Prior art keywords
- point
- indicated
- points
- input
- positions
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Abstract
【課題】理想的な入力点を推定することにより、マルチタッチジェスチャの誤認識を低減することができる情報処理装置を提供する。【解決手段】情報処理装置100は、ユーザによって指示される入力領域上の指示位置を検出し、検出された指示位置と、同時刻において指示されている複数の指示位置が検出されている場合には当該複数の指示位置の間の距離の変化量を示す情報とを保持する。また、検出された指示位置の数と直近に検出された指示位置の数とを比較し、これにより指示位置の数が減少したか否かを判定する。そして、指示位置の数が減少したと判定された場合、情報処理装置100が保持する指示位置と変化量を示す情報とに基づいて、当該減少した指示位置を推定する。情報処理装置100は、また、保持された指示位置と推定された指示位置とに基づいて、ユーザによる指示を解釈する。【選択図】図1
Description
本発明は、マルチタッチ入力を検出する技術に関する。
従来、タッチパネルにおいてその面上の2点を同時に押し、これにより2点を入力する技術が提案されている。また、その同時2点の入力軌跡を認識し、マルチタッチジェスチャを処理する携帯端末も提案されている。
また、特許文献1に開示された座標入力/検出装置では、入力されたタッチ入力の位置の2次元座標間の変化の方向、及び、その長さをベクトル座標化した情報に基づき、タッチ状態が途切れたか否か、入力がかすれたか否かを判断する。入力がかすれたと判断した場合、そのかすれ部分を補正する、というものである。
特許文献2に開示された電子機器では、タッチパネルに対して1点が指示されたか、あるいは2点が指示されたかの判別を行う。1点が指示されていると判別した場合、第1のモードで図形処理を行い、また、2点が指示されていると判別した場合、第2のモードで図形処理を行う、というものである。
しかしながら、特許文献1に開示された座標入力/検出装置が行うかすれ補正は、不連続な点の間を直線で繋ぐ様に補正する。そのため、補正後の軌跡の形状は、本来ユーザが入力した形状とは異なる形状になってしまう場合がある。さらに、補正後の形状を認識してジェスチャコマンドとする場合には、誤認識の要因になり得る。
また、特許文献2に開示された電子機器において、例えば指先を用いて2点を指示している途中で当該指先の圧力が変動した場合、あるいは検出系の限界から1点と検出されたり、再び2点と検出されたりする場合がある。この場合、第1のモードと第2のモードが交互に切り替わってしまい、その結果、本来であれば第2のモードで図形処理を継続する必要があっても、この状態を継続することができない、という課題が残る。
本発明は、マルチタッチジェスチャの同時入力点が2点から1点に途切れて2点に戻るような状態でも理想的な入力点を推定することにより、マルチタッチジェスチャの誤認識を低減することができる情報処理装置を提供することを、主たる目的とする。
本発明の情報処理装置は、ユーザによって指示される入力領域上の指示位置を検出する検出手段と、前記検出された指示位置と、前記検出手段が同時刻において指示されている複数の指示位置を検出している場合には当該複数の指示位置の間の距離の変化量を示す情報とを保持する保持手段と、前記検出された指示位置の数と直近に検出された指示位置の数とを比較し、これにより指示位置の数が減少したか否かを判定する判定手段と、前記指示位置の数が減少したと判定された場合、前記保持手段に保持された指示位置と前記変化量を示す情報とに基づいて、当該減少した指示位置を推定する推定手段と、前記保持手段に保持された指示位置と前記推定手段が推定した指示位置とに基づいて、前記ユーザによる指示を解釈する解釈手段と、を有することを特徴とする。
本発明によれば、マルチタッチジェスチャの同時入力点が2点から1点に途切れて2点に戻るような状態でも理想的な入力点を推定することにより、マルチタッチジェスチャの誤認識を低減することができる。
以下、図面を参照しながら実施形態を説明する。本実施形態では、例えば2本以上の指により入力された指示位置を検出可能なタッチパネルを有する情報処理装置を例に挙げて説明する。
[第1実施形態]
図1は、本実施形態に係る情報処理装置の構成の一例を説明するための図である。図1(a)は、情報処理装置100の概略構成図であり、図1(b)は、情報処理装置100の機能構成の一例を示す図である。
図1は、本実施形態に係る情報処理装置の構成の一例を説明するための図である。図1(a)は、情報処理装置100の概略構成図であり、図1(b)は、情報処理装置100の機能構成の一例を示す図である。
図1(a)に示す情報処理装置100は、LCD(Liquid Crystal Display:液晶ディスプレイ)3、タッチパネル4、CPU(Central Processing Unit)5、RAM(Random Access Memory)6、ROM(Read Only Memory)7、システムバス8を含んで構成される。なお、各構成はシステムバス8を介して相互に情報伝達が可能に接続される。
LCD3は、例えば液晶表示素子、液晶制御回路、表示メモリから構成された液晶ディスプレイである。LCD3は、CPU5からの指示に応じてその表示画面に文字、画像などを表示する。
タッチパネル4は、ユーザが指あるいはスタイラスなどを用いて同時刻において入力した複数の指示位置(複数の点)を検出可能に構成されたタッチパネルであり、抵抗膜方式、あるいは静電誘導方式の検出機構を含んで構成される。タッチパネル4は、また、同時刻において指示されている複数の指示位置のXY座標値を所定の時間間隔(サンプリングレート:例えば、1m秒間隔)に従って順次連続して検出し、検出結果をIDと共にCPU5に送信する。なお、IDは、一の指示位置を起点に連続して検出された指示位置をそれぞれ識別可能に関連付けて一意に識別するためのものである。また、複数の指示位置を順次連続して検出する際には、それぞれの指示位置を検出するタイミングに時間差が生じることがあるが、本実施形態ではその場合でも実質的に「同時に検出される」と表現する場合がある。
タッチパネル4は、ユーザが指あるいはスタイラスなどを用いて同時刻において入力した複数の指示位置(複数の点)を検出可能に構成されたタッチパネルであり、抵抗膜方式、あるいは静電誘導方式の検出機構を含んで構成される。タッチパネル4は、また、同時刻において指示されている複数の指示位置のXY座標値を所定の時間間隔(サンプリングレート:例えば、1m秒間隔)に従って順次連続して検出し、検出結果をIDと共にCPU5に送信する。なお、IDは、一の指示位置を起点に連続して検出された指示位置をそれぞれ識別可能に関連付けて一意に識別するためのものである。また、複数の指示位置を順次連続して検出する際には、それぞれの指示位置を検出するタイミングに時間差が生じることがあるが、本実施形態ではその場合でも実質的に「同時に検出される」と表現する場合がある。
また、タッチパネル4は、接触なく指(またはスタイラス等)の近接を検知し、これにより指示位置を取得可能に構成することもできる。つまり、本実施形態に係る情報処理装置100においては、タッチパネル4の面上に触れるマルチタッチ入力による指示位置、この面上に触れない近接入力による指示位置を検出可能に構成することができる。
また、以下の説明においては、同時2点の入力によるマルチタッチジェスチャをタッチパネル4が検出するものとする。なお、タッチパネル4は、3点あるいは4点の入力によるマルチタッチジェスチャの検出にも対応することができる。
また、以下の説明においては、同時2点の入力によるマルチタッチジェスチャをタッチパネル4が検出するものとする。なお、タッチパネル4は、3点あるいは4点の入力によるマルチタッチジェスチャの検出にも対応することができる。
CPU5は、ROM7に記憶されているプログラムを実行することにより情報処理装置100の動作を制御する。RAM6は、CPU5が実行するプログラム、各種データなどを読み込む。RAM6は、また、CPU5がプログラムを実行する際のワーク領域として利用される。ROM7は、例えばCPU5により実行される各種プログラム、各種データを記録する。
システムバス8は、CPU5、RAM6、ROM7、及び、その他のデバイス等とのデータの授受を仲介する。
なお、LCD3とタッチパネル4を一体的に構成したタッチパネルディスプレイを情報処理装置100の構成として採用することもできる。
システムバス8は、CPU5、RAM6、ROM7、及び、その他のデバイス等とのデータの授受を仲介する。
なお、LCD3とタッチパネル4を一体的に構成したタッチパネルディスプレイを情報処理装置100の構成として採用することもできる。
図1(b)に示す各機能部は、CPU5が所定のプログラムを実行することにより実現される情報処理装置100の機能部である。
制御部10は、情報処理装置100が有する各機構部を制御する。
入力部11は、タッチパネル4に対し同時に入力された複数の指示位置それぞれのXY座標値をサンプリングレートに従って検出する。このように、入力部11は、ユーザによって指示される入力領域上の指示位置を検出する検出手段として機能する。なお、入力部11は、1点のXY座標値を検出することができることは言うまでもない。
また、入力部として、ステレオカメラ等で、手の画像を入力して、指先の高さを検出しタッチ点を検出する物であっても良い。又、3次元のデータが取れる距離センサを用いて指先の位置を検出する物であっても良い。
制御部10は、情報処理装置100が有する各機構部を制御する。
入力部11は、タッチパネル4に対し同時に入力された複数の指示位置それぞれのXY座標値をサンプリングレートに従って検出する。このように、入力部11は、ユーザによって指示される入力領域上の指示位置を検出する検出手段として機能する。なお、入力部11は、1点のXY座標値を検出することができることは言うまでもない。
また、入力部として、ステレオカメラ等で、手の画像を入力して、指先の高さを検出しタッチ点を検出する物であっても良い。又、3次元のデータが取れる距離センサを用いて指先の位置を検出する物であっても良い。
記憶部12は、同時入力された2つの指示位置間(2点間)の相対変化量を記憶する。具体的には、同時入力された2つの指示位置のXY座標値を記憶し、その後の2点間の位置の相対的変化量を記憶する。このように、記憶部12は、入力部11の検出結果、及び、変化量などの各種情報を保持する保持手段として機能する。
例えば、2つの指示位置が同一速度、且つ、同一方向へ同時に移動するならば、これらの相対的距離は変化しない。また、2つの指示位置を繋ぐ直線の中心点を中心にして当該2つの指示位置が同一の速度、且つ、同一の回転方向で回転移動するならば、これらの相対的距離は変化しない。なお、この場合には、回転移動に伴い2つの指示位置を繋ぐ直線の方向角度が変化することになる。
例えば、2つの指示位置が同一速度、且つ、同一方向へ同時に移動するならば、これらの相対的距離は変化しない。また、2つの指示位置を繋ぐ直線の中心点を中心にして当該2つの指示位置が同一の速度、且つ、同一の回転方向で回転移動するならば、これらの相対的距離は変化しない。なお、この場合には、回転移動に伴い2つの指示位置を繋ぐ直線の方向角度が変化することになる。
判定部13は、入力部11の検出結果が変化したか否かを判定する。具体的には、例えば入力部11が最初に同時入力された2点を検出し、2点の入力が継続されている途中に一方の点の検出が上手くいかないことがある。このような場合、ユーザは、2点の入力を継続しているつもりであっても、例えば一方の指がタッチパネル4の面上から離れてしまい、情報処理装置100においては1点しか検出されない。このように、判定部13は、同時入力された指示位置の数に変化があるか否か、つまりその数が減少したか否かを判定し、判定結果を後述する推定部14に通知する。なお、2点の入力が継続されている途中に入力部11により検出されなかった1つの指示位置を消失点と称す。
推定部14は、判定部13から指示位置の減少した旨の通知の受信を契機に、記憶部12に記憶されている2点の相対変化量、及び、検出が継続している1点の変化量に基づき検出されなかった指示位置(消失点)を推定する。推定部14は、また、推定した指示位置を仮想位置(仮想点)として生成する。なお、生成した仮想点は、記憶部12に記憶される。詳細は、後述する。
解釈部15は、例えばタップ、スクロール、ピンチ、スワイプなどのマルチタッチジェスチャの種類を識別する。具体的には、解釈部15は、入力部11が検出した指示位置のXY座標値と、推定部14が生成した仮想位置のXY座標値とに基づいてマルチタッチジェスチャの種類を識別する。
なお、マルチタッチジェスチャの種類を識別するための認識アルゴリズムは、従来から広く用いられている方式を採用することが可能である。例えば2点の相対変化量に基づき識別することができる。解釈部15は、例えば検出される2点間の距離が変化することなく当該2点が移動している場合、ユーザによる指示はダブルドラッグジェスチャであると解釈する。また、検出される2点が離れる方向に移動したり、あるいは近づく方向に移動したりしている場合、解釈部15はピンチジェスチャであると解釈する。また、2点を繋ぐ直線の方向角度が加算したり、減算したりする場合、解釈部15は回転ジェスチャであると解釈する。
なお、マルチタッチジェスチャの種類を識別するための認識アルゴリズムは、従来から広く用いられている方式を採用することが可能である。例えば2点の相対変化量に基づき識別することができる。解釈部15は、例えば検出される2点間の距離が変化することなく当該2点が移動している場合、ユーザによる指示はダブルドラッグジェスチャであると解釈する。また、検出される2点が離れる方向に移動したり、あるいは近づく方向に移動したりしている場合、解釈部15はピンチジェスチャであると解釈する。また、2点を繋ぐ直線の方向角度が加算したり、減算したりする場合、解釈部15は回転ジェスチャであると解釈する。
表示部16は、LCD3の表示画面に各種情報を表示する。
図2(a)、(b)は、従来の補正方式によるかすれ補正を説明するための図である。なお、「かすれ」とは、前述した消失点が発生するようなケースである。
従来の補正方式として、特開2001−084104号公報に開示された座標入力/検出装置が行うかすれ補正を例に挙げて説明する。なお、図2(a)は、入力の開始位置から終了位置までの間において、適切に検出された入力軌跡を実線矢印で示しており、検出されなかった入力軌跡を点線矢印で示している。
従来の補正方式として、特開2001−084104号公報に開示された座標入力/検出装置が行うかすれ補正を例に挙げて説明する。なお、図2(a)は、入力の開始位置から終了位置までの間において、適切に検出された入力軌跡を実線矢印で示しており、検出されなかった入力軌跡を点線矢印で示している。
特開2001−084104号公報に開示された座標入力/検出装置は、ベクトル化手段によるベクトル値に基づき、かすれか否かを判断するかすれ判断手段を備える。この座標入力/検出装置では、かすれ判断手段により例えば図2(a)に示す点線矢印部分がかすれ部分であると判断した場合、そのかすれ部分を直線で補間する。具体的には、図2(b)に示す座標点Aと座標点Bを直線で繋ぐことにより補間している。
図2(a)と図2(b)とを見比べると明らかなように、直線で繋がれた座標点A、B間には、本来であれば複数の座標点、つまり消失点が存在している。そのため、単に座標点A、B間を直線で繋ぐ補間を行ってしまうと、例えばマルチタッチジェスチャの識別において誤認識が生じてしまうことになる。
図3は、マルチタッチジェスチャの一例を説明するための図である。具体的には、図3(a)は、マルチドラッグジェスチャの入力例、図3(b)は、回転ジェスチャの入力例、図3(c)は、ピンチインジェスチャの入力例である。
図3(a)は、タッチパネル4の入力領域上でユーザが行ったマルチドラックジェスチャの入力例であり、同時入力された2点をX軸方向右側に向けて移動させた際の入力軌跡を矢印で示している。図3(a)中において矢印の端部に位置する点a11、a12、a13、a21、a22、a23はサンプリングレートに従って検出された指示位置の一例である。また、点a11と点a21、点a13と点a23はそれぞれ同じタイミングで検出された指示位置である。なお、点a22は、推定部14により生成された仮想点であり、点a12の検出タイミングにおいて検出されなかった消失点に対応するものである。また、図3(a)中に示す距離dxは、X軸方向における点a11と点a12間の距離を示している。
図3(b)は、回転ジェスチャの入力例であり、同時入力された2点を時計回りの回転方向で移動させた際の入力軌跡を矢印で示している。図3(b)中において矢印の端部を示す点b11、b12、b13、b21、b22、b23はサンプリングレートに従って検出された指示位置の一例である。また、点b11と点b23、点b12と点b22は、あるタイミングにおいて、マルチタッチされていることが検出された指示位置(同時刻に指示されている複数の指示位置)である。なお、点b21は、推定部14により生成された仮想点であり、点b13の検出タイミングにおいて検出されなかった消失点に対応するものである。図3(b)中に示す差分dΔは、点b11と点b23を繋ぐ直線の方向角度と、点b12と点b22を繋ぐ直線の方向角度との差分を表す角度である。同様に、点b12と点b22を繋ぐ直線の方向角度と、点b13と点b21を繋ぐ直線の方向角度との差分もdΔである。
図3(c)は、ピンチインジェスチャの入力例であり、同時入力された2点をX軸方向に並行に移動させた際の入力軌跡を矢印で示している。図3(c)中において矢印の端部を示す点c11、c12、c21、c22はサンプリングレートに従って検出された指示位置の一例である。また、点c11と点b21はそれぞれ同じタイミングで検出された指示位置である。なお、点c22は、推定部14により生成された仮想点であり、点c12の検出タイミングにおいて検出されなかった消失点に対応するものである。図3(c)中に示す距離dxは、X軸方向における点c11と点c12間の距離を示している。また、図3(c)中に示す距離−dxは、X軸方向における点c21と点c22間の距離を示している。
図4は、入力部11の検出結果に基づき記憶部12が記憶した座標点の一例を示す図である。具体的には、入力時間(サンプリングレート)毎に、X座標点1、Y座標点1により特定される1点と、X座標点2、Y座標点2により特定される1点の計2点のXY座標値が記憶される。図4では、サンプリングレートに従い、入力時間「001ms」から「010ms」までの10回の検出結果が記憶されている。なお、これらは記憶するための領域として、例えばRAM6の特定の記憶領域が確保される。
なお、指示位置を検出するための機構の構成によっては、例えば2つの指示位置を示す指と指が近付きすぎた場合、1つの指示位置、つまり1点として検出してしまうことがある。また、光学式の検出機構では、指示位置がセンサの死角に入ってしまうと、これに伴い2点から1点へ検出結果が変化してしまうことがある。このようなケースが生じた場合、図4に示すように、検出されたかった座標点(消失点)の記憶領域は空白になる。また、入力時間「003ms」におけるX座標点2、Y座標点2が消失点である場合、この消失点に対応する仮想点が生成されたときには、当該仮想点のXY座標値(仮想点X23、Y23)が空白の記憶領域に格納される。
以下、タッチパネル4に対しユーザがタッチ入力を行った場合の情報処理装置100の処理手順について図5、図6を用いて説明する。
以下、タッチパネル4に対しユーザがタッチ入力を行った場合の情報処理装置100の処理手順について図5、図6を用いて説明する。
図5は、情報処理装置100におけるタッチ入力処理の一例を示すフローチャートである。図6は、仮想点を生成する際の処理(仮想位置計算処理)の一例を示すフローチャートである。図7は、情報処理装置100がマルチタッチジェスチャを識別する際に参照する表の一例を示す図である。図7に示す表では、ジェスチャの種別、2点間の相対的な距離の変化量(相対距離変化量)、相対的な方向角度の変化量(相対方向角度変化量)、仮想点を生成する際の計算処理方法それぞれの関係を規定している。なお、図7に示すジェスチャ種別は例示であり、マルチドラッグジェスチャ、ピンチジェスチャ、回転ジェスチャの3種類を示している。
CPU5は、RAM6上にワーク領域等を確保し、必要な初期化を行った後にタッチ入力処理を開始する。
CPU5は、タッチ入力点、つまり入力部11が検出した指示位置のXY座標値、及びIDを取得する(S702)。なお、このIDは、例えば同時に入力された複数の指示位置それぞれを一意に識別するためのものである。例えば1点目をID1とし、検出結果を図4に示すX座標点1、Y座標点2の記憶領域に格納する。また、2点目をID2とし、検出結果を座標点2、Y座標点2の記憶領域に格納する。
CPU5は、タッチ入力点、つまり入力部11が検出した指示位置のXY座標値、及びIDを取得する(S702)。なお、このIDは、例えば同時に入力された複数の指示位置それぞれを一意に識別するためのものである。例えば1点目をID1とし、検出結果を図4に示すX座標点1、Y座標点2の記憶領域に格納する。また、2点目をID2とし、検出結果を座標点2、Y座標点2の記憶領域に格納する。
CPU5は、ユーザによる指示(例えば、タッチ入力)がタッチダウンであるか否かを判別する(S703)。具体的は、CPU5は、少なくとも1点の入力を検出したときにはタッチダウンであると判別する。タッチダウンであると判別した場合(S703:Yes)、タッチ入力が2点の同時入力であるか否かを判別する(S704)。また、そうでない場合(S703:No)、ステップS702の処理に戻る。
CPU5は、2点の同時入力であると判別した場合(S704:Yes)、ステップS706の処理に進む。また、1点の入力であると判別した場合(S704:No)、シングルタッチジェスチャの処理を行う(S705)。シングルタッチジェスチャの処理自体は、従来から広く用いられている方法を採用することができる。そのため、ここでの説明は省略する。
ただし、ユーザによる指示が最初はシングルタッチジェスチャであり、途中から同時2点の入力によるマルチタッチジェスチャとなるような場合がある。このような場合に対処するため、CPU5は、シングルタッチジェスチャ処理においても継続して指示位置の数の変化を検出し、2点の同時入力が検出されたタイミングでステップS702の処理に戻るように制御する。
ただし、ユーザによる指示が最初はシングルタッチジェスチャであり、途中から同時2点の入力によるマルチタッチジェスチャとなるような場合がある。このような場合に対処するため、CPU5は、シングルタッチジェスチャ処理においても継続して指示位置の数の変化を検出し、2点の同時入力が検出されたタイミングでステップS702の処理に戻るように制御する。
CPU5は、同時入力された2点に対するサンプリング回数が2回目以降であるか否かを判別する(S706)。サンプリング回数が2回目以降である場合(S706:Yes)、ステップS707の処理に進む。また、そうでない場合(S706:No)、ステップS702の処理に戻る。
CPU5は、次に入力部11が検出した指示位置のXY座標値、及びIDを取得する(S707)。CPU5は、取得したこれらの情報を記憶部12に記憶する(S708)。
CPU5は、同時入力された2点間の相対距離変化量、及び、相対方向角度変化量を記憶する(S709)。これらの変化量は、記憶部12に記憶された座標点(図4参照)に基づき算出することができる。また、これらの変化量は、例えば時系列に沿って順次RAM6の所定の記憶領域に記憶される。
ここで、同時入力された2点間の相対方向角度変化量とは、当該同時入力された2点を繋ぐ直線の方向角度における変化量である。具体的には、例えば、XY平面上において2点を繋ぐ直線が垂直であるときの方向角度を90度とする。また、サンプリングレートに従って検出された次の2点を繋ぐ直線の方向角度が125度であるとする。この場合の2点間の相対方向角度変化量は、125度−90度=35度となり、この35度が変化量として記憶される。仮に、次の2点を繋ぐ直線の方向角度が45度であったならば、45度−90度=−45度となり、この−45度が変化量として記憶される。
ここで、同時入力された2点間の相対方向角度変化量とは、当該同時入力された2点を繋ぐ直線の方向角度における変化量である。具体的には、例えば、XY平面上において2点を繋ぐ直線が垂直であるときの方向角度を90度とする。また、サンプリングレートに従って検出された次の2点を繋ぐ直線の方向角度が125度であるとする。この場合の2点間の相対方向角度変化量は、125度−90度=35度となり、この35度が変化量として記憶される。仮に、次の2点を繋ぐ直線の方向角度が45度であったならば、45度−90度=−45度となり、この−45度が変化量として記憶される。
CPU5は、タッチダウンが継続しているか否かを判別する(S710)。具体的には、CPU5は、サンプリングレートに従った次の検出タイミングにおいて少なくとも1点の入力が検出されていればタッチダウンが継続していると判別する。タッチダウンが継続していると判別した場合(S710:Yes)、ステップS712の処理に進む。また、そうでない場合(S710:No)、CPU5は、タッチアップされたとして一連の処理を終了する。
CPU5は、タッチ入力が2点の同時入力であるか否かを判別する(S712)。2点の同時入力であると判別した場合(S712:Yes)、ステップS707の処理に戻る。また、タッチ入力が1点に減少した場合(S712:No)、CPU5は、仮想位置計算を行うサブルーチン処理に進む(S713)。以下、仮想点を生成する仮想位置計算処理について図6を用いて詳細に説明する。
CPU5は、図6に示す仮想位置計算処理を開始する。なお、仮想位置計算処理においてはジェスチャ種別に応じた処理を行うことにより仮想点を生成する。
CPU5は、2点のタッチ入力のうち途切れた側、つまり消失点が発生した側において当該消失点が発生する直前に記憶されたXY座標点(例えば、座標(X2b、Y2b)とする)を取得する(S802)。なお、一方のタッチ入力において消失点が2点連続して発生している場合、2点目の消失点に対する仮想点を生成する際は、1点目の消失点に対して生成された仮想点のXY座標値を取得することになる。
CPU5は、2点のタッチ入力のうち途切れた側、つまり消失点が発生した側において当該消失点が発生する直前に記憶されたXY座標点(例えば、座標(X2b、Y2b)とする)を取得する(S802)。なお、一方のタッチ入力において消失点が2点連続して発生している場合、2点目の消失点に対する仮想点を生成する際は、1点目の消失点に対して生成された仮想点のXY座標値を取得することになる。
具体的に、図4を用いて説明する。図4に示す入力時間「003ms」におけるX座標点2(仮想点X23)、Y座標点2(仮想点Y23)に対する仮想点を生成する場合、入力時間「002ms」におけるX座標点2(X22)、Y座標点2(22)を取得する。また、入力時間「004ms」におけるX座標点2、Y座標点2の仮想点を生成する場合、入力時間「003ms」における座標点2(仮想点X23)、Y座標点2(仮想点Y23)を取得する。このように、1点目の消失点に対する仮想点を生成した後、この仮想点を用いて2点目の消失点に対する仮想点を生成することになる。
CPU5は、消失点が発生したときにタッチ入力が途切れていない側において記憶されたXY座標値と、その直近に記憶されたXY座標値との差分を差分dx(X軸方向における差分)、差分dy(Y軸方向における差分)として算出する。また、CPU5は、消失点発生の直前に記憶された2点を繋ぐ直線の方向角度ΔAと、さらにひとつ前に記憶された2点を繋ぐ直線の方向角度ΔBを算出する。CPU5は、方向角度ΔAと方向角度ΔBとの差分dΔを算出する。このようにして、CPU5は、差分dx、差分dy、差分dΔを取得する(S803)。
CPU5は、差分dΔの値が閾値以上であるか否かを判別する(S804)。これにより、タッチ入力が回転ジェスチャであるか、あるいはそれ以外の種類のジェスチャであるか否かを判定することができる。この閾値は、例えばユーザが行う回転ジェスチャを10度刻みに検知してアプリケーションに返すような仕様であれば、予め当該閾値を10度に設定しておく。
CPU5は、差分dΔの値が閾値以上である場合(S804:Yes)、回転ジェスチャの仮想点を生成する(S806)。また、そうでない場合(S804:No)、CPU5は、マルチドラッグジェスチャであるか、あるいはピンチジェスチャであるかを判定する(S805)。
CPU5は、差分dΔの値が閾値以上である場合(S804:Yes)、回転ジェスチャの仮想点を生成する(S806)。また、そうでない場合(S804:No)、CPU5は、マルチドラッグジェスチャであるか、あるいはピンチジェスチャであるかを判定する(S805)。
マルチドラッグジェスチャであるか、あるいはピンチジェスチャであるかの判定は、例えば以下のようにしてCPU5が行う。消失点が発生する直前に記憶された2点間の相対距離を距離dL1とし、そのひとつ前に記憶された2点間の相対距離を距離dL2とする。CPU5は、距離dL1と距離dL2を比較し、これらの値が変化していなければマルチドラックジェスチャであると判定する。また、これらの値が変化していればピンチジェスチャであると判定する。なお、タッチ入力における検出誤差を閾値として予め設定し、相対距離dL2から相対距離dL1を減算した値が当該閾値以下であればマルチドラックジェスチャであると判定するように構成してもよい。
CPU5は、ピンチジェスチャであると判定した場合(S805:No)、ピンチジェスチャの仮想点を生成するための準備を行う(S807)。また、マルチドラッグジェスチャであると判定した場合(S805:Yes)、マルチドラッグジェスチャの仮想点を生成する(S808)。
CPU5は、回転ジェスチャの仮想点を生成する(S806)。図3(b)を用いて具体的に説明する。図3(b)に示すように、消失点は点b21である。また、消失点が発生する2つ前のXY座標点が点b11、点b23であり、これらを繋ぐ直線の方向角度が195度であるとする。また、消失点が発生する直前(1つ前)のXY座標点が点b12、点b22であり、これらを繋ぐ直線の方向角度が185度であるとする。この場合、差分dΔは10度となり、点b13と仮想点を繋ぐ直線の方向角度は175度になる。CPU5は、点b13のXY座標値、及び、方位角度が175度であることに基づき仮想点(点b21)のXY座標値を算出する。なお、回転ジェスチャにおいては、複数の同時に検出された2点間の相対的距離は変化しないものとする。
CPU5は、ピンチジェスチャの仮想点を生成するために差分dx、dyの符号を反転する(S807)。
ピンチジェスチャの場合、例えば表示内容を拡大する場合には2つの指示位置が相対的に離れていくように操作される。また、縮小する場合には2つの指示位置が相対的に近づくように操作される。このように、同時入力された2点それぞれの移動する方向が相対的に逆方向になる。そのため、差分dx、dyの符号を反転させる必要が生じる。以下、図3(c)を用いて具体的に説明する。
ピンチジェスチャの場合、例えば表示内容を拡大する場合には2つの指示位置が相対的に離れていくように操作される。また、縮小する場合には2つの指示位置が相対的に近づくように操作される。このように、同時入力された2点それぞれの移動する方向が相対的に逆方向になる。そのため、差分dx、dyの符号を反転させる必要が生じる。以下、図3(c)を用いて具体的に説明する。
図3(c)に示すように、消失点は点c22である。また、X軸方向における点c11と点c12間の距離が差分dxになる。差分dxの符号を反転させることにより、方向が加味された差分−dxが求められる。消失点が発生する直前に記憶された点c21のXY座標値に対し、差分−dxを加算する。その結果、座標点(X=X―dx、Y=Y)が仮想点となり、これが点c22である。なお、図3(c)は、ユーザがX軸方向に並行にピンチインジェスチャを行った場合の一例であり、例えばY軸方向に並行にピンチインジェスチャを行った場合には差分dyに対して符号の反転等を行うことになる。
CPU5は、ピンチジェスチャ、マルチドラッグジェスチャの仮想点を生成する(S808)。具体的には、X=X2b+dx、Y=Y2b+dyとする2つの仮想点を生成する
マルチドラッグジェスチャの場合、同時入力された2点間の距離は大きく変化することなく移動する。図3(a)を用いて具体的に説明する。図3(a)に示すように、消失点は点a22である。また、X軸方向における点a11と点a12間の距離が差分dxになる。消失点が発生する直前に記憶された点a21のXY座標値に対し、差分dxを加算する。その結果、座標点(X+dx、Y)が仮想点となり、これが点a22である。なお、図3(a)は、ユーザがX軸方向に並行にマルチドラッグジェスチャを行った場合の一例であり、例えばY軸方向に並行にマルチドラッグジェスチャを行った場合には差分dyを加算することになる。
なお、ピンチジェスチャの仮想点を生成する場合であっても、既にステップS807の処理において差分dx、dyの符号の反転が行われていることから、ステップS808の処理により仮想点を生成することができる。
マルチドラッグジェスチャの場合、同時入力された2点間の距離は大きく変化することなく移動する。図3(a)を用いて具体的に説明する。図3(a)に示すように、消失点は点a22である。また、X軸方向における点a11と点a12間の距離が差分dxになる。消失点が発生する直前に記憶された点a21のXY座標値に対し、差分dxを加算する。その結果、座標点(X+dx、Y)が仮想点となり、これが点a22である。なお、図3(a)は、ユーザがX軸方向に並行にマルチドラッグジェスチャを行った場合の一例であり、例えばY軸方向に並行にマルチドラッグジェスチャを行った場合には差分dyを加算することになる。
なお、ピンチジェスチャの仮想点を生成する場合であっても、既にステップS807の処理において差分dx、dyの符号の反転が行われていることから、ステップS808の処理により仮想点を生成することができる。
CPU5は、仮想位置計算を行うサブルーチン処理を終了し、その後、ステップS714の処理へ進む。
図5の説明に戻り、CPU5は、生成した仮想点をこれに対応する空白の記憶領域(図4参照)に格納する。例えば、図4に示す入力時間「003ms」のX座標点2、Y座標点2に対する仮想点を生成した場合に、当該仮想点のXY座標値をそれぞれに格納する。
CPU5は、実行されているアプリケーションに対し識別したマルチタッチジェスチャをイベントとして出力する(S714)。
例えば、図3(a)に示すマルチドラッグジェスチャの例であれば、仮想点として点a22が生成され、実行されているアプリケーションに対して点a11から点a23までの各座標点の情報、マルチドラッグのイベント情報などの各情報が伝達される。
CPU5は、実行されているアプリケーションに対し識別したマルチタッチジェスチャをイベントとして出力する(S714)。
例えば、図3(a)に示すマルチドラッグジェスチャの例であれば、仮想点として点a22が生成され、実行されているアプリケーションに対して点a11から点a23までの各座標点の情報、マルチドラッグのイベント情報などの各情報が伝達される。
このように、本実施形態に係る情報処理装置100では、複数点の入力が継続されている途中で一方の入力にいわゆる「かすれ」が生じた場合であっても、マルチタッチが継続していると判別するとともに、「かすれ」部分における消失点に対応する仮想点を生成する。これにより、マルチタッチジェスチャの誤認識を低減することが可能になり、ジェスチャタイプの識別をより正確に行うことができる。
[第2実施形態]
本実施形態では、同時3点の入力、あるいは同時4点の入力によるマルチタッチジェスチャに対する仮想点を生成することができる情報処理装置について説明する。なお、同時3点、4点の入力によるマルチタッチジェスチャでは、同時2点の入力の場合と比べてその入力軌跡の形状が異なる。また、同時3点の入力が1点に変化してしまう場合、あるいは2点に変化してしまう場合など複数の場合が存在することになる。以下、図8〜10を用いて詳細に説明する。なお、第1実施形態において既に説明した機能構成と同一のものは、同じ符号を付すとともにその説明を省略する。
本実施形態では、同時3点の入力、あるいは同時4点の入力によるマルチタッチジェスチャに対する仮想点を生成することができる情報処理装置について説明する。なお、同時3点、4点の入力によるマルチタッチジェスチャでは、同時2点の入力の場合と比べてその入力軌跡の形状が異なる。また、同時3点の入力が1点に変化してしまう場合、あるいは2点に変化してしまう場合など複数の場合が存在することになる。以下、図8〜10を用いて詳細に説明する。なお、第1実施形態において既に説明した機能構成と同一のものは、同じ符号を付すとともにその説明を省略する。
本実施形態に係る情報処理装置により実現される各機能部は、図1(b)に示す各機能部と基本的に同じである。異なる点は、記憶部12は、同時入力された3点間、あるいは4点間の相対変化量を記憶するという点である。また、推定部14は、記憶部12に記憶された3点あるいは4点の相対変化量と、検出が継続している1点あるいは2点の指示位置の変化量とに基づき消失点を推定するという点である。詳細は、後述する。
図8は、マルチタッチジェスチャの一例を説明するための図である。具体的には、図8(a)は、上方向への3点入力ドラッグジェスチャの入力例、図8(b)は、3点入力ピンチジェスチャの入力例、図8(c)は、4点入力マルチドラッグジェスチャの入力例である。
図8(a)は、3点入力のマルチドラックジェスチャの入力例であり、同時入力された3点をY軸方向上側に向けて移動させた際の入力軌跡を矢印で示している。図8(a)中において矢印の端部を示す点d11、d12、d13、d21、d22、d23、d31、d32、d33はサンプリングレートに従って検出された指示位置の一例である。また、点d11、点d21、点d31は同じタイミングで検出された指示位置である。同様に、点d22、点d32は同じタイミングで検出された指示位置である。なお、点d23、点d33は、推定部14により生成された仮想点であり、点d13の検出タイミングにおいて検出されなかった消失点に対応するものである。
図8(b)は、3点入力ピンチインジェスチャの入力例であり、同時入力された3点を移動させた際の入力軌跡を矢印で示している。図8(b)中において矢印の端部を示す点e11、e12、e21、e22、e31、e32はサンプリングレートに従って検出された指示位置の一例である。また、点e11、点e21、点e31は同じタイミングで検出された指示位置である。なお、点e22、点e32は、推定部14により生成された仮想点であり、点e12の検出タイミングにおいて検出されなかった消失点に対応するものである。
図8(c)は、4点入力マルチドラッグジェスチャの入力例であり、同時入力された4点をX軸方向右側に向けて移動させた際の入力軌跡を矢印で示している。図8(c)中において矢印の端部を示す点f11、f12、f21、f22、f31、f32、f42、f42はサンプリングレートに従って検出された指示位置の一例である。また、点f11、点f21、点f31、点f41は同じタイミングで検出された指示位置である。なお、点f22、f32は、推定部14により生成された仮想点であり、点f12、点f42の検出タイミングにおいて検出されなかった消失点に対応するものである。
図9は、本実施形態に係る情報処理装置におけるタッチ入力処理の一例を示すフローチャートである。図10は、仮想点を生成する際の処理(仮想位置計算処理)の一例を示すフローチャートである。以下、図9、図10を用いて処理手順について詳細に説明する。
CPU5は、RAM6上にワーク領域等を確保し、必要な初期化を行った後にタッチ入力処理を開始する。
CPU5は、タッチ入力点、つまり入力部11が検出した指示位置のXY座標値、及びIDを取得する(S1202)。なお、このIDは、例えば同時に入力された複数の指示位置それぞれを識別するためのものである。例えば3点が同時に入力された場合、1点目をID1、2点目をID2、3点目をID3とする。
なお、CPU5が取得したこれらの情報は、図4において説明したように記憶部12を介してRAM6の特定領域に記憶される。
CPU5は、タッチ入力点、つまり入力部11が検出した指示位置のXY座標値、及びIDを取得する(S1202)。なお、このIDは、例えば同時に入力された複数の指示位置それぞれを識別するためのものである。例えば3点が同時に入力された場合、1点目をID1、2点目をID2、3点目をID3とする。
なお、CPU5が取得したこれらの情報は、図4において説明したように記憶部12を介してRAM6の特定領域に記憶される。
CPU5は、ユーザのタッチ入力がタッチダウンであるか否かを判別する(S1203)。具体的は、CPU5は、1点でも入力されていればタッチダウンであると判別する。タッチダウンであると判別した場合(S1203:Yes)、タッチ入力が複数点の同時入力であるか否かを判別する(S1204)。また、そうでない場合(S1203:No)、CPU5は、タッチアップされたとして一連の処理を終了する。
CPU5は、タッチ入力が複数点の同時入力であるか否かを判別する(S1204)。2点以上の同時入力であると判別した場合(S1204:Yes)、ステップS1206に進む。また、そうでない場合(S1204:No)、具体的には1点の入力であれば、シングルタッチジェスチャの処理を行う(S1205)。なお、CPU5は、シングルタッチジェスチャ処理において同時入力される点の数の変化を検出し、2点が検出された時点でステップS702の処理に戻るように制御する。
CPU5は、次に入力部11が検出した指示位置のXY座標値、及びIDを取得し、取得したこれらの情報が記憶部12を介してRAM6に記憶される(S1206)。なお、図4では、同時入力された2つの指示位置を記憶しているが、これを3つの指示位置、あるいは4つの指示位置を記憶可能に拡張すればよい。
CPU5は、同時入力された複数点間それぞれの相対距離変化量、及び、相対方向角度変化量を記憶する(S1207)。これらの変化量は、記憶部12が記憶した座標点(図4参照)に基づき算出することができる。また、これらの変化量は、例えば時系列に沿って順次RAM6の所定の記憶領域に記憶される。例えば、同時3点の入力の場合、ID1とID2の相対変化量、ID2とID3の相対変化量、ID3とID1の相対変化量を記憶する。
CPU5は、入力部11により検出されるタッチ入力の点数が減少したか否かを判別する(S1208)。例えば、サンプリングレートに従った直近のタイミングにおいて検出された指示位置の数と、今回検出した指示位置の数とを比較することにより判別する。減少したと判別した場合(S1208:Yes)、CPU5は、タッチ入力が3点から2点へ減少したか否かを判別する(S1209)。また、そうでない場合(S1208:No)、ステップS1212の処理へ進む。
CPU5は、タッチ入力が3点から2点へ減少したと判別した場合(S1209:Yes)、ステップS1210の処理へ進む。また、そうでない場合(S1209:No)、つまり、タッチ入力が3点から1点へ減少したと判別した場合、ステップS1211の処理へ進む。このように、タッチ入力が3点から2点へ減少した場合と、3点から1点へ減少したと場合とで処理が異なる。
CPU5は、1つの仮想点を生成する仮想位置計算処理を行う(S1210)。消失点の数が1点であるときの仮想点を生成する処理は、図6において既に説明した仮想位置計算処理に準じて進められるため、その説明を省略する。なお、図6に示す処理と異なる点は、2点の入力が3点であること、及び、ジェスチャタイプが異なる点である。
CPU5は、2つの仮想点(例えば、仮想点(X2、Y2)、(X3、Y3)とする)を生成する仮想位置計算処理を行う(S1211)。以下、図10を用いて消失点の数が2点あるときの仮想点を生成する仮想位置計算処理について詳細に説明する。
CPU5は、3点のタッチ入力のうちの途切れた側、つまり消失点が発生した側の当該消失点発生の直前に記憶されたXY座標点(例えば、座標点(X2b、Y2b)、(X3b、Y3b)とする)を取得する(S1302)。例えば、図8(a)に示す3点入力マルチドラッグジェスチャの場合であれば、点d22、点d32のXY座標値が取得される。なお、途切れた側において消失点が2点連続して発生した場合、2点目の消失点に対する仮想点を生成する際は、1点目の消失点に対して生成された仮想点のXY座標値を取得することになる。
CPU5は、タッチ入力が途切れていない側における、消失点発生時に記憶されたXY座標点と、消失点発生の直前に記憶されたXY座標点との差分を差分dx(X軸方向における差分)、差分dy(Y軸方向における差分)を取得する(S1303)。
CPU5は、差分dyの値が閾値以下であるか否かを判別する(S1304)。この閾値は、指示位置がX軸方向、Y軸方向に移動したか否かを判別するためのものであり、例えばタッチ入力における検出誤差を閾値として予め設定しておく。このようにして、Y軸方向に指示位置が移動したか否かが判別される。
CPU5は、閾値以下であると判別した場合(S1304:Yes)、差分dxの値が閾値以上であるか否かを判別する(S1305)。また、そうでない場合(S1304:No)、差分dxの値が閾値以下であるか否かを判別する(S1306)。
CPU5は、閾値以下であると判別した場合(S1304:Yes)、差分dxの値が閾値以上であるか否かを判別する(S1305)。また、そうでない場合(S1304:No)、差分dxの値が閾値以下であるか否かを判別する(S1306)。
CPU5は、差分dxの値が閾値以上であると判別した場合(S1305:Yes)、ステップS1308の処理へ進む。また、そうでない場合(s1305:No)、ステップS1307の処理へ進む。このようにして、指示位置の移動方向がX軸方向のみであるか否かが判別される。
CPU5は、差分dxの値が閾値以下であると判別した場合(S1306:Yes)、ステップS1309の処理へ進む。また、そうでない場合(S1306:No)、ステップS1310の処理へ進む。このようにして、指示位置の移動方向がY軸方向のみであるか否かが判別される。
CPU5は、X2=X2b、X3=X3bとする2つの仮想点を生成する(S1307)。この場合に生成される仮想点は、差分dx、dy共に閾値以下であるため、消失点発生時において検出された指示位置と、その直前に検出された指示位置とが変化(移動)していない場合の仮想点である。指示位置が移動していない場合、消失点も移動してないとすることがマルチタッチジェスチャの特性上適切である。
CPU5は、X2=X2b+dx、X3=X3b+dxとする2つの仮想点を生成する(S1308)。この場合に生成される仮想点は、差分dyの値が閾値以下であり、且つ、差分dxの値が閾値以上であることから、指示位置の移動方向がX軸方向のみである場合の仮想点である(例えば、図8(c)参照)。
CPU5は、Y2=Y2b+dy、Y3=Y3b+dyとする2つの仮想点を生成する(S1309)。この場合に生成される仮想点は、差分dyの値が閾値を超えており、且つ、差分dxの値が閾値以下であることから、指示位置の移動方向がY軸方向のみである場合の仮想点である(例えば、図8(a)参照)。
CPU5は、差分dxの値、差分dyの値が共に閾値を超えるときには、ピンチジェスチャの仮想点を生成する(S1310)。
以下、図8(b)に示す3点入力ピンチインジェスチャの例を用いて具体的に説明する。なお、説明においては、点e22を仮想点(X2、Y2)とし、点e21を座標点(X2b、Y2b)とする。また、点e32を仮想点(X3、Y3)とし、点e31を座標点(X3b、Y3b)とする。
以下、図8(b)に示す3点入力ピンチインジェスチャの例を用いて具体的に説明する。なお、説明においては、点e22を仮想点(X2、Y2)とし、点e21を座標点(X2b、Y2b)とする。また、点e32を仮想点(X3、Y3)とし、点e31を座標点(X3b、Y3b)とする。
例えば、生成する仮想点が点e22である場合、点e22は消失点でもあり、その直前に検出された指示位置は点e21である。また、点e21に対する点e22の相対的な位置は、記憶部12が記憶する座標点情報(図4参照)を参照することにより特定することができる。例えば、図8(b)を見た場合、点e21に対する点e22は、図正面から見て右下側に位置している。その場合、CPU5は、X2=X2b+dx、Y2=Y2b−dyとする仮想点を生成する。
また、消失点発生時の直前に記憶された指示位置に対する仮想点の相対的な位置が右上側に位置する場合、X2=X2b+dx、Y2=Y2b+dyとする仮想点が生成される。同様に、相対的な位置が左下側に位置する場合、X2=X2b−dx、Y2=Y2b−dyとする仮想点が生成される。また、相対的な位置が左上側に位置する場合、X2=X2b−dx、Y2=Y2b+dyとする仮想点が生成される。
また、消失点発生時の直前に記憶された指示位置に対する仮想点の相対的な位置が右上側に位置する場合、X2=X2b+dx、Y2=Y2b+dyとする仮想点が生成される。同様に、相対的な位置が左下側に位置する場合、X2=X2b−dx、Y2=Y2b−dyとする仮想点が生成される。また、相対的な位置が左上側に位置する場合、X2=X2b−dx、Y2=Y2b+dyとする仮想点が生成される。
また、生成する仮想点が点e32である場合、点e32は消失点でもあり、その直前に検出された指示位置は点e31である。CPU5は、仮想点である点e22を生成するときと同様の処理を行い、これにより仮想点を生成する。例えば、図8(b)を見た場合、点e31に対する点e32は、図正面から見て左下側に位置している。その場合、CPU5は、X3=X3b−dx、Y3=Y3b−dyとする仮想点を生成する。
CPU5は、2つの仮想点を生成する仮想位置計算処理を終了し、その後、ステップS1212の処理へ進む。
図9の説明に戻り、CPU5は、生成した仮想点をこれに対応する空白の記憶領域(図4参照)に格納する。また、CPU5は、実行されているアプリケーションに対し識別したマルチタッチジェスチャをイベントとして出力する(S1212)。
このように、本実施形態に係る情報処理装置では、複数点の入力が継続されている途中で一方の入力にいわゆる「かすれ」が生じた場合であっても、マルチタッチが継続していると判別するとともに、「かすれ」部分における消失点に対応する仮想点を生成する。これにより、マルチタッチジェスチャの誤認識を低減することが可能になり、ジェスチャタイプの識別をより正確に行うことができる。また、例えば複数点の入力が継続されている途中で検出された当該入力が3点から1点になり、その後2点に変化するような場合であっても対処することができる。
また、本発明は、上述した情報処理装置においてなされる各処理の手順を含む方法であっても良い。
また、本発明は、コンピュータに、上述した情報処理装置においてなされる各処理の手順を実行させるためのコンピュータプログラムであっても良い。このコンピュータプログラムは、各種記録媒体、あるいはネットワークを介して流布させることが可能なものである。このコンピュータプログラムがROMなどの記憶装置を有するコンピュータにインストールされることで実行可能となり、上述の情報処理装置を実現する。
また、本発明は、コンピュータに、上述した情報処理装置においてなされる各処理の手順を実行させるためのコンピュータプログラムであっても良い。このコンピュータプログラムは、各種記録媒体、あるいはネットワークを介して流布させることが可能なものである。このコンピュータプログラムがROMなどの記憶装置を有するコンピュータにインストールされることで実行可能となり、上述の情報処理装置を実現する。
上記説明した実施形態は、本発明をより具体的に説明するためのものであり、本発明の範囲が、これらの例に限定されるものではない。
Claims (11)
- ユーザによって指示される入力領域上の指示位置を検出する検出手段と、
前記検出された指示位置と、前記検出手段が同時刻において指示されている複数の指示位置を検出している場合には当該複数の指示位置の間の距離の変化量を示す情報とを保持する保持手段と、
前記検出された指示位置の数と直近に検出された指示位置の数とを比較し、これにより指示位置の数が減少したか否かを判定する判定手段と、
前記指示位置の数が減少したと判定された場合、前記保持手段に保持された指示位置と前記変化量を示す情報とに基づいて、当該減少した指示位置を推定する推定手段と、
前記保持手段に保持された指示位置と前記推定手段が推定した指示位置とに基づいて、前記ユーザによる指示を解釈する解釈手段と、を有することを特徴とする、
情報処理装置。 - 前記検出手段は、前記指示位置を所定の時間間隔で順次連続して検出し、
前記保持手段は、一の指示位置を起点に連続して検出された指示位置をそれぞれ識別可能に関連付けて保持し、
前記推定手段は、前記判定手段が減少したと判定したときに保持された指示位置と、この指示位置に関連付けられており、且つ、この指示位置を保持する直前に保持された指示位置との間の距離に基づいて、前記減少した指示位置を推定することを特徴とする、
請求項1に記載の情報処理装置。 - 前記推定手段は、前記関連付けされた指示位置により特定される当該指示位置の移動方向に従って前記距離を加算し、これにより前記減少した指示位置を推定することを特徴とする、
請求項2に記載の情報処理装置。 - 前記推定手段は、前記推定した指示位置を仮想位置として生成し、この仮想位置、前記保持手段により保持された指示位置、及び、前記変化量を示す情報に基づいて前記減少した指示位置をさらに推定することを特徴とする、
請求項1、2又は3に記載の情報処理装置。 - 前記保持手段は、前記生成された仮想位置を前記減少した指示位置に対応させて保持することを特徴とする、
請求項4に記載の情報処理装置。 - 前記保持手段は、複数の同時刻において指示されている2つの指示位置を繋ぐ直線の向きの変化量を示す情報を保持することを特徴とする、
請求項1に記載の情報処理装置。 - 前記検出手段は、前記指示位置を所定の時間間隔で順次連続して検出し、
前記保持手段は、一の指示位置を起点に連続して検出された指示位置をそれぞれ識別可能に関連付けて保持し、
前記推定手段は、前記判定手段が減少したと判定する直前に同時刻において指示されている2つの指示位置を繋ぐ直線の方向角度と、さらに一つ前に同時刻において指示されている2つの指示位置を繋ぐ直線の方向角度との差分に基づいて、前記減少した指示位置を推定することを特徴とする、
請求項6に記載の情報処理装置。 - 前記推定手段は、前記関連付けされた指示位置により特定される当該指示位置の回転方向に従って前記差分を加算し、これにより前記減少した指示位置を推定することを特徴とする、
請求項7に記載の情報処理装置。 - 情報処理装置の制御方法であって、
ユーザによって指示される入力領域上の指示位置を検出する工程と、
前記検出された指示位置と、同時刻において指示されている複数の指示位置が検出されている場合には当該複数の指示位置の間の距離の変化量を示す情報とを保持する工程と、
前記検出された指示位置の数と直近に検出された指示位置の数とを比較し、これにより指示位置の数が減少したか否かを判定する工程と、
前記指示位置の数が減少したと判定された場合、前記保持された指示位置と前記変化量を示す情報とに基づいて、当該減少した指示位置を推定する工程と、
前記保持された指示位置と前記推定された指示位置とに基づいて、前記ユーザによる指示を解釈する工程と、を有することを特徴とする、
情報処理装置の制御方法。 - コンピュータを、
請求項1から請求項8のいずれか一項に記載の情報処理装置として機能させるためのコンピュータプログラム。 - 請求項10に記載のコンピュータプログラムをコンピュータが読み取り可能に記録した記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014065680A JP2015191250A (ja) | 2014-03-27 | 2014-03-27 | 情報処理装置、及びその制御方法、プログラム、記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014065680A JP2015191250A (ja) | 2014-03-27 | 2014-03-27 | 情報処理装置、及びその制御方法、プログラム、記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015191250A true JP2015191250A (ja) | 2015-11-02 |
Family
ID=54425738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014065680A Pending JP2015191250A (ja) | 2014-03-27 | 2014-03-27 | 情報処理装置、及びその制御方法、プログラム、記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015191250A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106547354A (zh) * | 2016-10-31 | 2017-03-29 | 邯郸美的制冷设备有限公司 | 一种用于控制空调的手势校验方法及装置 |
CN108008857A (zh) * | 2017-12-04 | 2018-05-08 | 飞依诺科技(苏州)有限公司 | 一种用于触摸屏的移动焦点的方法和装置 |
WO2020008584A1 (ja) * | 2018-07-05 | 2020-01-09 | 三菱電機株式会社 | 回転検出装置及び回転検出方法 |
-
2014
- 2014-03-27 JP JP2014065680A patent/JP2015191250A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106547354A (zh) * | 2016-10-31 | 2017-03-29 | 邯郸美的制冷设备有限公司 | 一种用于控制空调的手势校验方法及装置 |
CN106547354B (zh) * | 2016-10-31 | 2019-08-02 | 邯郸美的制冷设备有限公司 | 一种用于控制空调的手势校验方法及装置 |
CN108008857A (zh) * | 2017-12-04 | 2018-05-08 | 飞依诺科技(苏州)有限公司 | 一种用于触摸屏的移动焦点的方法和装置 |
WO2020008584A1 (ja) * | 2018-07-05 | 2020-01-09 | 三菱電機株式会社 | 回転検出装置及び回転検出方法 |
JPWO2020008584A1 (ja) * | 2018-07-05 | 2020-09-17 | 三菱電機株式会社 | 回転検出装置及び回転検出方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11507190B2 (en) | Gesture control method applied to VR device, and apparatus | |
US9678606B2 (en) | Method and device for determining a touch gesture | |
JP5990011B2 (ja) | 情報処理装置及びその制御方法 | |
US20170153713A1 (en) | Head mounted display device and control method | |
US9916043B2 (en) | Information processing apparatus for recognizing user operation based on an image | |
US8933882B2 (en) | User centric interface for interaction with visual display that recognizes user intentions | |
US9405404B2 (en) | Multi-touch marking menus and directional chording gestures | |
US9965028B2 (en) | Method for suspension sensing in interactive display, method for processing suspension sensing image, and proximity sensing apparatus | |
US8847978B2 (en) | Information processing apparatus, information processing method, and information processing program | |
JP2020052991A (ja) | ジェスチャ認識に基づく対話型ディスプレイの方法及び装置 | |
KR101646616B1 (ko) | 객체 제어 장치 및 방법 | |
US20130034265A1 (en) | Apparatus and method for recognizing gesture, and non-transitory computer readable medium thereof | |
JP5805890B2 (ja) | タッチパネルシステム | |
US8525854B2 (en) | Display device and screen display method | |
KR102347248B1 (ko) | 터치 제스쳐 인식 방법 및 장치 | |
US9880684B2 (en) | Information processing apparatus, method for controlling information processing apparatus, and storage medium | |
WO2010017711A1 (zh) | 一种图形触摸命令的执行方法、装置及移动终端 | |
JP2015191250A (ja) | 情報処理装置、及びその制御方法、プログラム、記録媒体 | |
US10318128B2 (en) | Image manipulation based on touch gestures | |
CN105759955B (zh) | 输入装置 | |
US9891730B2 (en) | Information processing apparatus, information processing method therefor, and non-transitory storage medium | |
EP3855301A1 (en) | Display control program, display control method, and display controller | |
US11755124B1 (en) | System for improving user input recognition on touch surfaces | |
TW202202983A (zh) | 預測控制方法、輸入系統及電腦可讀取記錄媒體 | |
US10558270B2 (en) | Method for determining non-contact gesture and device for the same |