本発明は、タッチパネル等の二次元的な座標データを入力する座標データ入力装置に入力した座標データについてその入力誤差を吸収する座標データ入力誤差吸収装置に関する。
たとえばディスプレイの前面に透明なタッチパネルを配置した情報機器では、ディスプレイに表示されている画像等に対して編集箇所の指定や各種の座標の指示等を簡単かつ直感的に行うことができる。この前提として、タッチパネル上でたとえばペンを用いて軌跡を描くときに入力される座標データがそれぞれ正確な位置情報を表わしていることが必要となる。調整が不十分な場合には、座標のぶれやバラツキが生じる結果として、滑らかな曲線をトレースしても、これがギザギザな曲線として入力されてしまう。
そこで、このような装置自体の誤差としてのハードウェアの誤差をソフトウェアで改善する手法として移動平均法が第1の提案として採用されている(たとえば特許文献1および特許文献2)。この移動平均法では、時間的に連続したデータが存在するとき、着目するデータとその前後数点のデータとを用いて平均を求め、その値を着目するデータとして補正を行う手法である。特許文献1では単純に平均値を算出するが、特許文献2の場合にはノイズが混入した場合を想定して、最大値や最小値を破棄して残りの座標データの平均を求める等の工夫を行っている。
この移動平均法では、平均に使用する座標データの数を増加することによって、ハードウェアの誤差の改善を見込むことができる。しかしなから、平均をとるための座標データ数を多く設定しすぎると、本来の座標情報が失われてしまう。したがって、ハードウェアの誤差が比較的小さいときには少ない座標データ数で誤差を改善することができるが、ハードウェアの誤差が比較的大きくなると、座標データ数を増加していく必要がある。この場合、移動平均法では抑えきれない入力データのゆらぎが発生する。
また、前回の座標データと現在の座標データを比較して移動方向と移動量を算出するようにした第2の提案も行われている(たとえば特許文献3)。この提案では、ハンドスキャナのボールのX,Y方向の加速度と現在の速度を比較して移動量を算出し、現在の移動方向と移動量に応じた画像データの補正を行うようにしている。
以上の第1および第2の提案では、ハードウェア上の誤差について補正を行うことができるものの、ユーザが意識的に異なった点として入力した座標データとこれらハードウェア上の誤差とを判別することができない。したがって、ユーザが意識的に異なった点として入力した座標データをハードウェア上の誤差として平均をとってしまったり、ノイズとして除去してしまうといった不都合が発生する。
そこで、入力した複数の座標データの値が互いに異なっているようなときには、(1)装置自体の誤差(ハードウェアの誤差)でこのようなことが生じたのか、あるいは(2)入力した座標データ自体が元々異なったものであるのかを判定手段で判定して、ハードウェアの誤差の場合にはそのバラツキを抑えるようにした技術が第3の提案として提案されている(たとえば特許文献4参照)。
この第3の提案では、今回読み取った座標データおよび過去に遡った分の座標データとからなる複数の座標データを用い、一定方向に連続して変異した回数と座標データの変位量から、判定手段がハードウェアの誤差であるか、入力による変位であるかを判定するようになっている。
特開平08−272534号公報(第0011段落、図1)
特開平08−123618号公報(第0008、第0009段落、図1)
特開平2001−156999号公報(第0057段落、図4)
特開平2001−67185号公報(第0012段落、図2)
ところで、この第3の提案では座標データの平均をとる数が多くなると、本来の座標データが失われやすいという問題があった。これを次に説明する。
図6は、この第3の提案で平均をとる前の生データと、比較的多い数の座標データとしての6点平均をとった後のデータと、比較的少ない数の座標データとしての2点平均をとった後のデータについての座標値を表わしたものである。同図(a)は、これをX軸とY軸でグラフ化したものであり、同図(b)はこれらの数値データを表わしている。6点平均では生データ(X,Y)の6点の平均をとっている。したがって、同図(a)に示すように座標データの変位方向がたとえばX軸方向というように同一方向を向いている場合のハードウェアの誤差は、2点平均よりもよく補正することができる。
しかしながら、同図(a)に示すようにX軸の正方向に変位していたものが途中から負方向に変化した場合のように、座標データの変位方向が途中で逆になる場合がある。このような場合には、6点平均では2点平均と比較して、逆になった場所の生データよりも大きく相違する値が平均値として得られてしまう。すなわち、本来の座標データが失われてしまい、この本来の座標データと大きく異なった値が平均値として得られてしまう。
そこで本発明の目的は、入力された座標データがハードウェアの誤差であるか入力の変位であるかを判別できると共に、変位の方向が逆になった場合でも、本来の座標データが失われるのを防止することのできる座標データ入力誤差吸収装置を提供することにある。
請求項1記載の発明では、(イ)二次元的な座標データを入力する座標データ入力装置から入力された1点ごとの座標データを検出する座標データ検出手段と、(ロ)この座標データ検出手段によって検出された座標データを時系列データとして格納する座標データ格納手段と、(ハ)この座標データ格納手段に格納された複数の時系列的な座標データを用いて、座標データ検出手段によって検出された座標データが座標データ入力装置自体のハードウェアの特性に起因する静止状態での入力のバラツキによるハードウェアの誤差であるか、変位が入力されたものであるかを判定する変位有無判定手段と、(ニ)この変位有無判定手段がハードウェアの誤差であると判定したとき、前回の座標データとして確定した値を今回入力した座標データとして置き換えるハードウェア誤差時座標確定手段と、(ホ)座標データ格納手段に格納された座標データの時系列的な変化から変位の方向を判定する変位方向判定手段と、(へ)変位有無判定手段が変位が入力されたものであると判定したとき変位方向判定手段の判定した変位の方向に応じて座標データ格納手段に格納された複数の時系列的な座標データを異なった数だけ平均することで今回入力した座標を算出する変位時座標確定手段とを座標データ入力誤差吸収装置に具備させる。
すなわち本発明では、タッチパネルのような二次元的な座標データを入力する座標データ入力装置から得られた時系列的な座標データにおける時系列的な変化から変位方向判定手段を使用して変位の方向を判定することにしている。そして、変位が入力されたものであると判定したとき変位方向判定手段の判定した変位の方向に応じて座標データ格納手段に格納された複数の時系列的な座標データを異なった数だけ平均することにしている。すなわち、この場合に平均をとる座標データの数を同じにすると、反対方向に戻る部分で座標データの成分がプラス、マイナス相殺されてしまい、本来の座標とその分だけずれが発生してしまう。また、このようなずれを一般的に少なくするために平均する座標データの個数を少なくすると、同一方向に座標データが変位している場合の精度を十分に保つことができない。そこで、本発明では変位の方向に応じて、平均を算出する際の座標データの数を異ならせることで、座標データの入力誤差を吸収している。
請求項2記載の発明では、請求項1記載の座標データ入力誤差吸収装置で、変位方向判定手段は、二次元的な座標データとしてのX軸方向あるいはY軸方向について時間的に隣接する2つの座標データの差を求めることでプラス方向の変位かマイナス方向の変位かを判別することを特徴としている。
すなわち本発明では、時間的に隣接する2つずつのデータの差をとって、それぞれプラス方向の変位かマイナス方向の変位かを判別し、これを繰り返すことで座標データが同一方向に変位しているか途中で異なった方向に変位するかを判別できるようにしている。
請求項3記載の発明では、請求項1記載の座標データ入力誤差吸収装置で、変位時座標確定手段は、各座標データの平均値をとって座標の確定を行う移動平均法を用いて変位時の座標を確定する手段であり、座標データ検出手段が検出した予め定めた個数の時系列的な座標データが時系列的に同方向に変位していないときは同方向に変位しているときと比べて平均をとる座標データの個数が少なく設定されていることを特徴としている。
すなわち本発明では、時系列的に同方向に変位していないときは平均をとる座標データの数が多いと今回の座標データにそれ以前の座標データの影響が強く出て誤差が大きくなる傾向があるので、この場合には平均をとる座標データの個数を相対的に少なくするようにしている。
請求項4記載の発明では、請求項1記載の座標データ入力誤差吸収装置で、変位時座標確定手段は、各座標データの平均値をとって座標の確定を行う移動平均法を用いて変位時の座標を確定する手段であり、座標データ検出手段が検出した予め定めた個数の時系列的な座標データが時系列的に同方向に変位しているときは予め定めた所定の個数の座標データの平均をとり、時系列的に同方向に変位していないときには座標データ検出手段が今回検出した座標データを確定させることを特徴としている。
すなわち本発明では、時系列的に同方向に変位していないときは平均をとる座標データの数が多いと今回の座標データにそれ以前の座標データの影響が強く出て誤差が大きくなる傾向があるので、この場合には平均をとらずに座標データ検出手段が今回検出した座標データを今回の座標を示すものとして確定させるようにしている。
以上説明したように本発明によれば、タッチパネルのような二次元的な座標データを入力する座標データ入力装置から得られた時系列的な座標データをチェックして座標データ入力装置自体のハードウェアの特性に起因するハードウェアの誤差であるか、変位が入力されたものであるかを判定し、これに応じて誤差の吸収の手法を異ならせたので、単に誤差の平均をとるといった手法よりも座標データの誤差を精度良く吸収することができ、入力データがちらついて見えるようなゆらぎの発生を効果的に防止することができる。
また、変位方向判定手段を用いて座標データの時系列的な変位の方向を判定し、これによって変位が入力された際の平均をとる座標データの数を変更したり、そのような場合の入力データをそのまま座標データとして採用するようにしたので、変位の方向が変わった場合における入力された座標データをより正確に判別することができる。
図1は、本発明の実施の形態における座標データ入力誤差吸収装置の構成を表わしたものである。この座標データ入力誤差吸収装置101は、各種制御を実現するためのコンピュータ部102とその出力手段としての表示画面部103を備えている。表示画面部103の前面には入力手段としてのタッチパネル104が装着されている。タッチパネル104は、抵抗膜式等の各種の方式のものが存在する。たとえば図示しないペンをタッチパネル104上で押圧すると、その位置が座標検出手段106で検出されるようになっている。検出された位置としての座標データ107は、コンピュータ部102内の座標データ格納手段108に格納されるようになっている。
コンピュータ部102は、図示しないCPU(中央処理装置)と、このCPUで実行する制御プログラムを格納した同じく図示しないハードディスクやROM(リード・オンリ・メモリ)等の記憶媒体と、同じく図示しないRAM(ランダム・アクセス・メモリ)等からなる作業用メモリを備えている。座標データ格納手段108は、判定用パラメータ格納手段109および平均個数格納手段111と共に、前記した作業用メモリの一部の領域を割り当てた形で構成されている。もちろん、これらが作業用メモリ以外のそれぞれ独立した記憶領域を割り当てられているものであってもよい。
ここで判定用パラメータ格納手段109は、判定用パラメータ設定手段112によって設定された判定用パラメータ113を格納する手段である。判定用パラメータ113としては、座標データ数、同一方向に連続して変位する回数のしきい値および座標データの変位量のしきい値の3つが存在している。また、平均個数格納手段111は平均値をとる個数を設定する平均個数設定手段114の設定した平均個数115を格納する手段である。
コンピュータ部102には、以上の他に、入力された座標データがハードウェアの誤差か変位かを判定する判定手段117および変位の場合の座標データを求める移動平均法計算手段118が備えられている。また判定手段117の出力側には、表示画面部103に入力された座標の表示を行う座標表示手段119が備えられている。
このうち判定手段117は、判定用パラメータ格納手段109に格納されている同一方向に連続して変位する回数のしきい値および座標データの変位量のしきい値を使用して、座標データ格納手段108に格納された複数の座標データを比較することで、一定方向に連続して変位した回数と座標データの変位量を求める。そして、これによりそれぞれ入力された座標データがハードウェアの誤差であるか変位であるかを判定するようになっている。ここで座標データ格納手段108には、(1)ハードウェアから今回読み取った座標データと、(2)過去に遡った分の複数の座標データと、(3)判定手段117によって決定された前回決定の座標データが格納されるようになっている。座標データ格納手段108の格納する座標データ数は、判定用パラメータ格納手段109に格納されているパラメータとしての座標データ数が使用される。
判定手段117は、この座標データ格納手段108に格納された今回および過去に遡った分の座標データと、判定用パラメータ格納手段109に格納された判定用パラメータ121を基に判定を行う。ここで判定用パラメータ121は、座標データ数、同一方向へ連続して変位する回数のしきい値、および座標データの変位量のしきい値の3つから構成されている。
この判定手段117による判定結果がハードウェアの誤差であると判定された場合には、変位が入力されていないとの前提の下なので、入力座標は静止状態にある。そこでこの場合には、座標データ格納手段108に格納されている前回確定した座標データが今回の座標データとして再び使用されることになる。すなわち、この場合には判定手段117によって前回決定された座標データが座標表示手段119に渡されて、表示画面部103にその座標位置で表示が行われることになる。
これに対して判定手段117による判定結果が変位の入力とされた場合、移動平均法計算手段118を用いて平均した座標データが求められる。この場合には、判定手段117によって与えられる複数の座標データと平均個数格納手段111に格納されている移動平均法で使用する平均個数から、移動平均法で平均した座標データが求められる。
この移動平均法では、今回読み取った座標データを含んだ最新の3点以上の座標データを使用して、同一の方向に座標データが変位しているのか、あるいは途中から反対方向に変位しているかの判別を行う。ここで移動平均法計算手段118は、平均個数格納手段111に格納されている移動平均法で使用する平均個数と、判定手段117から与えられる座標データを基にして、判定手段117が要求する座標の平均値を計算する。この計算では、同一の方向に座標データが変位している場合には、この同一方向について設定した第1の平均個数で座標データの平均値を求める。途中で反対方向に変位している場合には、反対方向について設定した第2の平均個数で座標データの平均値を求める。ここで第1の平均個数と第2の平均個数の関係は、次の(1)式で表わされる。
第1の平均個数≧第2の平均個数 ……(1)
このように途中で反対方向に変位している場合の第2の平均個数としては、必要により移動平均のデータ数を減らしたり、平均を行うことなく、今回読み取った座標データを使用することになる。
移動平均法により計算された座標データは、座標データ格納手段108に格納して、座標表示手段119に渡して表示画面部103に表示させる。このようにして、ハードウェアから読み取った入力座標のうち、ハードウェアの原因で生じる誤差による表示位置のバラツキを抑えることができる。
図2および図3は、本実施の形態の座標データ入力誤差吸収装置のX座標データの処理の流れを具体的に表わしたものである。本処理では、まず初期化処理が行われる(図2ステップS201)。この初期化処理では、まず図示しないカウンタおよび各種パラメータ(変数)をクリアする。ここで、プラス方向の変位カウンタのカウント値を“ic”とし、マイナス方向の変位カウンタのカウント値を“dc”とする。また、プラス方向への変位回数の最大値を“mic”とし、マイナス方向への変位回数の最大値を“mdc”とする。初期化処理ではこれらの各値をクリアするので、これらは次のような値となる。
“ic”=“0”、“dc”=“0”、“mic”=“0”、“mdc”=“0”
次にこの座標データ入力誤差吸収装置101の処理特性に合わせた判定用パラメータが、図1に示した判定用パラメータ格納手段109から入手される(ステップS202)。これらは座標データ数としきい値である。
次に座標データ入力誤差吸収装置101は、座標データ格納手段108に格納されている複数の連続するX,Y座標データ(xi,yi)(ただしi=1、2、……n)と、前回採用した座標データ(xp,yp)を入手する(ステップS203)。そして、まずX座標について連続する座標データ(xi,xi+1)を比較して、プラス方向の変位であるかどうかを判別する(ステップS204)。この比較は両者の差“(xi+1)−xi”を求めることによって行う。これらの差が“0”よりも大きい場合にはプラス方向となる(Y)。この場合には、プラス方向の変位カウンタ“ic”の値を“1”だけ増加(ic=ic+1)する(ステップS205)。
そして、同一方向に変位しているかどうかをチェックするために、1座標前までマイナス方向に変位していたかどうかを判別する(ステップS206)。マイナス方向の変位カウンタの値“dc”がゼロ以外の値をとっていれば、1座標前までマイナス方向に変位していたので(Y)、この場合にはマイナス方向への変位回数が今までで最大であるかどうかがチェックされる(ステップS207)。このチェックは、今回のマイナス方向の変位カウンタの値“dc”が今までのマイナス方向の変位回数の最大値“mdc”よりも大きいか否かによって行われる。今までのマイナス方向の変位回数の最大値“mdc”よりも大きい場合には(Y)、この最大値“mdc”を現在のマイナス方向の変位カウンタの値“dc”に更新する(ステップS208)。すなわち、“mdc=dc”となる。そして、マイナス方向の変位カウンタの値“dc”自体を“0”にクリアする(ステップS209)。ステップS207でマイナス方向への変位回数が今までで最大ではなかった場合には(N)、ステップS208の処理を行わずにステップS209の処理に進むことになる。
ステップS209の処理が終了したら、またはステップS206で1座標前までマイナス方向に変位していなかったら(N)、X座標データの比較が全部終了したかどうかをチェックする(ステップS210)。まだ終了していない場合には(N)、ステップS204に処理が戻って、連続する次のX座標データはプラス方向の変位であるかどうかのチェックが行われる。プラス方向の変位であるとされた場合には(Y)、以下同様の処理が行われることになる。
一方、ステップS204のチェックでX座標についてプラス方向の変位ではないとされた場合には(N)、マイナス方向の変位であるかどうかの判別が行われる(図3ステップS211)。前記した差“(xi+1)−(xi)”が“0”よりも小さい場合にはマイナス方向となる(Y)。この場合にはマイナス方向の変位カウンタ“dc”の値を“1”だけ増加(dc=dc+1)する(ステップS212)。そして、ステップS206の処理とは逆に、1座標前までプラス方向に変位していたかどうかの判別が行われる(ステップS213)。プラス方向の変位カウンタの値“ic”がゼロ以外の値をとっていれば、1座標前までプラス方向に変位していたので(Y)、この場合にはプラス方向への変位回数が今までで最大であるかどうかがチェックされる(ステップS214)。
このチェックは、今回のプラス方向の変位カウンタの値“ic”が今までのプラス方向の変位回数の最大値“mic”よりも大きいか否かによって行われる。今までのプラス方向の変位回数の最大値“mic”よりも大きい場合には(Y)、この最大値“mic”を現在のプラス方向の変位カウンタの値“ic”に更新する(ステップS215)。すなわち、“mic=ic”となる。そして、プラス方向の変位カウンタの値“ic”自体を“0”にクリアする(ステップS216)。ステップS214でプラス方向への変位回数が今までで最大ではなかった場合には(N)、ステップS215の処理を行わずにステップS216の処理に進むことになる。
ステップS216の処理が終了したら、またはステップS213で1座標前までプラス方向に変位していなかったら(N)、X座標データの比較が全部終了したかどうかをチェックする(図2ステップS210)。まだ終了していない場合には(N)、ステップS204に処理が戻って、連続する次のX座標データはプラス方向の変位であるかどうかのチェックが行われる。プラス方向の変位ではなくマイナス方向の変位であるとされた場合には(ステップS204:N、ステップS211:Y)、ステップS212以降の処理が行われることになる。
ところで図3に示すステップS211でマイナス方向の変位でもないと判別された場合には(N)、プラス方向にも変位していないので(図2ステップS204:N)、結論としてX座標データとしては変位が生じていないことになる。この場合には(ステップS211:N)、プラス方向への変位回数が今までで最大であるかどうかのチェックが行われる(ステップS217)。このチェックは、現在のプラス方向の変位カウンタの値“ic”が今までのプラス方向の変位回数の最大値“mic”よりも大きいか否かによって行われる。
現在のプラス方向の変位カウンタの値“ic”がプラス方向の変位回数の最大値“mic”よりも大きい場合には(Y)、プラス方向の変位回数の最大値“mic”をこの値“ic”に更新する(ステップS218)。すなわち、“mic=ic”となる。そして、プラス方向の変位カウンタの値“ic”自体を“0”にクリアする(ステップS219)。ステップS217でプラス方向への変位回数が今までで最大ではなかった場合には(N)、ステップS218の処理を行わずにステップS219の処理に進むことになる。
ステップS220では、ステップS217とは逆にマイナス方向への変位回数が今までで最大であるかどうかのチェックが行われる。このチェックは、現在のマイナス方向の変位カウンタの値“dc”が今までのプラス方向の変位回数の最大値“mdc”よりも大きいか否かによって行われる。
マイナス方向の変位カウンタの値“dc”がマイナス方向の変位回数の最大値“mdc”よりも大きい場合には(Y)、マイナス方向の変位回数の最大値“mdc”をこの値“dc”に更新する(ステップS221)。すなわち、“mdc=dc”となる。そして、マイナス方向の変位カウンタの値“dc”自体を“0”にクリアする(ステップS222)。ステップS220でマイナス方向への変位回数が今までで最大ではなかった場合には(N)、ステップS221の処理を行わずにステップS222の処理に進むことになる。
ステップS222の処理が終了したら、X座標データの比較が全部終了したかどうかをチェックする(図2ステップS210)。まだ終了していない場合には(N)、ステップS204に処理が戻って、連続する次のX座標データはプラス方向の変位であるかどうかのチェックが行われる。プラス方向の変位ではなくマイナス方向の変位であるとされた場合には(ステップS204:N、ステップS211:Y)、ステップS212以降の処理が行われることになる。また、マイナス方向の変位でもないとされた場合には(ステップS211:N)、ステップS217以降の処理が行われる。
図4は、図2および図3で説明したX座標データの比較処理以降のX座標に関する処理の流れを表わしたものである。図2および図3に示した処理でX座標データについて連続する座標データのすべての比較処理が終了したら(図2ステップS210:Y)、プラス方向への変位回数が今までで最大であるかどうかのチェックが行われる(ステップS223)。このチェックは、現在のプラス方向の変位カウンタの値“ic”がプラス方向の変位回数の最大値“mic”よりも大きいかどうかによって行う。最大の場合には(Y)、このプラス方向の変位回数の最大値“mic”を更新する(ステップS224)。すなわち、プラス方向の変位カウンタの最大値“mic”としてカウント値“ic”を設定する。
次に、マイナス方向への変位回数が今までで最大であるかどうかのチェックが行われる(ステップS225)。このチェックは、現在のマイナス方向の変位カウンタの値“dc”がマイナス方向の変位回数の最大値“mdc”よりも大きいかどうかによって行う。最大の場合には(Y)、このマイナス方向の変位回数の最大値“mdc”を更新する(ステップS226)。すなわち、マイナス方向の変位カウンタの最大値“mdc”としてカウント値“dc”を設定する。
以上の処理が終了したら、プラス方向の変位カウンタのカウント値“ic”とマイナス方向の変位カウンタのカウント値“dc”の値を共にクリアする(ステップS227)。これにより、これらの値は次のようになる。
“ic”=“0”、“dc”=“0”
図5は、座標データ入力誤差吸収装置の図2〜図4に続くY座標データの処理およびその後の処理の流れを表わしたものである。図2〜図4で説明したようにしてX座標に関する処理が終了したら、Y座標についてもX座標と同様な処理が行われる(ステップS228)。具体的には図2におけるステップS204〜図4におけるステップS226までに示す処理と同様な処理がY座標についても同様に行われる。
以上の処理が終了したら、X座標データのうちで最も新しい座標データxnと、図1に示す座標データ格納手段108に格納された前回の座標データxpとの差の絶対値dxと、Y座標データのうちで最も新しい座標データynと、図1に示す座標データ格納手段108に格納された前回の座標データypとの差の絶対値dyを求める(ステップS229)。これらは次のように表わすことができる。
dx=|xn−xp|
dy=|yn−yp|
この算出の時点で、X,Y座標の両方で、プラス方向へ連続して変位した回数の最大値“mic”と、マイナス方向へ連続して変位した回数の最大値“mdc”と、X座標データの変位量“dx”と、Y座標データの変位量“dy”が得られることになる。
プラス方向への変位した回数の最大値“mic”と、マイナス方向への変位回数の最大値“mdc”と、X座標データの変位量“dx”と、Y座標データの変位量“dy”とが、すべてしきい値内であれば(ステップS230:Y)、ハードウェアの誤差であると判別する。この場合には今回入力された座標が静止状態であるので、前回採用した座標データ(xp,yp)を採用して(ステップS231)、一連の処理を終了させる(エンド)。
一方、ステップS230でいずれかがしきい値を超えれば(N)、入力による変位であると判別する。この場合には、今回読み取った座標データを含む最新の3点以上の座標データを用いることで、同一方向に変位しているか反対方向に変位しているかどうかを判別する(ステップS232)。最新の3点の座標データを使用して判断する場合を例に挙げてこれを説明する。ステップS232では、次の関係が成立する場合には、反対方向へ変位していると判断する(Y)。
xn-2>xn-1かつxn-1<xn、またはxn-2<xn-1かつxn-1>xn、あるいはyn-2>yn-1かつyn-1<yn、またはyn-2<yn-1かつyn-1>yn
この場合には、平均個数格納手段111(図1)から、反対方向へ変位している場合の平均個数bを取得する。そして、移動平均法により平均値を求める(ステップS233)。X座標方向の平均値xn′およびY座標方向の平均値yn′は次のようになる。
xn′=(xn+1-b+……xn)/b
yn′=(yn+1-b+……yn)/b
そして、このようにして求められた今回の座標データ(xn′,yn′)を、前回採用した座標データ(xp,yp)に格納して(ステップS234)、一連の処理を終了させる(エンド)。
一方、ステップS232で反対方向へ変位していないと判断された場合について説明する。この場合(N)、先の最新の3点の座標データを使用して判断する例では、次の関係が成立する場合には、同一方向へ変位していると判断する。
xn-2>xn-1>xnまたはxn-2<xn-1<xn、かつyn-2>yn-1>ynまたはyn-2<yn-1<yn
この場合には、平均個数格納手段111(図1)から、同一方向へ変位している場合の平均個数aを取得する。そして、移動平均法により平均値を求める(ステップS235)。X座標方向の平均値xn′およびY座標方向の平均値yn′は次のようになる。
xn′=(xn+1-a+……xn)/a
yn′=(yn+1-a+……yn)/a
そして、このようにして求められた今回の座標データ(xn′,yn′)を、前回採用した座標データ(xp,yp)に格納して(ステップS234)、一連の処理を終了させる(エンド)。
次に座標データ入力誤差吸収装置を実施例1で具体的に説明する。この実施例1でも座標データ入力誤差吸収装置の構成は実施の形態と基本的に同一である。そこで、図1〜図5を使用して具体例を基に説明を行う。
本実施例1では、図1に示した表示画面部103から座標検出手段106によって座標データ格納手段108に格納された座標データのパターンについて、第1のパターン〜第3のパターンの3種類のパターンについて考察する。これらのパターンおよびプラス方向への変位回数の最大値“mic”、マイナス方向への変位回数の最大値“mdc”、X座標データのうちで最も新しい座標データxnと前回の座標データxpとの差の絶対値dxならびにY座標データのうちで最も新しい座標データynと前回の座標データypとの差の絶対値dy、および最新の3点は次のようなものである。
(a)第1のパターン
X(50,52,51,53,49)
Y(70,69,71,67,68)
“mic”=1、“mdc”=1、dx=2、dy=4
(b)第2のパターン
X(50,52,51,53,54)
Y(70,69,71,74,78)
“mic”=3、“mdc”=1、dx=3、dy=6
最新の3点:X:51<53<54
Y:71<74<78
(a)第3のパターン
X(50,52,51,53,54)
Y(67,69,71,74,65)
“mic”=3、“mdc”=1、dx=3、dy=7
最新の3点:X:51<53<54
Y:71<74、74>65
この実施例1では5つの座標データを使用して座標データの入力誤差を吸収する。今、座標データ格納手段108に格納され判定手段117によって前回決定された座標データ(xp,yp)が座標データ(51,72)であるものとする。また、判定用のパラメータとして、図5のステップS230における同一方向への連続変位回数のプラス方向の最大値“mic”と、マイナス方向の最大値“mdc”に対するしきい値を“2”とし、X座標データの変位量“dx”と、Y座標データの変位量“dy”に対するしきい値を“5”とする。
まず、第1のパターンについて考察する。図2のステップS204ではX座標について1番目と2番目の値を比較する。この場合、“50”と“52”であり、プラス方向の変位である(Y)。したがって、ステップS205に処理が進み、プラス方向への変位カウンタのカウント値“ic”を“1”だけ増加して“1”とする。次のステップS206ではマイナス方向に変位していないため(1回目の比較であるため)、ステップS210に進む。X座標データの比較は終了していないので(N)、ステップS204に進む。
ステップS204では2番目と3番目の値の比較が行われる。これらは“52”と“51”であり、マイナス方向の変位である(N)。そこで、ステップS212(図3)に処理が進み、マイナス方向への変位カウンタのカウント値“dc”を“1”だけ増加して“1”とする。ステップS213では1座標前まではプラス方向に変位していたと判別されるので(Y)、ステップS214に進む。ステップS214では、プラス方向への変位カウンタのカウント値“ic”の値“1”がプラス方向の最大値“mic”としての値“0”よりも大きいので、プラス方向への変位回数が最大であると判断される(Y)。そこでステップS215でプラス方向の最大値“mic”を値“1”に更新し、次のステップS216でプラス方向への変位カウンタのカウント値“ic”を“0”にクリアする。
次に行われるステップS204の処理ではX座標について3番目と4番目の値が比較される。これらは“51”と“53”であり、プラス方向の変位である(Y)。そこで、ステップS205に処理が移り、プラス方向への変位カウンタのカウント値“ic”の値“0”が“1”に増加する。次のステップS206では1回前でマイナス方向に変位していたと判別されるので(Y)、ステップS207に進む。ステップS207では、マイナス方向への変位カウンタのカウント値“dc”の値“1”がマイナス方向の最大値“mdc”としての値“0”よりも大きいので、マイナス方向への変位回数が最大であると判断される(Y)。そこでステップS208でマイナス方向の最大値“mdc”を値“1”に更新し、次のステップS209でマイナス方向への変位カウンタのカウント値“dc”を“0”にクリアする。
次に行われるステップS204の処理ではX座標について4番目と5番目の値が比較される。これらは“53”と“49”であり、マイナス方向の変位である(N)。そこで、ステップS212に処理が進み、マイナス方向への変位カウンタのカウント値“dc”を“1”だけ増加して“1”とする。ステップS213では1座標前まではプラス方向に変位していたと判別されるので(Y)、ステップS214に進む。ステップS214では、プラス方向への変位カウンタのカウント値“ic”の値“1”がプラス方向の最大値“mic”としての値“1”よりも大きくない。そこでステップS216に進み、プラス方向への変位カウンタのカウント値“ic”を“0”にクリアする。
以上の処理が終了した後のステップS210ではX座標データの比較がすべて終了したと判別される(Y)。そこで図4のステップS223に処理が進む。ステップS223では、プラス方向への変位カウンタのカウント値“ic”とプラス方向の最大値“mic”としての値“1”とが比較される。カウント値“ic”は最大値“mic”よりも大きくないので(N)、ステップS225へ進む。ステップS225では、マイナス方向への変位カウンタのカウント値“dc”としての値“1”がマイナス方向の最大値“mdc”としての値“1”よりも大きいかの判別が行われる。大きくはないので(N)、ステップS227に進んで、プラス方向への変位カウンタのカウント値“ic”とマイナス方向への変位カウンタのカウント値“dc”を共に“0”にクリアする。
次にステップS228(図5)でY座標について同様の処理を行う。ここでは、X座標について示したステップ番号を「参考ステップ」番号として示すことにする。まず、第1のパターンにおけるY座標での1番目と2番目の値が比較される(参考ステップS204)。これらは“70”と“69”であり、マイナス方向の変位である。そこでマイナス方向への変位カウンタのカウント値“dc”を“1”だけ増加して“1”とする(参考ステップS212)。プラス方向への変位カウンタのカウント値“ic”は“0”のため、次の比較処理に進む。
Y座標での2番目と3番目の値が比較されると(参考ステップS204)、これらは“69”と“71”であり、プラス方向の変位であるのでプラス方向への変位カウンタのカウント値“ic”が“0”から“1”に増加される(参考ステップS205)。1回前はマイナス方向へ変位していたが(参考ステップS206:Y)、現在のマイナス方向への変位カウンタのカウント値“dc”の値“1”はマイナス方向の最大値“mdc”としての値“1”よりも大きくはない(参考ステップS207:N)。そこで最大値の更新は行われず、マイナス方向への変位カウンタのカウント値“dc”の値“1”を“0”にクリアする(参考ステップS209)。
次に、Y座標での3番目と4番目の値が比較されると(参考ステップS204)、これらは“71”と“67”であり、マイナス方向の変位である(参考ステップS211:Y)。そこでマイナス方向への変位カウンタのカウント値“dc”を値“0”から値“1”に増加する(参考ステップS212)。1座標前まではプラス方向に変位していたが(参考ステップS213:Y)、現在のプラス方向への変位カウンタのカウント値“ic”の値“1”はプラス方向の最大値“mic”としての値“1”よりも大きくはない(参考ステップS214:N)。そこでプラス方向の最大値“mic”は更新せず、プラス方向への変位カウンタのカウント値“ic”の値“1”を値“0”にクリアする。
次に、Y座標での4番目と5番目の値が比較される(参考ステップS204)。これらは“67”と“68”であり、プラス方向の変位であるのでプラス方向への変位カウンタのカウント値“ic”が“0”から“1”に増加される(参考ステップS205)。1回前はマイナス方向へ変位していたが(参考ステップS206:Y)、現在のマイナス方向への変位カウンタのカウント値“dc”の値“1”はマイナス方向の最大値“mdc”としての値“1”よりも大きくはない(参考ステップS207:N)。そこで最大値の更新は行われず、マイナス方向への変位カウンタのカウント値“dc”の値“1”を“0”にクリアする(参考ステップS209)。
以上の処理が終了した後、Y座標データの比較がすべて終了したと判別される(参考ステップS210:Y)。そこで図4の参考ステップS223に処理が進む。参考ステップS223では、プラス方向への変位カウンタのカウント値“ic”としての値“1”がプラス方向の最大値“mic”としての値“1”よりも大きいか否かが判別される。大きくはないので(N)、参考ステップS225に進む。参考ステップS225では、マイナス方向への変位カウンタのカウント値“dc”の値“0”はマイナス方向の最大値“mdc”としての値“1”よりも大きくはない(N)。そこでステップS229(図5)に処理が進むことになる。
ステップS229では、X座標およびY座標についての座標データの変位量(dx,dy)を求める。ここでX座標データのうちで最も新しい座標データxnと、前回の座標データxpとの差の絶対値dxは“2”であり、Y座標データのうちで最も新しい座標データynと前回の座標データypとの差の絶対値dyは“4”である。
次のステップS230では、プラス方向への変位回数の最大値“mic”としての値“1”と、マイナス方向への変位回数の最大値“mdc”としての値“1”と、X座標データの変位量“dx”としての値“2”と、Y座標データの変位量“dy”としての値“4”としきい値を比較する。同一方向への変位回数のしきい値は“2”であり、変位量のしきい値は“5”である。このため、ハードウェアの誤差であると判断され(Y)、入力座標は静止状態と見なされる。そこで判定手段117(図1)によって前回決定された前回の座標データ(xp,yp)を採用して(ステップS231)、一連の処理を終了する(エンド)。
次に第2のパターンについて考察する。第1のパターンの場合と同様に考えると、X座標についてはステップS204における1番目と2番目の比較と、2番目と3番目の比較、および3番目と4番目の比較について第1のパターンと同一である。4番目と5番目の値を比較すると、“53”と“54”であり、プラス方向の変位である(Y)。結果として2回連続してプラス方向の変位となり、プラス方向への変位カウンタのカウント値“ic”の値は“2”となる。このため、X座標についての処理が終了するステップS227の時点で、プラス方向への変位回数の最大値“mic”の値が“2”となり、マイナス方向への変位回数の最大値“mdc”の値が“1”となる。
一方、第2のパターンにおけるY座標については、1番目と2番目の比較と、2番目と3番目の比較が第1のパターンと同一となる。3番目と4番目の値を比較すると“71”と“74”であり、また、4番目と5番目の値を比較すると“74”と“78”で共にプラス方向の変位となる。この結果として3回連続してプラス方向の変位となって、プラス方向への変位カウンタのカウント値“ic”の値は“3”となる。参考ステップS223では、プラス方向の変位カウンタのカウント値“ic”の値“3”がプラス方向への変位回数の最大値“mic”の値“2”を超える(Y)。このため、次の参考ステップS224でプラス方向への変位回数の最大値“mic”の値が“3”に更新される。
参考ステップS225では、マイナス方向への変位カウンタのカウント値“dc”の値“0”がマイナス方向の最大値“mdc”としての値“1”よりも大きくない(N)。したがって、マイナス方向の最大値“mdc”は更新されない。
ステップS229では、X座標およびY座標についての座標データの変位量(dx,dy)を求める。ここでX座標データのうちで最も新しい座標データxnと、前回の座標データxpとの差の絶対値dxは“3”であり、Y座標データのうちで最も新しい座標データynと前回の座標データypとの差の絶対値dyは“6”である。
次のステップS230では、プラス方向への変位回数の最大値“mic”としての値“3”と、マイナス方向への変位回数の最大値“mdc”としての値“1”と、X座標データの変位量“dx”としての値“3”と、Y座標データの変位量“dy”としての値“6”としきい値を比較する。同一方向への変位回数のしきい値は“2”であり、変位量のしきい値は“5”である。このため、プラス方向への変位回数の最大値“mic”としての値“3”がしきい値“2”よりも大きくなり、またY座標データの変位量“dy”としての値“6”がしきい値“5”よりも大きくなる(N)。この結果、この場合には入力による変位であると判断される。
そこでステップS232に進み、最新の3点以上の座標データの変位方向が調べられる。ここでは最新の3点の座標データを調べる場合を例にとって説明する。X座標については次のような大小関係となる。
“51”<“53”<“54”
また、Y座標については次のような大小関係となる。
“71”<“74”<“78”
したがって、同方向への変位と判断される(N)。そこで、ステップS235に進んで、平均個数格納手段111(図1)から平均個数aを入手する。この平均個数をここでは“5”とする。移動平均法から平均座標データを求めると、(xn′、yn′)は(52、72)となる。この座標を今回決定した新しい座標データ(52、72)として採用し、ステップS234に進む。ステップS234では、新しい座標データ(52、72)を前回の座標データ(xp,yp)として格納して、一連の処理を終了させる(エンド)。
最後に第3のパターンについて考察する。第1のパターンおよび第2のパターンの場合と同様に考えると、X座標については第2のパターンと同様であり、その処理が終了したステップS227の時点で、プラス方向への変位回数の最大値“mic”の値が“2”となり、マイナス方向への変位回数の最大値“mdc”の値が“1”となる。
一方、Y座標については1番目から4番目までの比較で3連続でプラス方向の変位となる。この結果、Y座標の処理が終了したステップS227の時点で、プラス方向への変位回数の最大値“mic”の値が“3”となり、マイナス方向への変位回数の最大値“mdc”の値が“1”となる。X座標とY座標の結果を合わせると、プラス方向への変位回数の最大値“mic”の値が“3”となり、マイナス方向への変位回数の最大値“mdc”の値が“1”となる。
ステップS229では、X座標およびY座標についての座標データの変位量(dx,dy)を求める。ここでX座標データのうちで最も新しい座標データxnと、前回の座標データxpとの差の絶対値dxは“3”であり、Y座標データのうちで最も新しい座標データynと前回の座標データypとの差の絶対値dyは“7”である。
次のステップS230ではしきい値よりも大きくなるので(N)、入力による変位であると判別され、ステップS232に進む。ステップS232では最新の3点の場合を例にして説明する。X座標については第2のパターンと同様に次に示す大小関係となり同方向である。
“51”<“53”<“54”
Y座標については次に示す大小関係となる。
“71”<“74”、“74”>“65”
このためY座標については反対方向への変位と判断される。このためステップS233に進む。
ステップS233では、平均個数格納手段111(図1)から平均個数bを入手する。この平均個数をここでは“2”とする。移動平均法から平均座標データを求めると、(xn′、yn′)は(54、70)となる。この座標を今回決定した新しい座標データ(54、70)として採用し、ステップS234に進む。ステップS234では、新しい座標データ(54、70)を前回の座標データ(xp,yp)として格納して、一連の処理を終了させる(エンド)。
なお、以上説明した実施例1では時系列的に同方向に変位していないときには、各座標データの平均値をとって今回の座標を確定させたが、これに限るものではない。たとえば、このような場合には、座標検出手段が今回検出した座標データをそのまま使用して今回の座標として確定させても、多くの座標データを用いて平均をとる場合よりも一般的に誤差を縮小することができる。
本発明の実施の形態における座標データ入力誤差吸収装置の構成を表わしたブロック図である。
実施の形態における座標データ入力誤差吸収装置のX座標データの処理の最初の部分を表わした流れ図である。
実施の形態における座標データ入力誤差吸収装置のX座標データの処理の図2に続く部分を表わした流れ図である。
実施の形態における座標データ入力誤差吸収装置のX座標データの処理の図2および図3に続く部分を表わした流れ図である。
実施の形態における座標データ入力誤差吸収装置の図2〜図4に続くY座標データの処理およびその後の処理の流れを表わした流れ図である。
従来の提案で、生データと6点平均をとった後のデータおよび2点平均をとった後のデータをグラフ化したものと元の数値データを示した説明図である。
符号の説明
101 座標データ入力誤差吸収装置
102 コンピュータ部
103 表示画面部
104 タッチパネル
106 座標検出手段
108 座標データ格納手段
109 判定用パラメータ格納手段
111 平均個数格納手段
112 判定用パラメータ設定手段
117 判定手段
118 移動平均法計算手段
119 座標表示手段