JP2014067286A - 手書入力装置、手書入力プログラム、および手書入力装置の制御方法 - Google Patents
手書入力装置、手書入力プログラム、および手書入力装置の制御方法 Download PDFInfo
- Publication number
- JP2014067286A JP2014067286A JP2012213039A JP2012213039A JP2014067286A JP 2014067286 A JP2014067286 A JP 2014067286A JP 2012213039 A JP2012213039 A JP 2012213039A JP 2012213039 A JP2012213039 A JP 2012213039A JP 2014067286 A JP2014067286 A JP 2014067286A
- Authority
- JP
- Japan
- Prior art keywords
- handwriting input
- correction
- displacement
- vector
- sample point
- 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
Images
Abstract
【課題】手書入力の追従性および描線の滑らかさの少なくともいずれかを実現する。
【解決手段】手書入力をサンプリングして得られる複数のサンプル点に基づいて、描線表示のための手書入力データを生成する手書入力装置1は、サンプル点の変位を示すベクトルの角度の変化に応じて、ベクトルの角度の加重平均を計算することで補正ベクトルを生成する補正データ生成部(24A)を備える。
【選択図】図4
【解決手段】手書入力をサンプリングして得られる複数のサンプル点に基づいて、描線表示のための手書入力データを生成する手書入力装置1は、サンプル点の変位を示すベクトルの角度の変化に応じて、ベクトルの角度の加重平均を計算することで補正ベクトルを生成する補正データ生成部(24A)を備える。
【選択図】図4
Description
本発明は手書入力による描画を行う手書入力装置、手書入力プログラム、および手書入力装置の制御方法に関する。
従来、タブレット入力装置や、タッチパネル入力装置を用いた手書入力技術が知られている。このような手書入力技術では、例えば、手書入力された軌跡の座標をサンプリングして検出し、その検出座標に基づいて、手書入力軌跡が表示される。このような手書入力技術の分野において、描画の滑らかさや軌跡の正確さを得るために入力される描線を補正する技術として、次のような提案がなされている。
特許文献1には、手書入力の入力範囲に応じて、検出座標のサンプル数を設定する技術や、サンプリングして得た検出座標に基づき最小二乗法による演算を行って描画曲線を算出する技術が開示されている。
特許文献2には、座標データの取得を複数回行って、取得した座標データを加算平均した座標値を出力する技術、および入力者の描画速度に応じて座標データの加算平均回数を変更する技術が開示されている。
特許文献3には、最新の座標が検出されるたびに、最新の座標と該最新の座標の検出処理の1回前の処理で検出された座標とがそれぞれ示す2つの点間の距離に応じて、座標検出のサンプリング間隔を設定する技術が開示されている。
なお、既存の画像の平滑化を行い画像に含まれるノイズを低減または除去する技術としては、平均化フィルタや、ガウシアンフィルタなどが知られている。
しかしながら、上述のような従来技術は、単に、サンプル数の変更またはサンプル間隔の変更により描画の滑らかさや、応答反応性を確保するにとどまっている。よって、角度の変化に対応し、描画曲線滑らかさ向上や、手書入力の追従性の向上を図ることは提案されていない。
例えば、上述のような従来技術では、補正後の描画曲線は、過去の入力データの影響を受け得る。すなわち、従来技術では、過去から現在までの手書入力の角度の変化の影響を考慮していない。
このため、過去の入力データの影響により、描画追従性、または、描画の円滑さの点において、所望の結果が得られない場合があった。
例えば、単純に入力座標の加算平均を算出するだけでは、補正値において過去の入力データの影響が均一に現れる。よって、手書入力の角度が急に変化した場合、実際の手書入力に対して、描画曲線の追従性が低下する。
また、例えば、手書入力が大きくカーブした部分においては、過去データの直進性が強く補正値に表れるので、実際の手書入力データと補正値との間に大きな差が生じてしまう。
また、曲線を描画する際、描画の角度を一定にしたいにもかかわらず、手振れにより入力角度が変化し、滑らかな曲線が得られない場合があった。
本発明は、上記問題に鑑みてなされたものであり、その目的は、角度の変化に対応し、描画曲線の滑らかさ向上や、手書入力の追従性の向上を図ることができる手書入力装置を実現することにある。
上記の課題を解決するために、本発明の一態様に係る手書入力装置は、手書入力をサンプリングして得られる複数のサンプル点に基づいて、描線表示のための手書入力データを生成する手書入力装置において、サンプル点の変位の成す角度の変化に応じて、サンプル点の変位の新旧に応じた重み付けを用いてサンプル点の変位を補正することで上記手書入力データを生成する補正手段(補正データ生成部24A)を備える。
別の観点から言えば、本発明の一態様に係る手書入力装置は、手書入力をサンプリングして得られる複数のサンプル点に基づいて、描線表示のための手書入力データを生成する手書入力装置において、サンプル点の変位の成す角度の変化に応じて、補正対象サンプル点と、当該補正対象サンプル点の直前にサンプリングされた直近サンプル点との変位に対して、該直近サンプリング点よりも前のサンプル点の変位に対する重みよりも大きな重み付けを用いて補正対象サンプル点の変位を補正することで上記手書入力データを生成する補正手段を備える。
上記の課題を解決するために、本発明の一態様に係る手書入力装置の制御方法は、手書入力をサンプリングして得られる複数のサンプル点に基づいて、描線表示のための手書入力データを生成する手書入力装置の制御方法において、サンプル点の変位の成す角度の変化に応じて、サンプル点の変位の新旧に応じた重み付けを用いてサンプル点の変位を補正することで上記手書入力データを生成する補正ステップを含む。
上記の課題を解決するために、本発明の他の態様に係る手書入力装置は、手書入力をサンプリングして得られる複数のサンプル点に基づいて、描線表示のための手書入力データを生成する手書入力装置において、サンプリングの都度、得られたサンプル点への第1の変位と、該第1の変位のひとつ前の第2の変位とが成す角度の変化率を算出する変化率算出手段と、上記変化率が、所定の範囲内に収まるように、該第1の変位を補正することで上記手書入力データを生成する変位補正手段と、を備える。
上記の課題を解決するために、本発明の他の態様に係る手書入力装置の制御方法は、手書入力をサンプリングして得られる複数のサンプル点に基づいて、描線表示のための手書入力データを生成する手書入力装置の制御方法において、サンプリングの都度、得られたサンプル点への第1の変位と、該第1の変位のひとつ前の第2の変位とが成す角度の変化率を算出する変化率算出ステップと、上記変化率が、所定の範囲内に収まるように、該第1の変位を補正することで上記手書入力データを生成する変位補正ステップと、を含む。
本発明の一態様によれば、サンプル点の変位の補正に用いる重み付けを手書入力の入力角度に応じて適宜変更することで、手書入力の追従性の向上、および、円滑化の少なくともいずれかを図ることができる。
また、本発明の他の態様によれば、手書入力データが表す描線において、曲線を表現するための各変位間の角度が極端に変化することを防ぐことができる。これにより、ユーザーの手書入力に基づいて、より滑らかな曲線を描画することができる。
以上のように、本発明によれば、角度の変化に対応し、描画曲線滑らかさ向上や、手書入力の追従性の向上を図ることができる。
〔実施形態1〕
以下、本発明の一実施形態について、図1〜図3を用いて説明すれば、以下のとおりである。
以下、本発明の一実施形態について、図1〜図3を用いて説明すれば、以下のとおりである。
まず、図1を用いて、本発明の一実施形態である手書入力装置1の構成について説明すると次のとおりである。図1は、手書入力装置1の機能的な構成の一例について示す機能ブロック図である。図1に示す手書入力装置1は、ユーザーから手書入力による操作を受け付け、受け付けた手書入力を補正した手書入力データを生成し、補正後の手書入力データを出力する。手書入力装置1は、例示的には、タブレット端末や、スマートフォンなどの高機能携帯電話機等のタッチパネル入力装置を備える装置である。
手書入力装置1は、手書入力の速度の変化に応じて、手書入力に対する描画の追従性や、描画の滑らかさを調整する。
図1に示すように手書入力装置1は、記憶部10、制御部20、および、タッチパネル表示部30と、を備える構成である。
記憶部10は、各種データ、表示コンテンツおよびプログラムを記憶させておくものである。また、制御部20は、電子機器1の各種機能を統括的に制御するものである。制御部20は、例えば、タッチパネル表示部30における表示処理およびタッチ操作に応じた情報処理を制御する。記憶部10および制御部20の詳細については後述する。
タッチパネル表示部30は、ユーザーからの接触操作を受け付ける操作部31および画面表示を行う表示部32を備える。なお、操作部31および表示部32は、例示的に、ユーザーから見て操作部31および表示部32の順で積層されており、ユーザーが表示部32の表示画面を視認しながら、当該表示画面に対して接触操作(タッチ操作)を行うことができるようになっている。
操作部31は、表示部32の表示画面に対するユーザーの接触操作を検出して、当該接触操作に関する操作データを生成し、生成した操作データを制御部20に供給する。なお、操作データには、接触操作位置や、接触操作の向き、加速度および強さなどが含まれていてもよい。
以下では、説明のため、タッチパネル表示部30(操作部31)に対する手書入力操作(文字や曲線の手書入力等)を検出することで操作データを生成するものとする。また、手書入力操作を検出することにより生成された操作データのことを手書入力データと称する。
手書入力操作の検出方法に特に制限はなく、任意の検出手法を用いることができる。また、操作部31は、ユーザーの指によるタッチ操作だけでなく、スタイラスやタッチペンなどの入力器具Mを用いた接触操作にも対応している。
操作部31が接触操作位置を検出する具体的な手法としては、例えば、マトリクス・スイッチ、抵抗膜方式、表面弾性波方式、赤外線方式、電磁誘導方式、静電容量方式、および、対象物の画像を検出する方式(光センサ方式)などが挙げられる。しかしながら、これに限られず、接触操作位置を検出する手法には、種々の手法を適宜適用することができる。なお、上記した接触操作位置を検出する手法には、「接触」だけでなく「近接」を検出する手法が含まれる。ただし、以下では、説明の便宜上、「接触」および「近接」の区別をすることなく、単に「接触」とのみ記載する。
また、操作部31は、所定の間隔により、接触操作の検出を実行し、上記手書入力データを生成する。手書入力データの詳細については後述する。
表示部32は、画像データを表示するための表示画面を有しており、制御部20から画像データを受信し、受信した画像データに基づいてその表示画面に画像を表示するものである。表示部32は、例えば、LCD(Liquid Crystal Display)、PDP(Plasma Display Panel)、EL(Electroluminescence)ディスプレイなどにより実現することができる。
(記憶部の詳細)
次に、図1を引き続き参照しながら、記憶部10の詳細について説明する。図1に示すように記憶部10は、サンプル点履歴情報記憶部11、速度閾値記憶部12、重み記憶部13、および補正データ履歴情報記憶部14を含む構成である。
次に、図1を引き続き参照しながら、記憶部10の詳細について説明する。図1に示すように記憶部10は、サンプル点履歴情報記憶部11、速度閾値記憶部12、重み記憶部13、および補正データ履歴情報記憶部14を含む構成である。
サンプル点履歴情報記憶部11には、手書入力データが記憶される。手書入力データは、具体的には、タッチパネル表示部30におけるタッチ操作のサンプリングによって得られるサンプル点により構成される。よって、サンプル点履歴情報記憶部11には、サンプリングによって得られるサンプル点が時系列ごとに記憶される。
サンプル点は、例えば、タッチパネル表示部30における操作位置を示す座標値(例えば、X座標およびY座標から成る2次元座標)により表現されていてもよい。
なお、手書入力データには、サンプル点に加えて、前のサンプル点からの変位を示すベクトルが含まれていてもよい。また、手書入力データには、ベクトルの大きさや、角度が含まれていてもよい。また、ベクトルの角度は、基準となる方向(例えば、表示画面の座標系のX軸方向)と、ベクトルの方向との間の角度により表現されていてもよい。
速度閾値記憶部12には、タッチパネル表示部30において検出される手書入力の速度の変化量、および/または、変化率と比較するための閾値が記憶される。
重み記憶部13には、手書入力データの補正に用いるための重みに関する情報が記憶される。なお、重み記憶部13に記憶される重み情報は、重み付けを行うための値そのものであってもよいし、重み付けを行うための値を導出するための算出式であってもよい。
補正データ履歴情報記憶部14には、補正後の手書入力データ、すなわち補正データが記憶される。補正データは、手書入力データを構成するサンプル点の補正値、および、サンプル点の変位を示すベクトルの補正値(補正ベクトル)を含む。よって、補正データ履歴情報記憶部14には、サンプル点およびベクトルの補正値が時系列ごとに記憶される。
(制御部の詳細)
次に、図1をさらに参照しながら、制御部20の詳細について説明する。図1に示すように、制御部20は、サンプル点取得部21、速度条件判定部22、重み設定部23、補正データ生成部24、および描画部25を備える構成である。
次に、図1をさらに参照しながら、制御部20の詳細について説明する。図1に示すように、制御部20は、サンプル点取得部21、速度条件判定部22、重み設定部23、補正データ生成部24、および描画部25を備える構成である。
サンプル点取得部21は、タッチパネル表示部30における所定の間隔による接触操作の検出処理(すなわちサンプリング処理)を制御して、サンプル点を取得する。具体的には、サンプル点取得部21は、所定の間隔で、接触操作の検出を実行するようタッチパネル表示部30の操作部31に指示し、操作部31から手書入力データを取得し、手書入力データに基づいてサンプル点を取得する。言い換えれば、サンプル点取得部21は、タッチパネル表示部30において行われる手書入力をサンプリングして得られる複数のサンプル点を取得する。
また、サンプル点取得部21は、サンプル点間のベクトル(変位)を算出する。図2を用いて、サンプル点取得部21によるベクトル算出処理について説明すると次のとおりである。図2は、タッチパネル表示部30の表示画面において、ユーザーが左から右に水平方向に手書入力を行った場合について示している。
図2の“元データ”に示すように、サンプル点が、P0、P1、P2、およびP3の順に取得されているとする。このときサンプル点取得部21は、P0およびP1に基づいて、P0からP1への変位を示すベクトルv0を求める。同様に、サンプル点取得部21は、P1およびP2からベクトルv1を求め、P2およびP3からベクトルv2を求める。
なお、図2では、P3が最新のサンプル点であり、ベクトルv2が最新のベクトル(以下、最新ベクトルと称する)である。
サンプル点取得部21は、サンプリングによって得られたサンプル点と、サンプル点に基づいて求めたベクトルと、ベクトルの大きさおよび角度とを、速度条件判定部22に供給するとともに、サンプル点履歴情報記憶部11に記憶する。
速度条件判定部22は、タッチパネル表示部30における手書入力の速度の変化量または変化率が閾値以上であるか否かを判定する。速度条件判定部22は、上記閾値を速度閾値記憶部12から取得することができる。
手書入力の速度は、タッチパネル表示部30での手書入力のサンプリングにおけるサンプル点間の距離(すなわちベクトルの大きさ)に基づいて求めることができる。例えば、速度条件判定部22は、サンプル点履歴情報記憶部11に記憶されているベクトルの大きさを取得して手書入力の速度を求めることができる。
また、速度条件判定部22は、例えば、手書入力の速度の変化を、(1)最新ベクトルの大きさと、当該最新ベクトルよりも前に求められたベクトルの大きさとに基づいて求めてもよいし、(2)最新ベクトルの大きさと、過去の補正により得られた補正ベクトルの大きさとに基づいて求めてもよい。
例えば、速度条件判定部22は、(1)最新ベクトルの大きさと、当該最新ベクトルの直前のベクトルの大きさとに基づいて変化を求めてもよいし、(2)最新ベクトルの大きさと、当該最新ベクトルが取得される直前の補正により得られた補正ベクトルの大きさとに基づいて手書入力の速度を求めてもよい。
なお、以下において、最新ベクトルの直前のベクトルおよび最新ベクトルの直前の補正ベクトルのことをまとめて、過去ベクトルと称する場合がある。
重み設定部23は、手書入力の速度の変化に応じて、手書入力データに対する補正を行うための重み値を設定する。詳細は後述するが、手書入力データの補正は、例示的に、最新ベクトルと、直前の補正ベクトルとの重み付け加算により実行される。そこで、重み設定部23は、最新ベクトルに対する重み値と、直前の補正ベクトルに対する重み値とを設定する。
重み設定部23は、最新ベクトルに対する重み値を直前の補正ベクトルに対する重み値と同一にしてもよい。
重み設定部23は、最新ベクトルに対する重み値を直前の補正ベクトルに対する重み値よりも大きくしてもよい。この場合、手書入力の追従性の向上を図ることができる。
また、重み設定部23は、最新ベクトルに対する重み値を直前の補正ベクトルに対する重み値よりも小さくしてもよい。この場合、手書入力の結果において描画される曲線の滑らかさを向上させることができる。
このため、重み設定部23が設定する重み値は描線をどのように表現したいのかに応じて、適宜大きくしたり小さくしたりすることができる。
重み設定部23は、例えば、以下のとおり重み値を設定することができる。
[設定1]手書入力速度が急激に早くなったときにおいて、その変化に対応して追従性を向上させたい場合は、重み値を大きくする。
[設定2]手書入力速度が急激に早くなったときにおいて、その変化に対応して曲線の滑らかさを向上させたい場合は、重み値を小さくする。
[設定3]手書入力速度が急激に遅くなったときにおいて、その変化に対応して追従性を向上させたい場合は、重み値を大きくする。
[設定4]手書入力速度が急激に遅くなったときに、その変化に対応して曲線の滑らかさを向上させたい場合は、重み値を小さくする。
[設定5]手書入力速度がそれほど変わらないのであれば、重み値を均等にする。
補正データ生成部24は、重み設定部23が設定した重み値を用いて手書入力データを補正することで補正データを生成する。そして、補正データ生成部24は、補正ベクトルを補正データとして描画部25に供給するとともに、補正データを補正データ履歴情報記憶部14に記憶する。なお、補正データ生成部24における補正の詳細については後述する。
描画部25は、補正データ生成部24から供給される補正データに基づいて手書入力結果を示す画像データを生成し、生成した画像データを表示部32に供給する。
(手書入力データの補正の詳細)
図2を用いて、補正データ生成部24における手書入力データの補正の具体例について説明すると次のとおりである。
図2を用いて、補正データ生成部24における手書入力データの補正の具体例について説明すると次のとおりである。
図2に、手書入力装置1における手書入力データの“元データ”、当該“元データ”を、重みを一定にして補正したときの補正ベクトル、および、当該“元データ”を、重みを変化させて補正したときの補正ベクトルの一例を示している。
“元データ”は、上述のように、サンプリングされたサンプル点P0、P1、P2、およびP3から構成される補正前の手書入力データである。
P0P1間のベクトルv0の大きさと、P1P2間のベクトルv1の大きさとは略同じである。一方、P2P3間のベクトルv2の大きさは、P0P1間のベクトルv1またはP1P2間のベクトルv0の大きさよりも大幅に大きい。
補正データ生成部24は、上述のとおり、最新のサンプル点、および、該最新のサンプル点の直前のサンプル点の変位を示す最新ベクトルと、直前の変位を示す補正ベクトルとの加重和(加重平均)により補正ベクトルを生成する。“重みを変化させた補正値”は、このように加重平均により補正値を生成する場合について示している。
一方、“重みを一定にした補正値”は、最新の変位と、直前の変位との間で相加平均(すなわち重み一定とした重み付け和)を算出することで補正ベクトルを生成する場合について示している。
以下、より具体的に、“重みを一定にした補正値”および“重みを変化させた補正値”のそれぞれについて説明する。
[重みを一定にした補正値]
図2に示す“重みを一定にした補正値”について説明すると次のとおりである。まず、ベクトルv0は、補正ベクトルv´0と同様とする。
図2に示す“重みを一定にした補正値”について説明すると次のとおりである。まず、ベクトルv0は、補正ベクトルv´0と同様とする。
次に、ベクトルv1の補正ベクトルv´1は、ベクトルv1と、直前の補正ベクトルv´0の相加平均により得られる。ベクトルv1と補正ベクトルv´0とは略同じであるので、補正ベクトルv´1は、ベクトルv0、ベクトルv1および補正ベクトルv´0と同様である。
続いて、ベクトルv2の補正ベクトルv´2は、ベクトルv2と、直前の補正ベクトルv´1との相加平均により求められる。この相加平均は、例えば、v´2=0.5v2+0.5v´1で求めることができる。また、上記に限られず、最新ベクトルから過去の所定のサンプル点までの過去ベクトルを用いる移動平均の算出式を用いても構わない。
ベクトルv2は、直前の補正ベクトルv´1よりも大幅に大きい。しかしながら、ベクトルv2と、直前の補正ベクトルv´1とは同じ重み付けにより加算されるので、加算により得られる補正ベクトルv´2には、ベクトルv2の影響が大きく現れる。このため補正ベクトルv´2の大きさは、ベクトルv2の大きさよりも大幅に小さくなる。
なお、上記“[設定5]手書入力速度がそれほど変わらないのであれば、重み値を均等にする。”の場合、重み設定部23は、上述のように均一な重みを設定してもよい。
[重みを変化させた補正値]
“重みを変化させた補正値”について説明すると次のとおりである。以下で説明する手書入力データの補正は、上述の“[設定1]手書入力速度が急激に早くなったときにおいて、その変化に対して追従性を向上させたい場合は、重み値を大きくする。”に該当する。
“重みを変化させた補正値”について説明すると次のとおりである。以下で説明する手書入力データの補正は、上述の“[設定1]手書入力速度が急激に早くなったときにおいて、その変化に対して追従性を向上させたい場合は、重み値を大きくする。”に該当する。
具体的には、補正データ生成部24は、重み設定部23が設定した重みを用いて、最新ベクトルおよび直前の補正ベクトルの加重和を算出することで補正ベクトルを得る。この加重和は、以下の式(A)により表わすことができる。
v´n=αvn+(1−α)v´n−1・・・(A)
上記式(A)において、v´nは、最新の補正ベクトル、vnは、最新ベクトル、v´n−1は、最新の補正ベクトルの直前の補正ベクトルである。また、αは、重み設定部23が設定する重み値を示している。
上記式(A)において、v´nは、最新の補正ベクトル、vnは、最新ベクトル、v´n−1は、最新の補正ベクトルの直前の補正ベクトルである。また、αは、重み設定部23が設定する重み値を示している。
なお、上記式(A)に限られず、最新ベクトルから過去の所定のサンプル点までの過去ベクトルを用いる加重移動平均の算出式を用いても構わない。
図2に示す“重みを変化させた補正値”について説明すると次のとおりである。まず、ベクトルv0、ベクトルv1、補正ベクトルv´´0、補正ベクトルv´´1とは相互に同じであるものとする。
ここで、補正ベクトルv´´2は、ベクトルv2と、直前の補正ベクトルv´1との加重平均により求められる。この加重平均は、例えば、重み設定部23が、上記式(A)における重み値αをα>0.5と設定することで求めることができる。
ベクトルv2は、直前の補正ベクトルv´1よりも大幅に大きいので、上記式(A)においてベクトルv2(vn;n=2)に適用する重み値(α)を大きくする一方で、直前の補正ベクトルv´1(v´n−1;n=2)に適用する重み値(1−α)を小さくする。
これにより、補正ベクトルv´´2には、ベクトルv2が大きく反映された補正が施される。
この加重平均により求めた補正ベクトルにより得られる補正値P´´3は、相加平均により求めた補正ベクトルにより得られる補正値P´3と比べて、サンプル点P3との差が小さいため、追従性のよい入力が得られる。
(処理の流れ)
次に、図3を用いて、手書入力装置1における手書入力データの補正処理の流れについて説明する。図3は、手書入力装置1における手書入力データの補正処理の流れの一例について示すフローチャートである。
次に、図3を用いて、手書入力装置1における手書入力データの補正処理の流れについて説明する。図3は、手書入力装置1における手書入力データの補正処理の流れの一例について示すフローチャートである。
図3に示すように、タッチパネル表示部30が手書入力を受け付けると(S11)、サンプル点取得部21が、当該手書入力による手書入力データを取得する(S12)。すなわち、サンプル点取得部21は、サンプリングにより得られる最新ベクトルを取得する。
次に、速度条件判定部22が、手書入力の速度の変化量または変化率を算出する(S13)。具体的には、速度条件判定部22は、過去ベクトル(元データの変位を示すベクトルまたは補正された変位を示すベクトル)と最新ベクトルとの間における速度の変化量または変化率を算出する(S13)。
さらに、速度条件判定部22は、上記変化量または変化率が閾値以上か否かを判定する(S14)。変位が閾値以上であれば(S14においてYES)、重み設定部23が、重みを計算し、補正データを生成するための重み値に設定する(S15)。すなわち、重み設定部23は、補正に用いる最新ベクトルおよび直前の補正ベクトルに応じて計算した重みを重み値に設定する。
一方、変位が閾値未満の場合(S14においてNO)、重み設定部23は、各変位に対して一定の重みを重み値に設定する(S16)。
次に、補正データ生成部24が、S15またはS16において設定された重み値を用いて補正データを生成する(S17)。
(重み付けに関するより詳細な説明)
以下において、手書入力装置1における重み付けに関するより詳細な説明を以下に記載する。
以下において、手書入力装置1における重み付けに関するより詳細な説明を以下に記載する。
[重みを変化させるための条件]
以上では、S13およびS14において、速度条件判定部22が、速度の変化量に対する閾値または速度の変化率に対する閾値を判定に用いることについて説明したが、これらの閾値について以下に詳細に説明する。
以上では、S13およびS14において、速度条件判定部22が、速度の変化量に対する閾値または速度の変化率に対する閾値を判定に用いることについて説明したが、これらの閾値について以下に詳細に説明する。
[速度の変化量に対して閾値を設定する]
速度の変化量に対して閾値を設定する場合、以下のとおりに設定することができる。
速度の変化量に対して閾値を設定する場合、以下のとおりに設定することができる。
[1] 予め設定しておいた定数aと、最新ベクトルVnの大きさとの差を計算し、下記閾値Xに関する条件式(B−1)を満たす場合に重みを変更するようにしてもよい。
|Vn|−a > X ・・・(B−1)
上記式(B−1)において|Vn|は、ベクトルの大きさを表す。
上記式(B−1)において|Vn|は、ベクトルの大きさを表す。
[2] また、最新ベクトルの大きさと、過去ベクトルの大きさとの差を計算し、下記閾値Xに関する条件式(B−2)または(B−3)を満たす場合に重みを変更するようにしてもよい。
|Vn|−|Vn−1| > X ・・・(B−2)
または、
|Vn|−|V´n−1| > X ・・・(B−3)
[速度の変化率に対して閾値を設定する]
また、速度の変化率に対して閾値を設定する場合、以下のとおり、最新ベクトルの大きさと過去ベクトルの大きさとの変化率を計算し、下記閾値Xに係る条件式(B−4)〜(B−7)のいずれかを満たす場合に重みを変更するようにしてもよい。
または、
|Vn|−|V´n−1| > X ・・・(B−3)
[速度の変化率に対して閾値を設定する]
また、速度の変化率に対して閾値を設定する場合、以下のとおり、最新ベクトルの大きさと過去ベクトルの大きさとの変化率を計算し、下記閾値Xに係る条件式(B−4)〜(B−7)のいずれかを満たす場合に重みを変更するようにしてもよい。
|Vn|/|Vn−1| > X ・・・(B−4)
または、
|Vn|/|V´n−1| > X ・・・(B−5)
または、
(|Vn|―|Vn−1|)/|Vn−1| > X ・・・(B−6)
または、
(|Vn|―|V´n−1|)/|V´n−1| > X ・・・(B−7)
なお、上記条件式(B−1)〜(B−7)は、組み合わせて用いてもよい。
または、
|Vn|/|V´n−1| > X ・・・(B−5)
または、
(|Vn|―|Vn−1|)/|Vn−1| > X ・・・(B−6)
または、
(|Vn|―|V´n−1|)/|V´n−1| > X ・・・(B−7)
なお、上記条件式(B−1)〜(B−7)は、組み合わせて用いてもよい。
[重み値の設定方法]
上記“重みを変化させるための条件”を満たした場合、重み設定部23は、上記S15において、例えば、以下のとおり重み値を設定することができる。
上記“重みを変化させるための条件”を満たした場合、重み設定部23は、上記S15において、例えば、以下のとおり重み値を設定することができる。
[予め設定されている定数値を重み値として設定する]
[1] 定数値βを用いる
|Vn|−|Vn−1| > X を満たす場合、予め設定されている定数値βを重み値αとして設定することができる。
[1] 定数値βを用いる
|Vn|−|Vn−1| > X を満たす場合、予め設定されている定数値βを重み値αとして設定することができる。
[2] 重み値テーブルを予め用意しておき、上記“重みを変化させるための条件”を満たした場合、速度の変化量または速度の大きさに応じて、重み値テーブルの値を参照し、重みを決定する
[2−1]重み値テーブルをβ[3]={0.6,0.7,0.8}と予め設定しておく。そして、速度の変化量と閾値Xnとに応じて以下のとおり重み値αを設定する。
[2−1]重み値テーブルをβ[3]={0.6,0.7,0.8}と予め設定しておく。そして、速度の変化量と閾値Xnとに応じて以下のとおり重み値αを設定する。
X0 < |Vn|−|Vn−1| < X1 を満たす場合、β[0]={0.6}を重み値αとして設定する。
X1 < |Vn|−|Vn−1| < X2 を満たす場合、β[1]={0.7}を重み値αとして設定する。
X2 < |Vn|−|Vn−1| < X3 を満たす場合、β[2]={0.8}を重み値αとして設定する。
なお、上記に限られず、速度の変化率と閾値Xnとに基づく重み値の設定を行っても構わない。すなわち、上記において、|Vn|―|Vn−1|に代えて、(|Vn|−|Vn−1|)/|Vn−1|を採用することができる。
[2−2]重み値テーブルをβ[3]={0.6,0.7,0.8}と予め設定しておく。そして、速度の大きさと閾値Xnとに応じて以下のとおり重み値αを設定する。
X0 < |Vn| <X1 を満たす場合、β[0]={0.6}を重み値αとして設定する。
X1 < |Vn| <X2 を満たす場合、β[1]={0.7}を重み値αとして設定する。
X2 < |Vn| <X3 を満たす場合、β[2]={0.8}を重み値αとして設定する。
[速度の変化等から求められる変数値を重み値として設定する]
速度の変化率または速度の大きさを所定の計算式に適用することで重み値αを設定してもよい。
速度の変化率または速度の大きさを所定の計算式に適用することで重み値αを設定してもよい。
[1] 最新の重み値をαnとし、直前の重み値をαn−1とし、また予め定数bを設定しておき、下記式(C−1)に従って重み値αnを設定する。
αn = (|Vn|−|Vn−1|) × b + αn−1 ・・・ (C−1)
なお、上記式(C−1)において、|Vn−1|は、|V´n−1|を用いても構わない。
なお、上記式(C−1)において、|Vn−1|は、|V´n−1|を用いても構わない。
[2] 最新の重み値をαとし、予め定数bを設定しておき、下記式(C−2)に従って、重み値αを設定する。
α = |Vn|×b ・・・ (C−2)
〔実施形態2〕
以下、本発明の他の実施形態について、図4〜図9を用いて説明すれば、以下のとおりである。
〔実施形態2〕
以下、本発明の他の実施形態について、図4〜図9を用いて説明すれば、以下のとおりである。
まず、図4を用いて、本発明の他の実施形態である手書入力装置1Aの構成について説明すると次のとおりである。図4は、手書入力装置1Aの機能的な構成の一例について示す機能ブロック図である。図4に示す手書入力装置1Aは、ユーザーから手書入力による操作を受け付け、受け付けた手書入力を補正した手書入力データを生成し、補正後の手書入力データを出力する。手書入力装置1Aは、例示的には、タブレット端末や、スマートフォンなどの高機能携帯電話機等のタッチパネル入力装置を備える装置である。
手書入力装置1Aは、手書入力の角度の変化に応じて、手書入力に対する描画の追従性や、描画の滑らかさを調整する。
図4に示すように手書入力装置1Aは、記憶部10、制御部20、および、タッチパネル表示部30と、を備える構成である。
記憶部10は、各種データ、表示コンテンツおよびプログラムを記憶させておくものである。また、制御部20は、電子機器1の各種機能を統括的に制御するものである。制御部20は、例えば、タッチパネル表示部30における表示処理およびタッチ操作に応じた情報処理を制御する。記憶部10および制御部20の詳細については後述する。
タッチパネル表示部30は、ユーザーからの接触操作を受け付ける操作部31および画面表示を行う表示部32を備える。なお、操作部31および表示部32は、例示的に、ユーザーから見て操作部31および表示部32の順で積層されており、ユーザーが表示部32の表示画面を視認しながら、当該表示画面に対して接触操作(タッチ操作)を行うことができるようになっている。
操作部31は、表示部32の表示画面に対するユーザーの接触操作を検出して、当該接触操作に関する操作データを生成し、生成した操作データを制御部20に供給する。なお、操作データには、接触操作位置や、接触操作の向き、加速度および強さなどが含まれていてもよい。
以下では、説明のため、タッチパネル表示部30(操作部31)に対する手書入力操作(文字や曲線の手書入力等)を検出することで操作データを生成するものとする。また、手書入力操作を検出することにより生成された操作データのことを手書入力データと称する。
手書入力操作の検出方法に特に制限はなく、任意の検出手法を用いることができる。また、操作部31は、ユーザーの指によるタッチ操作だけでなく、スタイラスやタッチペンなどの入力器具Mを用いた接触操作にも対応している。
操作部31が接触操作位置を検出する具体的な手法としては、例えば、マトリクス・スイッチ、抵抗膜方式、表面弾性波方式、赤外線方式、電磁誘導方式、静電容量方式、および、対象物の画像を検出する方式(光センサ方式)などが挙げられる。しかしながら、これに限られず、接触操作位置を検出する手法には、種々の手法を適宜適用することができる。なお、上記した接触操作位置を検出する手法には、「接触」だけでなく「近接」を検出する手法が含まれる。ただし、以下では、説明の便宜上、「接触」および「近接」の区別をすることなく、単に「接触」とのみ記載する。
また、操作部31は、所定の間隔により、接触操作の検出を実行し、上記手書入力データを生成する。手書入力データの詳細については後述する。
表示部32は、画像データを表示するための表示画面を有しており、制御部20から画像データを受信し、受信した画像データに基づいてその表示画面に画像を表示するものである。表示部32は、例えば、LCD(Liquid Crystal Display)、PDP(Plasma Display Panel)、EL(Electroluminescence)ディスプレイなどにより実現することができる。
(記憶部の詳細)
次に、図4を引き続き参照しながら、記憶部10の詳細について説明する。図4に示すように記憶部10は、サンプル点履歴情報記憶部11、角度閾値記憶部12A、重み記憶部13、および補正データ履歴情報記憶部14を含む構成である。
次に、図4を引き続き参照しながら、記憶部10の詳細について説明する。図4に示すように記憶部10は、サンプル点履歴情報記憶部11、角度閾値記憶部12A、重み記憶部13、および補正データ履歴情報記憶部14を含む構成である。
サンプル点履歴情報記憶部11には、手書入力データが記憶される。手書入力データは、具体的には、タッチパネル表示部30におけるタッチ操作のサンプリングによって得られるサンプル点により構成される。よって、サンプル点履歴情報記憶部11には、サンプリングによって得られるサンプル点が時系列ごとに記憶される。
サンプル点は、例えば、タッチパネル表示部30における操作位置を示す座標値(例えば、X座標およびY座標から成る2次元座標)により表現されていてもよい。
なお、手書入力データには、サンプル点に加えて、前のサンプル点からの変位を示すベクトルが含まれていてもよい。また、手書入力データには、ベクトルの大きさや、角度が含まれていてもよい。また、ベクトルの角度は、基準となる方向(例えば、表示画面の座標系のX軸方向)と、ベクトルの方向との間の角度により表現されていてもよい。
角度閾値記憶部12Aには、タッチパネル表示部30において検出される手書入力の角度の変化量、および/または、変化率と比較するための閾値が記憶される。
重み記憶部13には、手書入力データの補正に用いるための重みに関する情報が記憶される。なお、重み記憶部13に記憶される重み情報は、重み付けを行うための値そのものであってもよいし、重み付けを行うための値を導出するための算出式であってもよい。
補正データ履歴情報記憶部14には、補正後の手書入力データ、すなわち補正データが記憶される。補正データは、手書入力データを構成するサンプル点の補正値、および、サンプル点の変位を示すベクトルの補正値(補正ベクトル)を含む。よって、補正データ履歴情報記憶部14には、サンプル点およびベクトルの補正値が時系列ごとに記憶される。
(制御部の詳細)
次に、図4をさらに参照しながら、制御部20の詳細について説明する。図4に示すように、制御部20は、サンプル点取得部21、角度条件判定部22A、重み設定部23A、補正データ生成部24A、および描画部25を備える構成である。
次に、図4をさらに参照しながら、制御部20の詳細について説明する。図4に示すように、制御部20は、サンプル点取得部21、角度条件判定部22A、重み設定部23A、補正データ生成部24A、および描画部25を備える構成である。
サンプル点取得部21は、タッチパネル表示部30における所定の間隔による接触操作の検出処理(すなわちサンプリング処理)を制御して、サンプル点を取得する。具体的には、サンプル点取得部21は、所定の間隔で、接触操作の検出を実行するようタッチパネル表示部30の操作部31に指示し、操作部31から手書入力データを取得し、手書入力データに基づいてサンプル点を取得する。言い換えれば、サンプル点取得部21は、タッチパネル表示部30において行われる手書入力をサンプリングして得られる複数のサンプル点を取得する。
また、サンプル点取得部21は、サンプル点間のベクトル(変位)を算出する。図5を用いて、サンプル点取得部21によるベクトル算出処理について説明すると次のとおりである。図5は、タッチパネル表示部30の表示画面において、ユーザーが左から右に水平に手書入力を行ったあとに手書入力方向を変化させる場合について示している。
図5の“元データ”に示すように、サンプル点が、P0、P1、P2、P3、およびP4の順に取得されているとする。このときサンプル点取得部21は、P0P1、P1P2、P2P3、およびP3P4に対応するベクトルv0、v1、v2、およびv3をそれぞれ求める。
なお、図5では、P4が最新のサンプル点であり、ベクトルv3が最新のベクトルである。
サンプル点取得部21は、サンプリングによって得られたサンプル点と、サンプル点に基づいて求めたベクトルと、ベクトルの大きさおよび角度とを、角度条件判定部22Aに供給するとともに、サンプル点履歴情報記憶部11に記憶する。
角度条件判定部22Aは、タッチパネル表示部30における手書入力の角度の変化量または変化率が閾値以上であるか否かを判定する。角度条件判定部22Aは、上記閾値を角度閾値記憶部12Aから取得することができる。
角度条件判定部22Aは、サンプル点履歴情報記憶部11に記憶されているベクトルの角度を取得して手書入力の角度を求めることができる。
また、角度条件判定部22Aは、例えば、手書入力の角度の変化を、(1)最新ベクトルの角度と、当該最新ベクトルよりも前に求められたベクトルの角度とに基づいて求めてもよいし、(2)最新ベクトルの角度と、過去の補正により得られた補正ベクトルの角度とに基づいて求めてもよい。
例えば、角度条件判定部22Aは、(1)最新ベクトルの角度と、当該最新ベクトルの直前のベクトルの角度とに基づいて変化を求めてもよいし、(2)最新ベクトルの角度と、当該最新ベクトルが取得される直前の補正により得られた補正ベクトルの角度とに基づいて手書入力の角度を求めてもよい。
重み設定部23Aは、手書入力データに対する補正を行うための重み値を設定する。詳細は後述するが、手書入力データの補正は、例示的に、最新ベクトルの角度と、直前の補正ベクトルの角度との重み付け加算により実行される。そこで、重み設定部23Aは、最新ベクトルに対する重み値と、直前の補正ベクトルに対する重み値とを設定する。
なお、手書入力データの補正は、“ベクトルの角度”ではなく、“ベクトル”を用いてもよい。すなわち、手書入力データの補正は、最新ベクトルと、直前の補正ベクトルとの重み付け加算により実行してもかまわない。以下において同様である。
重み設定部23は、最新ベクトルの角度に対する重み値を直前の補正ベクトルの角度に対する重み値と同一にしてもよい。
重み設定部23Aは、最新ベクトルの角度に対する重み値を直前の補正ベクトルの角度に対する重み値よりも大きくしてもよい。この場合、手書入力の追従性の向上を図ることができる。
また、重み設定部23Aは、最新ベクトルの角度に対する重み値を直前の補正ベクトルの角度に対する重み値よりも小さくしてもよい。この場合、手書入力の結果において描画される曲線の滑らかさを向上させることができる。
このため、重み設定部23Aが設定する重み値は描線をどのように表現したいのかに応じて、適宜大きくしたり小さくしたりすることができる。
重み設定部23Aは、例えば、以下のとおり重み値を設定することができる。
[設定A]ベクトルの成す角が大きく変化(角度が小さくなった、または、大きくなった)したときにおいて、その変化に対応して追従性を向上させたい場合は、重み値を大きくする。
[設定B]ベクトルの成す角が大きく変化(角度が小さくなった、または、大きくなった)したときにおいて、その変化に対応して曲線の滑らかさを向上させたい場合は、重み値を小さくする。
[設定C]ベクトルの成す角がそれほど変わらないのであれば、重み値を均等にする。
補正データ生成部24Aは、重み設定部23Aが設定した重み値を用いて手書入力データを補正することで補正データを生成する。また、補正データ生成部24は、補正ベクトルを補正データとして描画部25に供給するとともに、補正データを補正データ履歴情報記憶部14に記憶する。なお、補正データ生成部24Aにおける動作の詳細については後述する。
描画部25は、補正データ生成部24から供給される補正データに基づいて手書入力結果を示す画像データを生成し、生成した画像データを表示部32に供給する。
(手書入力データの補正の詳細)
以下において、補正データ生成部24Aにおける補正について具体的に説明する。具体的には、補正データ生成部24Aは、重み設定部23Aが設定した重み値を用いて補正角の角度計算を行って、最新ベクトルを補正することで補正ベクトルを得る。
以下において、補正データ生成部24Aにおける補正について具体的に説明する。具体的には、補正データ生成部24Aは、重み設定部23Aが設定した重み値を用いて補正角の角度計算を行って、最新ベクトルを補正することで補正ベクトルを得る。
図5を用いて、補正データ生成部24Aにおける手書入力データの補正の概略について説明すると次のとおりである。
図5に示す、サンプル点P0、P1、P2、P3、P4は、手書入力データの“元データ”であり、サンプリングにより得られたサンプル点を示している。
また、図5に、P0P1、P1P2、P2P3、およびP3P4の各サンプル点間の変位を示すベクトルv0、v1、v2、およびv3を示している。各ベクトルの大きさは略同じである。なお、ベクトルv0、v1の方向を角度の基準とする(すなわち、角度“0°”)。
図5に示すように、P0P1間、およびP1P2間は、手書入力は、左から右にかけて水平方向に行われる。その後、P2P3間、およびP3P4間において、手書入力方向が大きく変化する。
また、P´3、およびP´4は、“重みを一定にした補正値”を示している。P2P´3間、P´3P´4間の変位を示すベクトルを、それぞれV´2、V´3と示している。
また、P´´3、およびP´´4は、“重みを変化させた補正値”を示している。P2P´´3間、P´´3P´´4間の変位を示すベクトルを、それぞれV´´2、V´´3と示している。
なお、サンプル点P0〜P2にかけては角度変化がないため、ベクトルv0、v1とその補正値v´0、v´1(v´´0、v´´1)は、同一とする。
このような場合において得られる“重みを一定にした補正値”および“重みを変化させた補正値”のそれぞれについて説明する。
[重みを一定にした補正値]
ベクトルv2の補正ベクトルv´2の角度は、ベクトルv2の角度と、直前の補正ベクトルv´1の角度との相加平均により得られる。すなわち、ベクトルv2の角度と、直前の補正ベクトルv´1の角度との均一な重み付けにより、補正ベクトルv´2の角度を得ることができる。なお、上記に限られず、最新ベクトルの角度から過去の所定のサンプル点までの過去ベクトルの角度を用いる移動平均の算出式を用いても構わない。
ベクトルv2の補正ベクトルv´2の角度は、ベクトルv2の角度と、直前の補正ベクトルv´1の角度との相加平均により得られる。すなわち、ベクトルv2の角度と、直前の補正ベクトルv´1の角度との均一な重み付けにより、補正ベクトルv´2の角度を得ることができる。なお、上記に限られず、最新ベクトルの角度から過去の所定のサンプル点までの過去ベクトルの角度を用いる移動平均の算出式を用いても構わない。
図5では、ベクトルv2において大きく角度が変化しているが、補正ベクトルv´1が角度“0°”であるので、補正ベクトルv´2は、補正ベクトルv´1の影響を大きく受ける。また、補正ベクトルv´3についても同様である。
その結果、サンプル点P3、P4と補正値P´3、P´4との間に大きな差が生じる。
なお、上記“[設定C]ベクトルの成す角がそれほど変わらないのであれば、重み値を均等にする。”の場合、重み設定部23Aは、上述のように均一な重みを設定してもよい。
[重みを変化させた補正値]
以下で説明する手書入力データの補正は、上述の“[設定A]ベクトルの成す角が大きく変化(角度が小さくなった、または、大きくなった)したときにおいて、その変化に対応して追従性を向上させたい場合は、重み値を大きくする。”に該当する。
以下で説明する手書入力データの補正は、上述の“[設定A]ベクトルの成す角が大きく変化(角度が小さくなった、または、大きくなった)したときにおいて、その変化に対応して追従性を向上させたい場合は、重み値を大きくする。”に該当する。
ベクトルv2の補正ベクトルv´´2の角度は、ベクトルv2の角度と、直前の補正ベクトルv´´1の角度との加重平均により得られる。この時点の最新ベクトルv2の角度に対して補正ベクトルv´´1の角度よりも大きな重み付けを行う。よって、補正ベクトルv´´2の角度では、ベクトルv2の角度変化が大きく反映される。また、補正ベクトルv´´3の角度についても同様である。
その結果、“重みを一定にした補正値”と比べて、より追従性がよく、より滑らかな曲線が得られる補正値P´´3、P´´4が得られる。
次に、補正データ生成部24Aにおいて補正値および補正角を算出する手法について具体的に説明する。
[補正角算出1]
補正データ生成部24Aは、重み設定部23が設定した重みを用いて、最新ベクトルおよび直前の補正ベクトルの角度の加重和を算出することで補正角を算出してもよい。この加重和は、以下の式(C)により表わすことができる。
補正データ生成部24Aは、重み設定部23が設定した重みを用いて、最新ベクトルおよび直前の補正ベクトルの角度の加重和を算出することで補正角を算出してもよい。この加重和は、以下の式(C)により表わすことができる。
θ´n=αθn+(1−α)θ´n−1・・・(C)
上記式(C)において、θ´nは、補正角、θnは、最新ベクトルの角度、θ´nは、最新の補正ベクトルの角度である。また、αは、重み値を示している。
上記式(C)において、θ´nは、補正角、θnは、最新ベクトルの角度、θ´nは、最新の補正ベクトルの角度である。また、αは、重み値を示している。
なお、補正データ生成部24Aが上記式(C)を用いる手法について説明したが、これに限られない。補正データ生成部24は、上記式(C)に限られず、最新ベクトルの角度から過去の所定のサンプル点までのベクトルの角度を用いる加重移動平均の算出式を用いても構わない。
また、角度には、同じ角度を示すものであっても異なる表現がある。例えば、−10°と、350°とは表現方法は異なるが同じ角度を示す。このため、上記角度計算においては、以下の調整処理を行ってもよい。
図6に示すように、ユーザーがP0、P1、およびP2の順で手書入力を行った場合を想定する。ここで、θ1=30°とし、θ2=−30°とすると角度の差は、θ2−θ1=−60°となり、角度の変化の大きさは、60°となる。
しかし、θ2=330°と表現されていた場合、θ2−θ1=300°となる。よって、角度の差の計算結果が180°を超えている場合、その計算結果から360°を引くことで角度を調整してもよい。
例えば、上記の“θ2−θ1=300°”の場合、300°−360°=−60°と調整してもよい。
なお、計算結果が、−180°未満である場合、計算結果に360°を足せばよい。
[補正角算出2]
補正データ生成部24Aは、重み設定部23が設定した重みを用いて、最新ベクトルの角度の正弦または余弦および直前の補正ベクトルの角度の正弦または余弦の加重和を算出して得られる値に基づいて補正角を算出してもよい。
補正データ生成部24Aは、重み設定部23が設定した重みを用いて、最新ベクトルの角度の正弦または余弦および直前の補正ベクトルの角度の正弦または余弦の加重和を算出して得られる値に基づいて補正角を算出してもよい。
ここで、重み付けによる補正角の算出について説明する前に、まず図7を用いて、2つのベクトルの平均角度を求める手法について説明しておく。
上述のとおり角度には、同じ角度を示すものであっても異なる表現がある。図7に例示するように、角度θ1のベクトルV1と、角度θ2のベクトルV2とがある場合、次のとおりである(なお、|・|は、ベクトルの大きさを示す)。
まず、角度表現が、θ1=45°、θ2=−45°であれば、平均は、(θ1+θ2)/2=(45°+(−45°))/2=0°となる。これに対して、角度表現が、θ1=45°、θ2=315°であれば、平均は、(θ1+θ2)/2=(45°+(315°))/2=300°となる。
そこで、ベクトルV1とベクトルV2との平均角度は、ベクトル(cos(θ1)+cos(θ2),sin(θ1)+sin(θ2))の角度を求めることで得ることができる。
X=cos(θ1)+cos(θ2)、Y=sin(θ1)+sin(θ2)とすると、下記数式(1)および(2)を計算することによって、平均角度を求めることができる。
上記数式(1)および(2)を、図7に示す例に適用すると、下記数式(3)に示すように、
となり、所望の平均値“0”を得ることができる。
続いて、上記平均角度の算出方法を踏まえたうえで、図8を用いて、重み付けによる補正角の算出について説明する。図8に例示するP´n−3、P´n−2、P´n−1は、補正後のサンプル点である。また、図8には、P´n−3からP´n−2への変位を示す補正後のベクトルである補正ベクトルV´n−2、および、P´n−2からP´n−1への変位を示す補正後のベクトルである補正ベクトルV´n−1を示している。
すなわち、図8に示す例では、n−1番目のサンプル点までは補正値が算出されている。
ここで、最新のサンプル点Pnの補正(すなわち、補正後のサンプル点P´n−1から最新のサンプル点Pnへの変位を示す最新ベクトルVnの補正)について以下に説明する。なお、最新ベクトルVnは、補正ベクトルV´n−1と同じ大きさである(|V´n−1|=|Vn|)。
補正データ生成部24Aは、最新ベクトルVnおよび補正ベクトルV´n−1に基づいて最新ベクトルVnの補正後のベクトルV´nを算出する。
より具体的には、上記平均角度の算出方法の場合において、平均角度を求めるときに導出したベクトルに重み値αを適用する。すなわち、補正ベクトル(X,Y)=(αcos(θn)+(1−α)cos(θ´n−1),αsin(θn)+sin(θ´n−1))の角度を求めれば、重み付けを適用した角度を算出することができる。なお、θnは、最新ベクトルVnの角度であり、θ´n−1は、補正ベクトルV´n−1の角度である。
よって、下記数式(4)により、補正後の角度θ´nを求めることができる。
以上の説明をまとめると、補正データ生成部24Aは、角度が、θn=45°、θ´n−1=−45°というような、−180°〜180°の間の表現である場合、以下の式(D)により補正値を求めてもよい。
θ´n=αθn+(1−α)θ´n−1 ・・・(D)
また、補正データ生成部24Aは、角度が、θn=45°、θ´n−1=315°というような、0°〜360°の間の表現である場合、以下の数式(5)により補正値を求めればよい。
また、補正データ生成部24Aは、角度が、θn=45°、θ´n−1=315°というような、0°〜360°の間の表現である場合、以下の数式(5)により補正値を求めればよい。
(処理の流れ)
次に、図9を用いて、手書入力装置1Aにおける手書入力データの補正処理の流れについて説明する。図9は、手書入力装置1Aにおける手書入力データの補正処理の流れの一例について示すフローチャートである。
次に、図9を用いて、手書入力装置1Aにおける手書入力データの補正処理の流れについて説明する。図9は、手書入力装置1Aにおける手書入力データの補正処理の流れの一例について示すフローチャートである。
図9に示すように、タッチパネル表示部30が手書入力を受け付けると(S21)、サンプル点取得部21が、当該手書入力による手書入力データを取得する(S22)。すなわち、サンプル点取得部21は、サンプリングにより得られる最新ベクトルを取得する。
次に、角度条件判定部22Aが、手書入力の角度の変化量または変化率を算出する(S23)。具体的には、角度条件判定部22Aは、過去ベクトル(元データの変位を示すベクトルまたは補正された変位を示すベクトル)と最新ベクトルとの間における角度の変化量または変化率を算出する(S23)。
さらに、角度条件判定部22Aは、上記変化量または変化率が閾値以上か否かを判定する(S24)。変位が閾値以上であれば(S24においてYES)、重み設定部23Aが、重みを計算し、補正データを生成するための重み値に設定する(S25)。すなわち、重み設定部23Aは、補正に用いる最新ベクトルおよび直前の補正ベクトルに応じて計算した重みを重み値に設定する。
一方、変位が閾値未満の場合(S24においてNO)、重み設定部23Aは、各変位に対して一定の重みを重み値に設定する(S26)。
次に、補正データ生成部24Aが、S25またはS26において設定された重み値を用いて補正データを生成する(S27)。
(重み付けに関するより詳細な説明)
以下において、手書入力装置1Aにおける重み付けに関するより詳細な説明を以下に記載する。
以下において、手書入力装置1Aにおける重み付けに関するより詳細な説明を以下に記載する。
[重みを変化させるための条件]
以上では、S23およびS24において、角度条件判定部22Aが、角度の変化量に対する閾値または角度の変化率に対する閾値を判定に用いることについて説明したが、これらの閾値について以下に詳細に説明する。
以上では、S23およびS24において、角度条件判定部22Aが、角度の変化量に対する閾値または角度の変化率に対する閾値を判定に用いることについて説明したが、これらの閾値について以下に詳細に説明する。
なお、以下において|・|は、絶対値を取ることを表わす。また、角度の差の絶対値(例えば、|θ2−θ1|)は、θ2−θ1の計算結果が180°を超えている場合、その計算結果から360°を引いた後の値、また、計算結果が、−180°未満である場合、計算結果に360°を足した後の値に対して絶対値を取るものとする。
[角度の変化量に対して閾値を設定する]
角度の変化量に対して閾値を設定する場合、以下のとおりに設定することができる。
角度の変化量に対して閾値を設定する場合、以下のとおりに設定することができる。
[1]予め設定しておいた定数aと、最新ベクトルVnの角度θnとの差を計算し、下記閾値Xに関する条件式(E−1)を満たす場合に重みを変更するようにしてもよい。
|θn−a| > X ・・・(E−1)
[2] また、最新ベクトルの角度と、過去ベクトルの角度との差を計算し、下記閾値Xに関する条件式(E−2)または(E−3)を満たす場合に重みを変更するようにしてもよい。
[2] また、最新ベクトルの角度と、過去ベクトルの角度との差を計算し、下記閾値Xに関する条件式(E−2)または(E−3)を満たす場合に重みを変更するようにしてもよい。
|θn−θn−1| > X ・・・(E−2)
または、
|θn−θ´n−1| > X ・・・(E−3)
[角度の変化率に対して閾値を設定する]
また、角度の変化率に対して閾値を設定する場合、以下のとおり、最新ベクトルの角度と過去ベクトルの角度との変化率を計算し、下記閾値Xに係る条件式(E−4)および(E−5)のいずれかを満たす場合に重みを変更するようにしてもよい。
または、
|θn−θ´n−1| > X ・・・(E−3)
[角度の変化率に対して閾値を設定する]
また、角度の変化率に対して閾値を設定する場合、以下のとおり、最新ベクトルの角度と過去ベクトルの角度との変化率を計算し、下記閾値Xに係る条件式(E−4)および(E−5)のいずれかを満たす場合に重みを変更するようにしてもよい。
(|θn|―|θn−1|)/|θn−1| > X ・・・(E−4)
または、
(|θn|―|θ´n−1|)/|θ´n−1| > X ・・・(E−5)
なお、上記条件式(E−1)〜(E−5)は、組み合わせて用いてもよい。
または、
(|θn|―|θ´n−1|)/|θ´n−1| > X ・・・(E−5)
なお、上記条件式(E−1)〜(E−5)は、組み合わせて用いてもよい。
[重み値の設定方法]
上記“重みを変化させるための条件”を満たした場合、重み設定部23Aは、上記S25において、例えば、以下のとおり重み値を設定することができる。
上記“重みを変化させるための条件”を満たした場合、重み設定部23Aは、上記S25において、例えば、以下のとおり重み値を設定することができる。
[予め設定されている定数値を重み値として設定する]
[1] 定数値βを用いる
|θn−θn−1| > X を満たす場合、予め設定されている定数値βを重み値αとして設定することができる。
[1] 定数値βを用いる
|θn−θn−1| > X を満たす場合、予め設定されている定数値βを重み値αとして設定することができる。
[2] 重み値テーブルを予め用意しておき、上記“重みを変化させるための条件”を満たした場合、角度の変化量または角度の大きさに応じて、重み値テーブルの値を参照し、重みを決定する
[2−1]重み値テーブルをβ[3]={0.6,0.7,0.8}と予め設定しておく。そして、角度の変化量と閾値Xnとに応じて以下のとおり重み値αを設定する。
[2−1]重み値テーブルをβ[3]={0.6,0.7,0.8}と予め設定しておく。そして、角度の変化量と閾値Xnとに応じて以下のとおり重み値αを設定する。
X0 < |θn−θn−1| < X1 を満たす場合、β[0]={0.6}を重み値αとして設定する。
X1 < |θn−θn−1| < X2 を満たす場合、β[1]={0.7}を重み値αとして設定する。
X2 < |θn−θn−1| < X3 を満たす場合、β[2]={0.8}を重み値αとして設定する。
[2−2]重み値テーブルをβ[3]={0.6,0.7,0.8}と予め設定しておく。そして、角度の変化率と閾値Xnとに応じて以下のとおり重み値αを設定する。
X0 < |(θn−θ´n−1)/θ´n−1| <X1 を満たす場合、β[0]={0.6}を重み値αとして設定する。
X1 < |(θn−θ´n−1)/θ´n−1| <X2 を満たす場合、β[1]={0.7}を重み値αとして設定する。
X2 < |(θn−θ´n−1)/θ´n−1| <X3 を満たす場合、β[2]={0.8}を重み値αとして設定する。
[角度の変化等から求められる変数値を重み値として設定する]
角度の変化量または角度の変化率を所定の計算式に適用することで重み値αを設定してもよい。
角度の変化量または角度の変化率を所定の計算式に適用することで重み値αを設定してもよい。
[1] 最新の重み値をαnとし、直前の重み値をαn−1とし、また予め定数bを設定しておき、下記式(F−1)に従って重み値αnを設定する。
αn = (|θn−θn−1|) × b + αn−1 ・・・ (F−1)
[2] 最新の重み値をαとし、予め定数bを設定しておき、下記式(F−2)に従って、重み値αを設定する。
[2] 最新の重み値をαとし、予め定数bを設定しておき、下記式(F−2)に従って、重み値αを設定する。
α = |(θn−θn−1)/θn−1|×b ・・・ (F−2)
なお、上記式(F−1)および(F−2)において、θn−1に、θ´n−1を用いても構わない。
なお、上記式(F−1)および(F−2)において、θn−1に、θ´n−1を用いても構わない。
〔実施形態3〕
以下、本発明のさらに他の実施形態について、図10〜図12を用いて説明すれば、以下のとおりである。なお、説明の便宜上、実施形態2にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
以下、本発明のさらに他の実施形態について、図10〜図12を用いて説明すれば、以下のとおりである。なお、説明の便宜上、実施形態2にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
まず、図10を用いて、本発明のさらに他の実施形態である手書入力装置1Bの構成について説明すると次のとおりである。図10は、手書入力装置1Bの機能的な構成の一例について示す機能ブロック図である。
手書入力装置1Aは、手書入力の角度の変化が所定の範囲(例えば、一定)に収まるよう、手書入力データを補正する。
図10に示す手書入力装置1Bと、図4に示した手書入力装置1Aとの相違点について説明すると次のとおりである。
図10に示す手書入力装置1Bは、図4に示した手書入力装置1Aにおいて次の構成変更を施したものである。まず、手書入力装置1Aの記憶部10において、指定変化率記憶部15を追加するとともに、角度閾値記憶部12Aと重み記憶部13とを省略している。また、手書入力装置1Aの制御部20において、変化率指定判定部26および角度算出部27、変化率指定部28を追加し、補正データ生成部24Aを、補正データ生成部24Bに変更し、さらに、角度条件判定部22A、重み設定部23Aを省略している。
以下、手書入力装置1Aにおいて追加・変更した構成である指定変化率記憶部15、変化率指定判定部26、角度算出部27、補正データ生成部24Bについて説明する。
(記憶部の追加構成)
指定変化率記憶部15は、手書入力の角度の変化率の許容範囲を示す指定値が設定される。指定値は、所定の範囲を示すものであってもよいし、定数値であってもよい。また、以下では、指定値が、直前の補正ベクトルと最新ベクトルとが成す角度の変化率を示すものとするが、これに限られない。指定値は、直前の補正ベクトルの角度に対する最新ベクトルの角度の変化率を指定するものであってもよい。
指定変化率記憶部15は、手書入力の角度の変化率の許容範囲を示す指定値が設定される。指定値は、所定の範囲を示すものであってもよいし、定数値であってもよい。また、以下では、指定値が、直前の補正ベクトルと最新ベクトルとが成す角度の変化率を示すものとするが、これに限られない。指定値は、直前の補正ベクトルの角度に対する最新ベクトルの角度の変化率を指定するものであってもよい。
(制御部の追加・変更構成)
変化率指定判定部26は、指定変化率記憶部15に指定値が設定されているか否かを判定し、当該判定結果を角度算出部27に通知する。
変化率指定判定部26は、指定変化率記憶部15に指定値が設定されているか否かを判定し、当該判定結果を角度算出部27に通知する。
角度算出部27は、ベクトルの角度を算出する。また、角度算出部27は、指定値が設定されている場合には、指定値に応じた補正角を算出する。
補正データ生成部24Bは、角度算出部27が算出する補正角に応じて手書入力データを補正する。
変化率指定部28は、指定変化率記憶部15に変化率の指定値を設定する。変化率指定部28は、ユーザーの操作部31等における操作に応じて指定値を設定してもよいし、制御部20において実行されるアプリケーションに応じて設定してもよい。
(手書入力データの補正の詳細)
以下において、補正データ生成部24Bにおける補正についてより具体的に説明する。図11を用いて、ベクトルの角度の変化率が一定になるようベクトルを補正し、滑らかな描画曲線を得る方法について例示的に説明する。なお、指定変化率記憶部15には、指定値として定数値が設定される。
以下において、補正データ生成部24Bにおける補正についてより具体的に説明する。図11を用いて、ベクトルの角度の変化率が一定になるようベクトルを補正し、滑らかな描画曲線を得る方法について例示的に説明する。なお、指定変化率記憶部15には、指定値として定数値が設定される。
図11に示すように、サンプル点Q0、Q1、Q2、Q3、Q4は、手書入力データの“元データ”であり、サンプリングにより得られたサンプル点を示している。
また、図11には、Q0Q1、Q1Q2、Q2Q3、およびQ3Q4の各サンプル点間の変位を示すベクトルr0、r1、r2、およびr3を示している。各ベクトルの大きさは略同じである。
ベクトルr0は、水平方向に左から右へ向かう変位を示す。ここで、ベクトルr0の方向を基準とする。すなわち、ベクトルr0の角度は“0”である。また、ベクトルr1の角度はθ1である。よって、ベクトルr0およびベクトルr1の角度は、θ1である。
従って、以後のサンプリングにおいて、ベクトル間の成す角が一定であれば、すなわち、ベクトル間の成す角の変化率が0であれば、滑らかな曲線を描くことができる。
ここで、図示のとおり、サンプル点Q2の次にサンプリングされるサンプル点Q3におけるベクトルr2とベクトルr1とが成す角度θ2が、θ1でない(図11では、θ2>θ1)ため、ベクトルの成す角の変化率が0にならない。そこで、ベクトル間の成す角の変化率を0にして滑らかな曲線を描くため、角度算出部27が補正角を算出し、当該補正角に基づいて補正データ生成部24Bがベクトルr2を補正する。
角度算出部27は、例えば、補正角θ´2=θ1を算出する。なお、このとき、角度の基準となるベクトルr0とベクトルr2とが成す角度は、2×θ1となる。
補正データ生成部24Bは、ベクトルr2を補正した補正ベクトルr´2を算出する。補正ベクトルr´2は、基準となる角度に対し、角度θ´´2=θ´2+θ1=2×θ1を有する。
続いて、サンプル点Q3の次にサンプリングされるサンプル点Q4におけるベクトルr3とベクトルr´2とが成す角度は、θ1でない。
角度算出部27は、補正角θ´3を算出する。補正データ生成部24Bは、補正角θ´3に基づいて補正ベクトルr´3を生成する。補正ベクトルr´3は、基準となる角度に対し、角度θ´´3=θ´3+θ´´2=3×θ1を有する。
(処理の流れ)
次に、図12を用いて、手書入力装置1Bにおける手書入力データの補正処理の流れについて説明する。図12は、手書入力装置1Bにおける手書入力データの補正処理の流れの一例について示すフローチャートである。
次に、図12を用いて、手書入力装置1Bにおける手書入力データの補正処理の流れについて説明する。図12は、手書入力装置1Bにおける手書入力データの補正処理の流れの一例について示すフローチャートである。
図12に示すように、タッチパネル表示部30が手書入力を受け付けると(S31)、サンプル点取得部21が、当該手書入力による手書入力データを取得する(S32)。すなわち、サンプル点取得部21は、サンプリングにより得られる最新ベクトルを取得する。また、サンプル点取得部21は、最新ベクトルの角度を算出する(S33)。
次に、変化率指定判定部26が、変化率の指定の有無を判定する(S34)。すなわち、変化率指定判定部26は、指定値の設定があるか否かを判定する。指定値の設定がない場合(S34においてNO)、処理は終了する。
これに対して、指定値の設定がある場合(S35においてYES)、角度算出部27は、指定値に示される変化率に基づいて、直前の補正ベクトルと、最新ベクトルの補正ベクトルとが成す角を補正角として算出する(S36)。
次に、補正データ生成部24Bは、角度算出部27が算出した補正角を用いて、補正値を決定する(S37)。例えば、補正データ生成部24Bは、補正角と直前の補正ベクトルとを用いて、最新ベクトルの補正ベクトルを生成する(S37)。
〔まとめ〕
本発明の一態様に係る手書入力装置は、手書入力をサンプリングして得られる複数のサンプル点に基づいて、描線表示のための手書入力データを生成する手書入力装置において、サンプル点の変位の成す角度の変化に応じて、サンプル点の変位の新旧に応じた重み付けを用いてサンプル点の変位を補正することで上記手書入力データを生成する補正手段(補正データ生成部24A)を備える。
本発明の一態様に係る手書入力装置は、手書入力をサンプリングして得られる複数のサンプル点に基づいて、描線表示のための手書入力データを生成する手書入力装置において、サンプル点の変位の成す角度の変化に応じて、サンプル点の変位の新旧に応じた重み付けを用いてサンプル点の変位を補正することで上記手書入力データを生成する補正手段(補正データ生成部24A)を備える。
別の観点から言えば、本発明の一態様に係る手書入力装置は、手書入力をサンプリングして得られる複数のサンプル点に基づいて、描線表示のための手書入力データを生成する手書入力装置において、サンプル点の変位の成す角度の変化に応じて、補正対象サンプル点と、当該補正対象サンプル点の直前にサンプリングされた直近サンプル点との変位に対して、該直近サンプリング点よりも前のサンプル点の変位に対する重みよりも大きな重み付けを用いて補正対象サンプル点の変位を補正することで上記手書入力データを生成する補正手段を備える。
本発明の一態様に係る手書入力装置の制御方法は、手書入力をサンプリングして得られる複数のサンプル点に基づいて、描線表示のための手書入力データを生成する手書入力装置の制御方法において、サンプル点の変位の成す角度の変化に応じて、サンプル点の変位の新旧に応じた重み付けを用いてサンプル点の変位を補正することで上記手書入力データを生成する補正ステップを含む。
上記手書入力装置は、例示的には、スタイラスによる入力を受け付けるタブレット入力装置や、手書入力を受け付けるタッチパネルを備えるタッチパネル入力装置である。
上記サンプル点は、手書入力の入力位置を示すものであり、例えば、2次元座標、すなわちX座標、Y座標にて表現することができる。
また、上記サンプル点の変位とは、あるサンプル点と、該あるサンプル点の次の(前の)サンプル点との間における位置の変化のことである。サンプル点の変位は、例えば、あるサンプル点から別のサンプル点に向かうベクトルにより表現することができる。また、サンプル点をサンプリングするサンプリング間隔は任意に設定することができる。また、手書入力データは手書入力結果を表示するために用いられる描線データである。
また、上記サンプル点の変位の成す角度を測る基準は、任意に設定することができる。例えば、サンプル点の変位の成す角度は、P0、P1、およびP2の3つのサンプル点がある場合、上記変位の成す角度の変化は、P0P1とP1P2とがなす角度を求めてもよい。
また、例えば、サンプル点の変位の成す角度は、X軸を角度の測る基準とし、変位の方向とX軸方向とがなす角度と定義することも可能である。
上記角度の変化は、P0P1がX軸となす角度Q0と、P1P2がX軸となす角度Q1との差分または角度Q0および角度Q1の間の変化率であってもよい。
上記構成によれば、サンプル点の変位の成す角度の変化に応じて、サンプル点の変位の新旧に応じた重み付けを用いてサンプル点の変位を補正することができる。
サンプル点の変位の新旧に応じた重み付けとは、例えば、サンプル点が新しいほど大きな重み付けを適用するとともに、サンプル点が古いほど小さな重み付けを適用するということである。逆に、サンプル点が新しいほど小さな重み付けを適用するとともに、サンプル点が古いほど大きな重み付けを適用してもかまわない。なお、上記補正はサンプル点を検出する都度行ってもよい。また、上記重み付けの設定方法は、予め設定されている定数値を適用してもよいし、変位の成す角の変化に応じて設定される変数値を適用してもよい。
よって、上記構成によれば、上記変位の成す角度の変化が大きくなった場合、サンプル点が新しいほど大きな重み付けを用いてサンプル点の変位を補正し、手書入力による描線の追従性を向上させたり、サンプル点が新しいほど小さな重み付けを用いてサンプル点の変位を補正し、手書入力による描線を滑らかにさせたりすることができる。
このように、上記構成によれば、サンプル点の変位の補正に用いる重み付けを手書入力の入力角度に応じて適宜変更することで、手書入力の追従性の向上、および、円滑化の少なくともいずれかを図ることができるという効果を奏する。
さらに、本発明の一態様に係る手書入力装置では、上記補正手段は、上記サンプル点の変位の成す角度の変化が所定の閾値より大きくなったときに、より新しいサンプル点に対してより大きな重み付けを用いる補正を行ってもよい。
上記構成によれば、上記サンプル点の変位の成す角度の導出値の変化が大きくなったときに、より新しいサンプル点に対してより大きな重み付けを用いる補正を行う。
このため、手書入力の角度が大きくなったような場合において、より新しいサンプル点に対してより大きな重み付けを用いる補正を行う。
よって、過去のデータも考慮しつつ、より新しい入力データに近い補正値を算出することができ、これにより追従性と滑らかさとを両立させるような、よりよい描画を行うことができる。
さらに、本発明の一態様に係る手書入力装置では、上記補正手段は、上記閾値より大きくなった上記サンプル点の変位の成す角度の変化が小さくなったときに、より新しいサンプル点に対してより大きな重み付けを用いる補正を行ってもよい。
上記構成によれば、手書入力の角度が大きくなって、その後、当該角度が小さくなったような場合において、より新しいサンプル点に対してより大きな重み付けを用いる補正を行う。
よって、角度変化の前後において、追従性を確保することができる。
さらに、本発明の一態様に係る手書入力装置では、上記補正手段は、上記閾値より大きくなった上記サンプル点の変位の成す角度の変化が小さくなったときに、より新しいサンプル点に対してより小さな重み付けを用いる補正を行ってもよい。
上記構成によれば、手書入力の角度が大きくなって、その後、当該角度が小さくなったような場合において、より新しいサンプル点に対してより小さい重み付けを用いる補正を行う。
よって、角度変化の前後において、描画の滑らかさを維持することができる。
さらに、本発明の一態様に係る手書入力装置では、上記補正手段は、最新のサンプル点と該最新のサンプル点の一つ前のサンプル点との間における変位と、それ以前のサンプル点についての補正により得られた変位との加重平均を用いた補正を行ってもよい。
上記構成によれば、最新の変位と、ひとつ前の変位の補正値とを用いて補正を行うことができる。
この補正は例えば、“V´n=αVn+(1−α)V´n−1”という式により表わすことができる。ここで、V´nは、対象となる補正による補正後の変位を表わす。また、V´n−1は、対象となる補正のひとつ前の補正により得られた変位を示す。Vnは、補正前の変位を表わす。また、αは重み付け係数を表わす。
このように、最新の変位と、ひとつ前の変位の補正値とを用いるだけで済むので、所定数の変位を記憶しておき、記憶した所定数の変位を計算に用いる加重移動平均を補正に使う場合よりも、記憶領域が少なくて済む。
よって精度のよい補正を比較的簡便に行うことができる。
本発明の一態様に係る手書入力装置は、手書入力をサンプリングして得られる複数のサンプル点に基づいて、描線表示のための手書入力データを生成する手書入力装置において、サンプリングの都度、得られたサンプル点への第1の変位と、該第1の変位のひとつ前の第2の変位とが成す角度の変化率を算出する変化率算出手段(変化率指定判定部26)と、上記変化率が、所定の範囲内に収まるように、該第1の変位を補正することで上記手書入力データを生成する変位補正手段(角度算出部27、補正データ生成部24B)と、を備える。
本発明の一態様に係る手書入力装置の制御方法は、手書入力をサンプリングして得られる複数のサンプル点に基づいて、描線表示のための手書入力データを生成する手書入力装置の制御方法において、サンプリングの都度、得られたサンプル点への第1の変位と、該第1の変位のひとつ前の第2の変位とが成す角度の変化率を算出する変化率算出ステップと、上記変化率が、所定の範囲内に収まるように、該第1の変位を補正することで上記手書入力データを生成する変位補正ステップと、を含む。
サンプル点への第1の変位の変位前の点は、前回の補正により得られた変位の変位先である補正後のサンプル点、および、前回のサンプリングによって得られたサンプル点(いわゆる生データ)のいずれかであってもよい。また、上記第2の変位についても、その変位前後の点は、生データが示すものであってもよいし、該生データを補正した後の補正後データが示すものであってもよい。
上記構成によれば、サンプリングの都度、得られたサンプル点への第1の変位と、該第1の変位のひとつ前の第2の変位とが成す角度の変化率を算出するとともに、上記変化率が、所定の範囲内に収まるように、該第1の変位を補正する。当該所定の範囲は、描こうとしている描線の曲率に応じて定めることができる。
このため、手書入力データが表す描線において、曲線を表現するための各変位間の角度が極端に変化することを防ぐことができる。これにより、ユーザーの手書入力に基づいて、より滑らかな曲線を描画することができる。
さらに、本発明の一態様に係る手書入力装置では、上記変位補正手段は、上記変化率が、一定になるように上記第1の変位を補正してもよい。
上記構成によれば、サンプル点間において変化率を一定とするので、描線の曲率が一定となり、円弧を描線として描くことができる。これにより、ユーザーが手書入力により円を描こうとしている場合、多少、ユーザーが入力した手書入力による曲線がゆがんでいたとしても、補正により滑らかな円弧を描くことができる。
さらに、本発明の一態様に係る手書入力装置では、上記変位補正手段は、上記変化率が所定の閾値以上であれば、上記補正を行うことを抑制してもよい。
上記構成において、“抑制する”とは、上記補正を行う描画モードから、上記補正を行わない描画モードにモードが移行することを含む。
また、ユーザーが所定の閾値を超えるような角度の変化率で描画を行うときは、曲線を描くことをやめようとしている可能性が高い。
上記構成によれば、上記変化率が所定の閾値以上であれば、上記補正を行うことを抑制する。よって、曲線を描くことをやめようとしている可能性が高い場合において、補正を行うことを控え、よりユーザーの意図を反映した描画を行うことができる。
なお、上記手書入力装置は、コンピュータによって実現してもよく、この場合には、コンピュータを上記各手段として動作させることにより手書入力装置をコンピュータにて実現させる手書入力装置制御プログラムおよびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
〔ソフトウェアによる実現例〕
最後に、手書入力装置1の各ブロック、特に制御部20の各部は、集積回路(ICチップ)上に形成された論理回路によってハードウェア的に実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェア的に実現してもよい。
最後に、手書入力装置1の各ブロック、特に制御部20の各部は、集積回路(ICチップ)上に形成された論理回路によってハードウェア的に実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェア的に実現してもよい。
後者の場合、手書入力装置1は、各機能を実現するプログラムの命令を実行するCPU、上記プログラムを格納したROM(Read Only Memory)、上記プログラムを展開するRAM(Random Access Memory)、上記プログラムおよび各種データを格納するメモリ等の記憶装置(記録媒体)などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアである手書入力装置1の制御プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、上記手書入力装置1に供給し、そのコンピュータ(またはCPUやMPU)が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
上記記録媒体としては、一時的でない有形の媒体(non-transitory tangible medium)、例えば、磁気テープやカセットテープ等のテープ類、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやCD−ROM/MO/MD/DVD/CD−R等の光ディスクを含むディスク類、ICカード(メモリカードを含む)/光カード等のカード類、マスクROM/EPROM/EEPROM(登録商標)/フラッシュROM等の半導体メモリ類、あるいはPLD(Programmable logic device)やFPGA(Field Programmable Gate Array)等の論理回路類などを用いることができる。
また、手書入力装置1を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークは、プログラムコードを伝送可能であればよく、特に限定されない。例えば、インターネット、イントラネット、エキストラネット、LAN、ISDN、VAN、CATV通信網、仮想専用網(Virtual Private Network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、この通信ネットワークを構成する伝送媒体も、プログラムコードを伝送可能な媒体であればよく、特定の構成または種類のものに限定されない。例えば、IEEE1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL(Asymmetric Digital Subscriber Line)回線等の有線でも、IrDAやリモコンのような赤外線、Bluetooth(登録商標)、IEEE802.11無線、HDR(High Data Rate)、NFC(Near Field Communication)、DLNA(Digital Living Network Alliance)、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
本発明は、タブレット端末や、スマートフォンなどの高機能携帯電話機等のタッチパネル入力装置を備える装置に利用することができる。
1、1A、1B 手書入力装置
10 記憶部
11 サンプル点履歴情報記憶部
12 速度閾値記憶部
12A 角度閾値記憶部
13 重み記憶部
14 補正データ履歴情報記憶部
15 指定変化率記憶部
20 制御部
21 サンプル点取得部
22 速度条件判定部
23 重み設定部
24、24A、24B 補正データ生成部
25 描画部
26 変化率指定判定部
27 角度算出部
28 変化率指定部
30 タッチパネル表示部
31 操作部
32 表示部
10 記憶部
11 サンプル点履歴情報記憶部
12 速度閾値記憶部
12A 角度閾値記憶部
13 重み記憶部
14 補正データ履歴情報記憶部
15 指定変化率記憶部
20 制御部
21 サンプル点取得部
22 速度条件判定部
23 重み設定部
24、24A、24B 補正データ生成部
25 描画部
26 変化率指定判定部
27 角度算出部
28 変化率指定部
30 タッチパネル表示部
31 操作部
32 表示部
Claims (11)
- 手書入力をサンプリングして得られる複数のサンプル点に基づいて、描線表示のための手書入力データを生成する手書入力装置において、
サンプル点の変位の成す角度の変化に応じて、サンプル点の変位の新旧に応じた重み付けを用いてサンプル点の変位を補正することで上記手書入力データを生成する補正手段を備えることを特徴とする手書入力装置。 - 上記補正手段は、上記サンプル点の変位の成す角度の変化が所定の閾値より大きくなったときに、より新しいサンプル点に対してより大きな重み付けを用いる補正を行うことを特徴とする請求項1に記載の手書入力装置。
- 上記補正手段は、上記閾値より大きくなった上記サンプル点の変位の成す角度の変化が小さくなったときに、より新しいサンプル点に対してより大きな重み付けを用いる補正を行うことを特徴とする請求項2に記載の手書入力装置。
- 上記補正手段は、上記閾値より大きくなった上記サンプル点の変位の成す角度の変化が小さくなったときに、より新しいサンプル点に対してより小さな重み付けを用いる補正を行うことを特徴とする請求項2に記載の手書入力装置。
- 上記補正手段は、最新のサンプル点と該最新のサンプル点の一つ前のサンプル点との間における変位と、それ以前のサンプル点についての補正により得られた変位との加重平均を用いた補正を行うことを特徴とする請求項1から4のいずれか1項に記載の手書入力装置。
- 手書入力をサンプリングして得られる複数のサンプル点に基づいて、描線表示のための手書入力データを生成する手書入力装置において、
サンプリングの都度、得られたサンプル点への第1の変位と、該第1の変位のひとつ前の第2の変位とが成す角度の変化率を算出する変化率算出手段と、
上記変化率が、所定の範囲内に収まるように、該第1の変位を補正することで上記手書入力データを生成する変位補正手段と、を備えることを特徴とする手書入力装置。 - 上記変位補正手段は、上記変化率が、一定になるように上記第1の変位を補正することを特徴とする請求項6に記載の手書入力装置。
- 上記変位補正手段は、上記変化率が所定の閾値以上であれば、上記補正を行うことを抑制することを特徴とする請求項6または7に記載の手書入力装置。
- 請求項1から8のいずれか1項に記載の手書入力装置を動作させる手書入力装置制御プログラムであって、コンピュータを上記の各手段として機能させるための手書入力装置制御プログラム。
- 手書入力をサンプリングして得られる複数のサンプル点に基づいて、描線表示のための手書入力データを生成する手書入力装置の制御方法において、
サンプル点の変位の成す角度の変化に応じて、サンプル点の変位の新旧に応じた重み付けを用いてサンプル点の変位を補正することで上記手書入力データを生成する補正ステップを含むことを特徴とする手書入力装置の制御方法。 - 手書入力をサンプリングして得られる複数のサンプル点に基づいて、描線表示のための手書入力データを生成する手書入力装置の制御方法において、
サンプリングの都度、得られたサンプル点への第1の変位と、該第1の変位のひとつ前の第2の変位とが成す角度の変化率を算出する変化率算出ステップと、
上記変化率が、所定の範囲内に収まるように、該第1の変位を補正することで上記手書入力データを生成する変位補正ステップと、を含むことを特徴とする手書入力装置の制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012213039A JP2014067286A (ja) | 2012-09-26 | 2012-09-26 | 手書入力装置、手書入力プログラム、および手書入力装置の制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012213039A JP2014067286A (ja) | 2012-09-26 | 2012-09-26 | 手書入力装置、手書入力プログラム、および手書入力装置の制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014067286A true JP2014067286A (ja) | 2014-04-17 |
Family
ID=50743605
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012213039A Pending JP2014067286A (ja) | 2012-09-26 | 2012-09-26 | 手書入力装置、手書入力プログラム、および手書入力装置の制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014067286A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6022137B1 (ja) * | 2016-03-22 | 2016-11-09 | 三菱電機株式会社 | 座標補正装置、座標補正方法及び座標補正プログラム |
CN110515527A (zh) * | 2019-07-12 | 2019-11-29 | 沈阳美行科技有限公司 | 一种书写笔迹显示方法、装置及相关系统 |
JP2020091754A (ja) * | 2018-12-06 | 2020-06-11 | セイコーエプソン株式会社 | 表示装置、表示システム及び表示方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09106321A (ja) * | 1995-10-11 | 1997-04-22 | Canon Inc | 座標入力方法及びその装置 |
JP2004303019A (ja) * | 2003-03-31 | 2004-10-28 | Sanyo Electric Co Ltd | 表示制御装置及び表示制御装置を実装した携帯通信端末 |
JP2011123750A (ja) * | 2009-12-11 | 2011-06-23 | Panasonic Corp | 座標入力装置、携帯端末装置、及び座標入力方法 |
WO2011119483A1 (en) * | 2010-03-24 | 2011-09-29 | Neonode Inc. | Lens arrangement for light-based touch screen |
-
2012
- 2012-09-26 JP JP2012213039A patent/JP2014067286A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09106321A (ja) * | 1995-10-11 | 1997-04-22 | Canon Inc | 座標入力方法及びその装置 |
JP2004303019A (ja) * | 2003-03-31 | 2004-10-28 | Sanyo Electric Co Ltd | 表示制御装置及び表示制御装置を実装した携帯通信端末 |
JP2011123750A (ja) * | 2009-12-11 | 2011-06-23 | Panasonic Corp | 座標入力装置、携帯端末装置、及び座標入力方法 |
WO2011119483A1 (en) * | 2010-03-24 | 2011-09-29 | Neonode Inc. | Lens arrangement for light-based touch screen |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6022137B1 (ja) * | 2016-03-22 | 2016-11-09 | 三菱電機株式会社 | 座標補正装置、座標補正方法及び座標補正プログラム |
WO2017163297A1 (ja) * | 2016-03-22 | 2017-09-28 | 三菱電機株式会社 | 座標補正装置、座標補正方法及び座標補正プログラム |
CN108700961A (zh) * | 2016-03-22 | 2018-10-23 | 三菱电机株式会社 | 坐标校正装置、坐标校正方法及坐标校正程序 |
JP2020091754A (ja) * | 2018-12-06 | 2020-06-11 | セイコーエプソン株式会社 | 表示装置、表示システム及び表示方法 |
JP7238371B2 (ja) | 2018-12-06 | 2023-03-14 | セイコーエプソン株式会社 | 表示装置、表示システム及び表示方法 |
CN110515527A (zh) * | 2019-07-12 | 2019-11-29 | 沈阳美行科技有限公司 | 一种书写笔迹显示方法、装置及相关系统 |
CN110515527B (zh) * | 2019-07-12 | 2022-10-18 | 沈阳美行科技股份有限公司 | 一种书写笔迹显示方法、装置及相关系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10388004B2 (en) | Image processing method and apparatus | |
US9547391B2 (en) | Method for processing input and electronic device thereof | |
US8811951B1 (en) | Managing display of private information | |
AU2014315443B2 (en) | Tilting to scroll | |
US10186062B2 (en) | Contour segmentation apparatus and method based on user interaction | |
US10228840B2 (en) | Method of controlling touch function and an electronic device thereof | |
US20120139952A1 (en) | Image transmission method, device, and computer-readable storage medium storing image transmission program | |
WO2017163297A1 (ja) | 座標補正装置、座標補正方法及び座標補正プログラム | |
JP5269964B2 (ja) | 電子機器及び映像処理方法 | |
CN107438812B (zh) | 信息处理设备、信息处理方法和程序 | |
TW201435671A (zh) | 顯示方法、電子裝置以及電腦程式產品 | |
JPWO2012111194A1 (ja) | 入力装置、入力方法およびプログラム | |
US20170192589A1 (en) | Method and device for adjusting object attribute information | |
JP6911834B2 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
TW202013316A (zh) | 人臉圖像的處理方法及裝置、電子設備和儲存介質 | |
WO2015196715A1 (zh) | 图像重定位方法、装置及终端 | |
CN107277346A (zh) | 一种图像处理方法及终端 | |
US9001033B2 (en) | Coordinate information updating device | |
JP2014067286A (ja) | 手書入力装置、手書入力プログラム、および手書入力装置の制御方法 | |
JP6100064B2 (ja) | 電子機器および画像処理方法 | |
KR20140008041A (ko) | 방향 적응적 영상 보간 방법 및 그 전자 장치 | |
TW201421298A (zh) | 修正觸碰位置的方法 | |
WO2021189514A1 (zh) | 一种触摸交互方法、装置、终端设备及存储介质 | |
JP2014067285A (ja) | 手書入力装置、手書入力プログラム、および手書入力装置の制御方法 | |
CN111126101B (zh) | 关键点位置的确定方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150318 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160107 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160223 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20160823 |