JP2004086256A - Device, method and program for recognizing handwritten character - Google Patents
Device, method and program for recognizing handwritten character Download PDFInfo
- Publication number
- JP2004086256A JP2004086256A JP2002242551A JP2002242551A JP2004086256A JP 2004086256 A JP2004086256 A JP 2004086256A JP 2002242551 A JP2002242551 A JP 2002242551A JP 2002242551 A JP2002242551 A JP 2002242551A JP 2004086256 A JP2004086256 A JP 2004086256A
- Authority
- JP
- Japan
- Prior art keywords
- value
- line width
- storage device
- character recognition
- handwritten character
- 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.)
- Granted
Links
Images
Landscapes
- Character Input (AREA)
- Character Discrimination (AREA)
Abstract
Description
【0001】
【発明の属する技術分野】
本発明は、手書き文字認識装置、手書き文字認識方法及び手書き文字認識プログラムに係り、特に複数のストロークデータで表された手書き文字列から生成された所定幅の線の手書き文字画像の文字認識を行う手書き文字認識装置、手書き文字認識方法及び手書き文字認識プログラムに関する。
【0002】
【従来の技術】
手書き文字の認識を行うことが従来より行われている。例えば、「特開平9―2682203号公報」では、手書き文字画像から特徴量を求めた後に、神経回路網を用いて識別を行う文字認識方法について述べられている。文字認識の実行時に文字認識の確からしさ(確信度)が低い場合、認識パラメータを変更して再度文字認識を行うことにより確信度が高くなるような、つまり精度の高い文字認識が可能な構成となっている。
【0003】
手書き入力装置を用いた従来の文字認識の処理方法を以下に示す。図1は、ビットマップデータ読み取り方式による従来の文字認識装置10の構成である。従来装置(その1)は、文字認識装置10と、手書き入力装置11とから構成され、文字認識装置10は、通信部12と、画像作成部13と、文字認識部14と、蓄積部15とから構成される。
【0004】
手書き入力装置11は、加筆箇所の座標情報を(x、y)を取得する装置であり、作業者の加筆と同時に加筆箇所の座標情報を取得する。
【0005】
通信部12は、手書き入力装置11から座標情報(x、y)を受信する。画像作成部13は、加筆情報として前記通信部12から取り出す座標情報(X、Y)を基に所定の線幅の文字の文字画像を作成する。文字認識部14は、前記画像作成部13が作成した文字画像中の文字を認識する。蓄積部15は、前記文字認識部14が認識した文字の認識結果を蓄積する。
【0006】
図2は、時系列座標データ読み取り方式による従来の文字認識装置20の構成である。従来装置(その2)は、文字認識装置20と、手書き入力装置21とから構成され、文字認識装置20は、通信部22と、文字認識部23と、蓄積部24とから構成される。
【0007】
手書き入力装置21は、一文字入力を行う領域を有する手書き入力装置であって、加筆箇所の座標情報(x、y)を取得して、作業者の加筆と同時に加筆箇所の座標情報を取得する。
【0008】
通信部22は、前記手書き入力装置21から座標情報(x、y)を受信する。文字認識部23は、一文字に相当する座標情報列から文字を認識する。この際、座標情報列は時系列情報も有するので、筆順の情報を文字認識に利用できる。蓄積部24は、前記文字認識部23が認識した文字認識の結果を蓄積する。
【0009】
【発明が解決しようとする課題】
しかしながら、前記「特開平9―2682203号公報」に記載された発明では、文字画像に最適な文字認識パラメータを設定することにより、精度の高い文字認識を行うことを目的としており、処理対象の基となる文字画像の品質が悪ければ、おのずとその認識率には限界がある。
【0010】
また、前記図1に示した手書き入力装置を用いた従来の方式においては、所定の線幅で文字画像を構成している。この線幅が文字の大きさと比較して細ければ図3(a)のように「加」という1文字が、「カロ」という2文字に分離されて認識されてしまうと言う問題がある。この問題を解決するためには、図3(b)に示すように、太線で文字画像を作成することにより、「加」として文字が認識される。
【0011】
ところで、線幅が文字の大きさと比較して太すぎると、隣接する線とつながってしまい、文字が潰れることがある。
【0012】
図4は、手書きした座標データを基に文字画像を作成して文字認識させる一例を「東」を用いて説明するための図である。図4(a)は、細線で文字画像を作成して文字認識させた場合を表しており、図4(b)は、太線で文字画像を作成して文字認識させた場合を表している。図4(b)に示すように線幅を文字と比較して太くすれば隣接する線とつながって「東」という文字が「束」と認識される場合がある。
【0013】
従って、従来の方法では、「加東」という文字列が線幅によって「カロ東」や「加束」という字に誤認識されてしまうことがある。
【0014】
更には、前記図2に示した手書き入力装置を用いた従来の方式においては、筆記者の筆順が間違っている場合には認識精度が低下する。
【0015】
本発明は、上記の点に鑑みなされたもので、より精度の高い文字認識を行うことを目的とする。
【0016】
【課題を解決するための手段】
そこで、上記問題を解決するため、請求項1記載の発明は、複数のストロークデータで表された手書き文字列から生成された所定幅の線の手書き文字画像の文字認識を行う手書き文字認識装置において、前記所定幅を当該ストロークデータの方向に基づいて変更する線幅変更手段を有することを特徴とする。
【0017】
また、請求項2記載の発明は、前記線幅変更手段は、前記所定幅を細くする細線化手段を有することを特徴とする。
【0018】
また、請求項3記載の発明は、前記所定幅を規定する値を記憶する第一記憶装置と、所定の値を記憶する第二記憶装置とを更に有し、前記細線化手段は、前記第一記憶装置に記憶されている値から前記第二記憶装置に記憶されている値を減算し、その減算した値に基づいて線幅を決定することを特徴とする。
【0019】
また、請求項4記載の発明は、前記第一記憶装置に記憶されている値が所定の値より小さいかどうかを判定する第一判定器を更に有し、前記第一記憶装置に記憶されている値が、前記第一判定器の判定により、前記所定の値より小さいと判定された場合は、前記細線化手段は、前記第一記憶装置に記憶されている値から前記第二記憶装置に記憶されている値を減算しないことを特徴とする。
【0020】
また、請求項5記載の発明は、前記所定幅を規定する値を記憶する第一記憶装置と、1未満の所定の値を記憶する第三記憶装置とを更に有し、前記細線化手段は、前記第一記憶装置に記憶されている値に前記第三装置に記憶されている値を乗算し、その乗算した値に基づいて線幅を決定することを特徴とする。
【0021】
また、請求項6記載の発明は、前記第一記憶装置に記憶されている値が所定の値より小さいかどうかを判定する第一判定器を更に有し、前記第一記憶装置に記憶されている値が、前記第一判定器の判定により、前記所定の値より小さいと判定された場合は、前記細線化手段は、前記第一記憶装置に記憶されている値に前記第三記憶装置に記憶されている値を乗算しないことを特徴とする。
【0022】
また、請求項7記載の発明は、前記線幅変更手段は、前記所定幅を太くする太線化手段を有することを特徴とする。
【0023】
また、請求項8記載の発明は、前記所定幅を規定する値を記憶する第一記憶装置と、所定の値を記憶する第四記憶装置とを更に有し、前記太線化手段は、前記第一記憶装置に記憶されている値に前記第四記憶装置に記憶されている値を加算し、その加算した値に基づいて線幅を決定することを特徴とする。
【0024】
また、請求項9記載の発明は、前記第一記憶装置に記憶されている値が所定の値より大きいかどうかを判定する第二判定器を更に有し、前記第一記憶装置に記憶されている値が、前記第二判定器の判定により、前記所定の値より大きいと判定された場合は、前記太線化手段は、前記第一記憶装置に記憶されている値に前記第四記憶装置に記憶されている値を加算しないことを特徴とする。
【0025】
また、請求項10記載の発明は、前記所定幅を規定する値を記憶する第一記憶装置と、1を超える所定の値を記憶する第五記憶装置とを更に有し、前記太線化手段は、前記第一記憶装置に記憶されている値に前記第五記憶装置に記憶されている値を乗算し、その乗算した値に基づいて線幅を決定することを特徴とする。
【0026】
また、請求項11記載の発明は、前記第一記憶装置に記憶されている値が所定の値より大きいかどうかを判定する第二判定器を更に有し、前記第一記憶装置に記憶されている値が、前記第二判定器の判定により、前記所定の値より大きいと判定された場合は、前記太線化手段は、前記第一記憶装置に記憶されている値に前記第五記憶装置に記憶されている値を乗算しないことを特徴とする。
【0027】
また、請求項12記載の発明は、前記線幅変更手段は、前記所定幅を細くする細線化手段と、前記所定幅を太くする太線化手段とを有することを特徴とする。
【0028】
また、請求項13記載の発明は、複数のストロークデータで表された手書き文字列から生成された所定幅の線の手書き文字画像の文字認識を行う手書き文字認識装置において、前記所定幅を隣接するストロークデータの位置関係に基づいて変更する線幅変更手段を有することを特徴とする。
【0029】
また、請求項14記載の発明は、前記線幅変更手段は、当該ストロークデータから生成された線幅を規定する値及び記憶装置に記憶されている所定の線幅を規定する値のうちどちらか一方、小さい方の値を選択して線幅を決定することを特徴とする。
【0030】
また、請求項15記載の発明は、前記ストロークデータから生成された線幅は、当該ストロークデータと隣接するストロークデータとの距離の2分の1未満であることを特徴とする。
【0031】
また、請求項16記載の発明は、当該ストロークデータと隣接するストロークデータとの距離と角度を算出する距離・角度算出手段を更に有し、該距離・角度算出手段により算出された距離に基づいて、前記ストロークデータから生成された線幅を決めることを特徴とする。
【0032】
また、請求項17記載の発明は、複数のストロークデータで表された手書き文字列から生成された所定幅の線の手書き文字画像の文字認識を行う手書き文字認識方法において、前記所定幅を当該ストロークデータの方向に基づいて変更する線幅変更段階を有することを特徴とする。
【0033】
また、請求項18記載の発明は、複数のストロークデータで表された手書き文字列から生成された所定幅の線の手書き文字画像の文字認識を行う手書き文字認識方法において、前記所定幅を隣接するストロークデータの位置関係に基づいて変更する線幅変更段階を有することを特徴とする。
【0034】
また、請求項19記載の発明は、複数のストロークデータで表された手書き文字列から生成された所定幅の線の手書き文字画像の文字認識を行う手書き文字認識プログラムにおいて、前記所定幅を当該ストロークデータの方向に基づいて変更する線幅変更手順をコンピュータに実行させることを特徴とする。
【0035】
また、請求項20記載の発明は、複数のストロークデータで表された手書き文字列から生成された所定幅の線の手書き文字画像の文字認識を行う手書き文字認識プログラムにおいて、前記所定幅を隣接するストロークデータの位置関係に基づいて変更する線幅変更手順をコンピュータに実行させることを特徴とする。
【0036】
請求項1記載の発明によれば、複数のストロークデータで表された手書き文字列から生成された所定幅の線の手書き文字画像の文字認識を行う手書き文字認識装置において、前記所定幅を当該ストロークデータの方向に基づいて変更する線幅変更手段を有することによって、より精度の高い文字認識を行うことができる。
【0037】
請求項2記載の発明によれば、前記線幅変更手段は、前記所定幅を細くする細線化手段を有することによって、漢字等のある範囲内のデータが多い文字においても、より精度の高い文字認識を行うことができる。
【0038】
請求項3記載の発明によれば、前記所定幅を規定する値を記憶する第一記憶装置と、所定の値を記憶する第二記憶装置とを更に有し、前記細線化手段は、前記第一記憶装置に記憶されている値から前記第二記憶装置に記憶されている値を減算し、その減算した値に基づいて線幅を決定することによって、簡単な構成で線幅を細くすることができる。
【0039】
請求項4記載の発明によれば、前記第一記憶装置に記憶されている値が所定の値より小さいかどうかを判定する第一判定器を更に有し、前記第一記憶装置に記憶されている値が、前記第一判定器の判定により、前記所定の値より小さいと判定された場合は、前記細線化手段は、前記第一記憶装置に記憶されている値から前記第二記憶装置に記憶されている値を減算しないことによって、第一記憶装置に記憶されている値が所定の値より小さければ、それ以上線幅を細くすることを防ぐことができる。
【0040】
請求項5記載の発明によれば、前記所定幅を規定する値を記憶する第一記憶装置と、1未満の所定の値を記憶する第三記憶装置とを更に有し、前記細線化手段は、前記第一記憶装置に記憶されている値に前記第三装置に記憶されている値を乗算し、その乗算した値に基づいて線幅を決定することによっ7、簡単な構成で線幅を細くすることができる。
【0041】
請求項6記載の発明によれば、前記第一記憶装置に記憶されている値が所定の値より小さいかどうかを判定する第一判定器を更に有し、前記第一記憶装置に記憶されている値が、前記第一判定器の判定により、前記所定の値より小さいと判定された場合は、前記細線化手段は、前記第一記憶装置に記憶されている値に前記第三記憶装置に記憶されている値を乗算しないことによって、第一記憶装置に記憶されている値が所定の値より小さければ、それ以上線幅を細くすることを防ぐことができる。
【0042】
請求項7記載の発明によれば、前記線幅変更手段は、前記所定幅を太くする太線化手段を有することによって、文字の偏とつくりを分離して文字認識をしないようになり、より精度の高い文字認識を行うことができる。
【0043】
請求項8記載の発明によれば、前記所定幅を規定する値を記憶する第一記憶装置と、所定の値を記憶する第四記憶装置とを更に有し、前記太線化手段は、前記第一記憶装置に記憶されている値に前記第四記憶装置に記憶されている値を加算し、その加算した値に基づいて線幅を決定することによって、簡単な構成で線幅を太くすることができる。
【0044】
請求項9記載の発明によれば、前記第一記憶装置に記憶されている値が所定の値より大きいかどうかを判定する第二判定器を更に有し、前記第一記憶装置に記憶されている値が、前記第二判定器の判定により、前記所定の値より大きいと判定された場合は、前記太線化手段は、前記第一記憶装置に記憶されている値に前記第四記憶装置に記憶されている値を加算しないことにより、第一記憶装置に記憶されている値が所定の値より大きければ、それ以上線幅を太くすることを防ぐことができる。
【0045】
請求項10記載の発明によれば、前記所定幅を規定する値を記憶する第一記憶装置と、1を超える所定の値を記憶する第五記憶装置とを更に有し、前記太線化手段は、前記第一記憶装置に記憶されている値に前記第五記憶装置に記憶されている値を乗算し、その乗算した値に基づいて線幅を決定することによって、簡単な構成で線幅を太くすることができる。
【0046】
請求項11記載の発明によれば、前記第一記憶装置に記憶されている値が所定の値より大きいかどうかを判定する第二判定器を更に有し、
前記第一記憶装置に記憶されている値が、前記第二判定器の判定により、前記所定の値より大きいと判定された場合は、前記太線化手段は、前記第一記憶装置に記憶されている値に前記第五記憶装置に記憶されている値を乗算しないことにより、第一記憶装置に記憶されている値が所定の値より大きければ、それ以上線幅を太くすることを防ぐことができる。
【0047】
請求項12記載の発明によれば、前記線幅変更手段は、前記所定幅を細くする細線化手段と、前記所定幅を太くする太線化手段とを有することによって、ストロークデータの方向に基づいて、線幅を細くしたり太くしたりすることができる。
【0048】
請求項13記載の発明によれば、複数のストロークデータで表された手書き文字列から生成された所定幅の線の手書き文字画像の文字認識を行う手書き文字認識装置において、前記所定幅を隣接するストロークデータの位置関係に基づいて変更する線幅変更手段を有することによって、文字認識率を向上することができる。
【0049】
請求項14記載の発明によれば、前記線幅変更手段は、当該ストロークデータから生成された線幅を規定する値及び記憶装置に記憶されている所定の線幅を規定する値のうちどちらか一方、小さい方の値を選択して線幅を決定することによって、より最適な線幅で文字画像を生成をすることができる。
【0050】
請求項15記載の発明によれば、前記ストロークデータから生成された線幅は、当該ストロークデータと隣接するストロークデータとの距離の2分の1未満であることによって、隣接するストロークと接触しない線幅を得ることができる。
【0051】
請求項16記載の発明によれば、当該ストロークデータと隣接するストロークデータとの距離と角度を算出する距離・角度算出手段を更に有し、該距離・角度算出手段により算出された距離に基づいて、前記ストロークデータから生成された線幅を決めることによって、位置関係に応じた最適な線幅を得ることができる。
【0052】
請求項17記載の発明によれば、複数のストロークデータで表された手書き文字列から生成された所定幅の線の手書き文字画像の文字認識を行う手書き文字認識方法において、前記所定幅を当該ストロークデータの方向に基づいて変更する線幅変更段階を有することによって、品質の良い文字画像を作製して、より精度の高い文字認識を行う文字認識方法を提供することができる。
【0053】
請求項18記載の発明によれば、複数のストロークデータで表された手書き文字列から生成された所定幅の線の手書き文字画像の文字認識を行う手書き文字認識方法において、前記所定幅を隣接するストロークデータの位置関係に基づいて変更する線幅変更段階を有することによって、品質の良い文字画像を作製して、より精度の高い文字認識を行う文字認識方法を提供することができる。
【0054】
請求項19記載の発明によれば、複数のストロークデータで表された手書き文字列から生成された所定幅の線の手書き文字画像の文字認識を行う手書き文字認識プログラムにおいて、前記所定幅を当該ストロークデータの方向に基づいて変更する線幅変更手順をコンピュータに実行させることによって、品質の良い文字画像を作製して、より精度の高い文字認識を行う文字認識プログラムを提供することができる。
【0055】
請求項20記載の発明によれば、複数のストロークデータで表された手書き文字列から生成された所定幅の線の手書き文字画像の文字認識を行う手書き文字認識プログラムにおいて、前記所定幅を隣接するストロークデータの位置関係に基づいて変更する線幅変更手順をコンピュータに実行させることによって、品質の良い文字画像を作製して、より精度の高い文字認識を行う文字認識プログラムを提供することができる。
【0056】
【発明の実施の形態】
(文字認識装置)
以下、本発明の実施の形態について図面に基づいて説明する。図5に本発明による文字認識装置30の一例を示す。図5の構成図では、説明に必要な構成を表し、説明に必要の無い構成を省略してある。以下の図においても同様である。
【0057】
文字認識装置30は、画像作成器31と、文字認識器34と、蓄積器35とから構成される。また、画像作成器31は、画像生成器32と、線幅変更器33とから構成される。
【0058】
文字認識装置30は、画像作成器31を用いて入力されたストロークデータから画像を作成する。全てのストロークデータに対して画像作成の処理を行うと、文字認識装置30は、文字認識器34を用いて、上記作成した画像の文字認識を行い、認識結果を蓄積部35に蓄積する。
【0059】
画像生成器32の詳細は、図7及び図16を用いて後述する。
【0060】
また、文字認識装置30の入力データとしてのストロークデータは、電磁誘導方式、超音波方式、静電方式等の2次元の手書き入力装置で得られるデータである。
【0061】
(ストロークデータのフォーマット)
図6は、ストロークデータのフォーマットである。ストロークデータは、座標の順序を表すシーケンスと、X座標と、Y座標と、座標を取得した時間を表すタイムスタンプと、筆記中であるか否かを表すペンアップ/ダウン(ペンダウンが筆記中)との5つから構成される。これが一座標を表すデータブロックであり、このデータブロックの集合がストロークデータである。
【0062】
図5における、画像作成器31は、入力された前記ストロークデータを用いてストローク画像を構成する。前記ストローク画像は、文字認識器34に入力され、文字認識器34は文字認識を行い、認識結果は蓄積器35に蓄積される。なお、文字認識は例えば「特開平10―171927号公報」に記載されている装置を利用することができる。
【0063】
(画像生成器(その1))
図7に図5の画像生成器32の構成を説明するための図(その1)を示す。図7は、図5の画像生成器32の一例である。画像生成器32は、領域判定器41と、バッファ42と、アドレス生成器43と、画像メモリ44と、レジスタ45とから構成されている。
【0064】
領域判定器41は、前記ストロークデータのX座標、Y座標それぞれの最大値及び最小値を検出し、文字が筆記されている矩形領域を検出する。検出した矩形領域の座標はレジスタ45へ転送され、文字認識器34で文字認識を行う際に利用される。
【0065】
バッファ42は、一座標を示すデータを一時的に記憶する遅延バッファである。領域判定器41から転送されてきた前記ストロークデータと、バッファ42で遅延されたストロークデータは、線幅変更器33に入力される。
【0066】
線幅変更器33は、入力された二つの座標((x1、y1)、(x2、y2))を基に、前記二つの座標を結ぶ直線の方向を算出し、その方向に基づいて前記二つの座標を結ぶ直線の線幅を変更する。なお、線幅変更器33の詳細は、図8を用いて後述する。
【0067】
アドレス生成器43は、線幅変更器33により指定された線幅と、領域判定器41から転送されたストロークデータと、バッファ42で遅延されたストロークデータとから、前記二つの座標((x1、y1)、(x2、y2))を結ぶ直線を描く座標を計算し、それに応じたアドレスを生成して画像メモリ44に書き込む。なお、アドレス生成器43の詳細は、図14を用いて後述する。
【0068】
画像メモリ44へのストロークデータの書き込みが終了すると、文字認識器34が動作を開始し、レジスタ45に格納されているストロークの存在する利用域情報を読み出して、文字認識に必要なデータを画像メモリ44から読み出して文字認識を行う。
【0069】
画像生成器32の動作を以下に説明する。画像生成器32は、領域判定器41を用いて、入力されたストロークデータのX座標、Y座標それぞれの最大値及び最小値を検出し、文字が筆記されている矩形領域を検出する。また、領域判定器41は、検出した矩形領域の座標をレジスタ45に転送する。転送された矩形領域の座標は、文字認識器34で文字認識を行う際に利用される。
【0070】
バッファ42は、一座標を示すデータを一時的に記憶し、データを遅延させる。画像生成器32入力されたストロークデータと、バッファ42で遅延されたストロークデータとを、線幅変更器33に入力する。線幅変更器33は、入力された二つの座標((x1、y1)、(x2、y2))を基に、前記二つの座標を結ぶ直線の方向を算出し、その方向に基づいて前記二つの座標を結ぶ直線の線幅を変更する。
【0071】
アドレス生成器43は、変更した線幅の値と、ストロークデータとから、画像メモリ44に書き込むためのアドレスを生成して、画像メモリ44に書き込む。
【0072】
画像メモリ44へのストロークデータの書き込みが終了すると、文字認識器34が動作を開始し、レジスタ45に格納されているストロークの存在する利用域情報を読み出して、文字認識に必要なデータを画像メモリ44から読み出して文字認識を行う。
【0073】
(線幅変更器)
図8に図7の線幅変更器33の構成を説明するための図を示す。線幅変更器33は、方向判定器51と、線幅演算器52と、レジスタ53とから構成される。なお、二つのストロークデータの構成要素である座標データをそれぞれ座標1、座標2とする。
【0074】
方向判定器51は、前記座標1、2を用いて座標1、2を結ぶ直線の方向を算出する。線幅演算器52は、方向判定器51が算出した方向に基づいて、座標1、2を結ぶ直線の線幅を演算する。レジスタ53には。線幅の初期値が設定されており、その値を増減させることにより線幅の変更を実現する。変更された線幅はアドレス生成器43へ入力される。なお、方向判定器51の詳細は、図9を用いて後述する。また、線幅演算器52の詳細は、図10、図11、図12、図13を用いて後述する。
【0075】
線幅変更器33の動作例を以下に示す。線幅変更器33は、方向判定器51を用いて、入力された座標1と座標2と結ぶ直線の方向を算出する。方向の算出が終了すると線幅変更器33は、線幅演算器52を用いて前記算出した方向に基づいてレジスタ53に設定されている線幅の初期値を増減させることにより変更する。
【0076】
(方向判定器)
図9に図8の方向判定器51の詳細な説明をするための図を示す。図9(a)は、方向判定器51の構成を説明するための図である。図9(b)は、角度算出器の角度算出方法の式である。図9(c)は、角度変換表テーブルである。
【0077】
方向判定器51は、角度算出器61と、角度変換器62とから構成されている。角度算出器61は、座標1(x1、y1)と、座標2(x2、y2)とが入力され、図9(b)に示される角度算出方法の式を用いて座標1(x1、y1)と座標2(x2、y2)とを結ぶ直線の角度θを算出する。
【0078】
角度変換器62は、角度算出器61で算出された角度θを、傾きの度合いを表す0〜3の値(傾き度合いθt)に変換する。角度θから傾き度合いθtへの変換は図9(c)のテーブルを実現する回路(図示せず)によって実行される。
【0079】
図9の動作例を以下に示す。方向判定器51は、入力された座標1(x1、y1)と座標2(x2、y2)とを結ぶ直線の角度θを角度算出器61を用いて、算出する。算出された角度θは、角度変換器62によって、傾き度合いθt(0〜3)に変更され、方向判定器51の出力となる。
【0080】
例えば、座標1(x1、y1)と座標2(x2、y2)とを結ぶ直線の角度が0度であったならば、角度変換器62は、図9(c)の角度変換表テーブルに基づいて、角度0度を傾き度合い2に変換して、方向判定器の出力とする。同様に、座標1(x1、y1)と座標2(x2、y2)とを結ぶ直線の角度が60度ならば、方向判定器の出力は1となり、座標1(x1、y1)と座標2(x2、y2)とを結ぶ直線の角度が90度ならば、方向判定器の出力は0となる。
【0081】
(線幅演算器52(その1))
図10に、図8の線幅演算器52の構成を説明するための図(その1)を示す。図10(a)は、図8の線幅演算器52の一例である。図10(b)は、傾き度合いθtと前記選択した線幅との関係を説明するための図である。
【0082】
図10(a)の線幅演算器52は、レジスタ71と、レジスタ72と、加算器73と、減算器74と、セレクタ75とから構成される。
【0083】
線幅演算器52には、図8のレジスタ53より、所定の線幅が初期値として入力される。
【0084】
加算器73は、図8のレジスタ53より取得した線幅の初期値に、レジスタ71より取得した値を加算して、セレクタ75へ入力する。
【0085】
減算器74は、図8のレジスタ53より取得した線幅の初期値からレジスタ72より取得した値を減算して、セレクタ75へ入力する。
【0086】
セレクタ75には、図8のレジスタ53より入力された線幅の初期値と、加算器73によって加算された線幅の値と、減算器74によって減算された線幅の値とが入力される。また、セレクタ75には、図8の方向判定器51によって判定された前記傾き度合いθtの値が入力される。
【0087】
セレクタ75は、入力された前記傾き度合いθtの値を基に、入力された前記3つの線幅の値(初期値と、加算された線幅の値と、減算された線幅の値)の中から1つの線幅を選択して、アドレス生成器43へ出力する。傾き度合いθtと選択する線幅との関係を以下、図10(b)を用いて説明する。
【0088】
図10(b)は、傾き度合いθtと前記選択した線幅との関係を説明するための図である。セレクタ75は、ストロークが水平(θt=2)に近ければ、減算した線幅(増減なしも含む)を選択する。ストロークが垂直(θt=0)に近ければ、加算した線幅(増減なしも含む)を選択する。上記以外の角度では、線幅の加算、減算を行っていない線幅を選択する。
【0089】
例えば、前記図10のセレクタ75は、θt=2ならば、減算器74からの入力値を選択して、θt=0ならば、加算器73からの入力値を選択する。θtが上記以外の値ならば、レジスタ53からの入力値を選択する。
【0090】
以下に図10(a)の線幅演算器52の動作例を示す。ここで、一例として図8のレジスタ53に設定されてある線幅の値を10、レジスタ71に設定されている値を5、レジスタ72に設定されている値を5とする。
【0091】
線幅演算器52は、図8のレジスタ53に設定されている線幅の値10を取得して、加算器73を用いてレジスタ71に設定されている値5を、前記線幅の値10に加算して、値15をセレクタ73に入力する。また、線幅演算器52は、減算器74を用いてレジスタ72に設定されている値5を、前記線幅の値10から減算して、値5をセレクタ73に入力する。
【0092】
セレクタ75には、図8のレジスタ53に設定されている線幅の値10と、加算器73により加算された値15及び減算器74により減算された値5が入力される。
【0093】
セレクタ75は、図9の方向判定器51から取得した前記θtの値が0、つまり図8の例では、座標1(x1、y1)と座標2(x2、y2)とを結ぶ直線の角度が90度だったならば、加算器73により加算された値15を選択して、図8のアドレス生成器43に出力する。
【0094】
また、図9の方向判定器51から取得した前記θtの値が1、つまり図8の例では、座標1(x1、y1)と座標2(x2、y2)とを結ぶ直線の角度が60度だったならば、図8のレジスタ53に設定されている線幅の値10を選択して、図8のアドレス生成器43に出力する。
【0095】
また、図9の方向判定器51から取得した前記θtの値が2、つまり図8の例では、座標1(x1、y1)と座標2(x2、y2)とを結ぶ直線の角度が0度だったならば、減算器74により減算された値5を選択して、図8のアドレス生成器43に出力する。
【0096】
(線幅演算器(その2))
図11に、図8の線幅演算器52の構成を説明するための図(その2)を示す。図11は、図8の線幅演算器52のその他の実施例である。
【0097】
線幅演算器52は、レジスタ81と、レジスタ82と、加算器83と、減算器84と、セレクタ85と、比較器86と、比較器87と、セレクタ88と、セレクタ89とから構成されている。
【0098】
図11の線幅演算器52は、図10において説明した「線幅演算器(その1)」に比べて比較器86と、比較器87と、セレクタ88と、セレクタ89とが新たに設けられている。
【0099】
図11の線幅演算器52は、図8のレジスタ53に設定されてある線幅の初期値と、閾値1と、閾値2(閾値1<閾値2)とを比較して、初期値として図8のレジスタ53に設定されてある線幅が、初めからある値(閾値2)より太ければ、加算器83で初期値の線幅にレジスタ81に設定されてある値を加算せず、初期値の線幅を加算器83からの出力とする。また、初期値として図8のレジスタ53に設定されてある線幅が、初めからある値(閾値1)より細ければ、減算器84で初期値の線幅からレジスタ82に設定されてある値を減算せず、初期値の線幅を減算器84からの出力とする。
【0100】
比較器86は、レジスタ53より入力された線幅の初期値と閾値1とを比較して、比較した結果をセレクタ88及びセレクタ89に入力する。同様に比較器87は、レジスタ53より入力された線幅の初期値と閾値2(閾値1<閾値2)とを比較して、比較した結果をセレクタ88及びセレクタ89に入力する。
【0101】
セレクタ88は、前記入力された比較結果を基に線幅の初期値が閾値1と閾値2との間の値ならば、レジスタ81の値を選択して加算器83へ出力する。同様に、線幅の初期値が閾値1より小さい値ならば、レジスタ81の値を選択して加算器83へ出力する。一方、線幅の初期値が閾値2より大きい値ならば、0の値を選択して加算器83へ出力する。
【0102】
セレクタ89は、前記入力された比較結果を基に線幅の初期値が閾値1と閾値2との間の値ならば、レジスタ82の値を選択して減算器84へ出力する。同様に、線幅の初期値が閾値2より大きい値ならば、レジスタ82の値を選択して減算器84へ出力する。一方、線幅の初期値が閾値1より小さい値ならば、0の値を選択して減算器84へ出力する。
【0103】
加算器83、減算器84、セレクタ85はそれぞれ図10の加算器73、減算器74、セレクタ75と同等の機能を有する。
【0104】
よって、図11の線幅演算器52は、図8のレジスタ53に設定されてある線幅の初期値と、閾値1と、閾値2(閾値1<閾値2)とを比較して、初期値として図8のレジスタ53に設定されてある線幅の値が、初めからある値(閾値2)より太ければ、加算器83で初期値の線幅の値にレジスタ81に設定されてある値を加算せず、初期値の線幅の値を加算器83からの出力とする。
【0105】
また、初期値として図8のレジスタ53に設定されてある線幅の値が、初めからある値(閾値1)より細ければ、減算器84で初期値の線幅の値からレジスタ82に設定されてある値を減算せず、初期値の線幅の値を減算器84からの出力とする。
【0106】
初期値として図8のレジスタ53に設定されてある線幅の値が、適切な線幅の範囲(閾値1以上、閾値2未満)にあるならば、加算器83で初期値の線幅の値にレジスタ81の値を加算して加算器83からの出力とする。また、減算器84では初期値の線幅の値からレジスタ82の値を減算して減算器84からの出力とする。
【0107】
以下に図11の線幅演算器52の動作例を示す。一例として、閾値1の値を8、閾値2の値を12、レジスタ81に設定されている値を5、レジスタ82に設定されている値を5とする。
【0108】
図11の線幅演算器52は、図8のレジスタ53に設定されてある初期値の線幅の値を取得する、例えば一例をして、該取得した値が10の場合、線幅演算器52は、比較器86及び比較器87を用いて、前記初期値の線幅の値10と、閾値1の値8及び閾値2の値12と比較する。セレクタ88は、前記初期値の値10が閾値1の値8以上閾値2の値12未満である場合、レジスタ81に設定されてある値5を取得して、加算器83に出力する。また、セレクタ89は、前記初期値の値10が閾値1の値8以上閾値2の値12未満である場合、レジスタ82に設定されてある値5を取得して、減算器84に出力する。
【0109】
加算器83は、前記初期値の値10にセレクタ88より取得した値5を加算して、値15をセレクタ85に出力する。減算器84は、前記初期値の値10からセレクタ89より取得した値5を減算して、値5をセレクタ85に出力する。
【0110】
セレクタ85には、前記初期値の値10と、加算器83が出力した値15及び減算器84が出力した値5が入力される。セレクタ85は、図10のセレクタ75と同等の機能を有する。
【0111】
また、図8のレジスタ53に設定されてある初期値の線幅の値が5だった場合、線幅演算器52は、比較器86及び比較器87を用いて、前記初期値の線幅の値5と、閾値1の値8及び閾値2の値12と比較する。セレクタ88は、前記初期値の値5が閾値1の値8未満である場合、レジスタ81に設定されている値5を取得して、加算器83に出力する。一方、セレクタ89は、前記初期値の値5が閾値1の値8未満である場合、0を減算器84に出力する。
【0112】
加算器83は、前記初期値の値5にセレクタ88より取得した値5を加算して、値10をセレクタ85に出力する。減算器84は、前記初期値の値5からセレクタ89より取得した値0を減算して、値5をセレクタ85に出力する。
【0113】
セレクタ88には、前記初期値の値5と、加算器84が出力した値10及び減算器84が出力した値5が入力される。上記と同様セレクタ88は、図10のセレクタ75と同等の機能を有する。
【0114】
また、図8のレジスタ53に設定されている初期値の線幅の値が15だった場合、線幅演算器52は、比較器86及び比較器87を用いて、前記初期値の線幅の値15と、閾値1の値8及び閾値2の値12と比較する。セレクタ88は、前記初期値の値15が閾値2の値12より大きい場合、0の値を加算器83に出力する。一方、セレクタ89は、前記初期値の値15が閾値2の値12より大きい場合、レジスタ82に設定されている値5を取得して、減算器84に出力する。
【0115】
加算器83は、前記初期値の値15にセレクタ88より取得した値0を加算して、値15をセレクタ85に出力する。減算器84は、前記初期値の値15からセレクタ89より取得した値5を減算して、値10をセレクタ85に出力する。
【0116】
セレクタ85には、前記初期値の値15と、加算器83が出力した値15及び減算器84が出力した値10が入力される。上記と同様セレクタ85は、図10のセレクタ75と同等の機能を有する。
【0117】
(線幅演算器(その3))
図12に、図8の線幅演算器52の構成を説明するための図(その3)を示す。図12は、図8の線幅演算器52のその他の実施例である。線幅演算器52は、レジスタ91と、レジスタ92と、乗算器93と、乗算器94と、セレクタ95とから構成される。
【0118】
図12の線幅演算器52は、図10を用いて説明した「線幅演算器(その1)」に比べて、図10の加算器73及び減算器74が、乗算器93及び乗算器94に置き換わっている。
【0119】
線幅演算器52には、図8のレジスタ53より、所定の線幅が初期値として入力される。
【0120】
乗算器93は、図8のレジスタ53より取得した線幅の初期値に、レジスタ91より取得した1を超える値を乗算して得た値をセレクタ95へ入力する。乗算器93は、図10の加算器73と同様に線幅の値を増加させる機能を有する。
【0121】
乗算器94は、図8のレジスタ53より取得した線幅の初期値に、レジスタ92より取得した0より大きく1未満の値を乗算して得た値をセレクタ95へ入力する。乗算器94は、図10の減算器74と同様に線幅の値を減少させる機能を有する。
【0122】
セレクタ95は、図10のセレクタ75と同等の機能を有する。
【0123】
以下に図12の線幅演算器52の動作例を示す。ここで、一例として図8のレジスタ53に設定されてある線幅の値を10、レジスタ91に設定されている値を1.5、レジスタ92に設定されている値を0.5とする。
【0124】
線幅演算器52は、図8のレジスタ53に設定されている線幅の値10を取得して、乗算器93を用いてレジスタ91に設定されている値1.5を、前記線幅の値10に乗算して、値15をセレクタ95に入力する。また、線幅演算器52は、乗算器94を用いてレジスタ92に設定されている値0.5を、前記線幅の値10に乗算して、値5をセレクタ95に入力する。
【0125】
セレクタ95には、図8のレジスタ53に設定されている線幅の値10と、乗算器93により乗算された値15及び乗算器94により乗算された値5が入力される。セレクタ95は、図10のセレクタ75と同等の機能を有する。
【0126】
(線幅演算器(その4))
図13に、図8の線幅演算器52の構成を説明するための図(その4)を示す。図13は、図8の線幅演算器52のその他の実施例である。線幅演算器52は、レジスタ101と、レジスタ102と、乗算器103と、乗算器104と、セレクタ105と、比較器106と、比較器107と、セレクタ108と、セレクタ109とから構成されている。
【0127】
図13の線幅演算器52は、図11を用いて説明した「線幅演算器(その2)」に比べて、図11の加算器83及び減算器84が、乗算器103及び乗算器104に置き換わっている。
【0128】
図13の線幅演算器52は、図8のレジスタ53に設定されてある線幅の初期値と、閾値1と、閾値2(閾値1<閾値2)とを比較して、初期値として図8のレジスタ53に設定されてある線幅が、初めからある値(閾値2)より太ければ、乗算器103で初期値の線幅に1を乗算して、初期値の線幅を乗算器103からの出力とする。また、初期値として図8のレジスタ53に設定されてある線幅が、初めからある値(閾値1)より細ければ、乗算器104で初期値の線幅に1を乗算して、初期値の線幅を乗算器104からの出力とする。
【0129】
以下に図13の線幅演算器52の動作例を示す。一例として、閾値1の値を8、閾値2の値を12、レジスタ101に設定されている値を1.5、レジスタ102に設定されている値を0.5とする。
【0130】
図13の線幅演算器52は、図8のレジスタ53に設定されてある初期値の線幅の値を取得する、例えば一例をして、該取得した値が10だった場合、線幅演算器52は、比較器106及び比較器107を用いて、前記初期値の線幅の値10と、閾値1の値8及び閾値2の値12と比較する。セレクタ108は、前記初期値の値10が閾値1の値8以上閾値2の値12未満である場合、レジスタ101に設定されてある値1.5を取得して、乗算器103に出力する。また、セレクタ109は、前記初期値の値10が閾値1の値8以上閾値2の値12未満である場合、レジスタ102に設定されてある値0.5を取得して、乗算器104に出力する。
【0131】
乗算器103は、前記初期値の値10にセレクタ108より取得した値1.5を乗算して、値15をセレクタ105に出力する。乗算器104は、前記初期値の値10にセレクタ109より取得した値0.5を乗算して、値5をセレクタ105に出力する。
【0132】
セレクタ105には、前記初期値の値10と、乗算器103が出力した値15及び乗算器104が出力した値5が入力される。セレクタ105は、図10のセレクタ75と同等の機能を有する。
【0133】
また、図8のレジスタ53に設定されてある初期値の線幅の値が5だった場合、線幅演算器52は、比較器106及び比較器107を用いて、前記初期値の線幅の値5と、閾値1の値8及び閾値2の値12と比較する。セレクタ108は、前記初期値の値5が閾値1の値8未満である場合、レジスタ101に設定されている値1.5を取得して、乗算器103に出力する。一方、セレクタ109は、前記初期値の値5が閾値1の値8未満である場合、1を乗算器104に出力する。
【0134】
乗算器103は、前記初期値の値5にセレクタ108より取得した値1.5を乗算して、値7.5をセレクタ105に出力する。乗算器104は、前記初期値の値5からセレクタ109より取得した値1を乗算して、値5をセレクタ105に出力する。
【0135】
セレクタ105には、前記初期値の値5と、乗算器103が出力した値7.5及び乗算器104が出力した値5が入力される。上記と同様セレクタ105は、図10のセレクタ75と同等の機能を有する。
【0136】
また、図8のレジスタ53に設定されている初期値の線幅の値が15だった場合、線幅演算器52は、比較器106及び比較器107を用いて、前記初期値の線幅の値15と、閾値1の値8及び閾値2の値12と比較する。セレクタ108は、前記初期値の値15が閾値2の値12より大きい場合、1の値を乗算器103に出力する。一方、セレクタ109は、前記初期値の値15が閾値2の値12より大きい場合、レジスタ102に設定されている値0.5を取得して、乗算器104に出力する。
【0137】
乗算器103は、前記初期値の値15にセレクタ108より取得した値1を乗算して、値15をセレクタ105に出力する。乗算器104は、前記初期値の値15にセレクタ109より取得した値0.5を乗算して、値7.5をセレクタ105に出力する。
【0138】
セレクタ105には、前記初期値の値15と、乗算器103が出力した値15及び乗算器104が出力した値7.5が入力される。上記と同様セレクタ105は、図10のセレクタ75と同等の機能を有する。
【0139】
(アドレス生成器(その1))
図14に、図8のアドレス生成器43の構成を説明するための図を示す。アドレス生成器43は、ペンダウン判定器111と、ペンダウン判定器112と、AND回路113と、描画座標生成器114と、エンコーダ115とから構成される。
【0140】
アドレス生成器43には、座標1(始点)と、座標2(終点)と、線幅の値が入力される。ペンダウン判定器111は、座標1が筆記中のデータかどうかを判定する。同様にペンダウン判定器112は、座標2が筆記中のデータかどうかを判定する。例えば、図6に示した如く、ストロークデータにはペンアップ/ペンダウンの情報を現すデータが含まれているため、ペンダウン判定器111及びペンダウン判定器112は、筆記中のデータかどうかを判定することができる。
【0141】
エンコーダ115は、前記両座標が筆記中ならば、有効となり画像メモリ44へのデータの書き込みが可能となる。前記両座標が筆記中でないならば、無効となって画像メモリ44へのデータの書き込みはできなくなる。
【0142】
描画座標生成器114は、座標1、座標2、線幅の値を入力データとして、線を書くべき座標を計算する。
【0143】
(描画座標生成器)
図15は、図14の描画座標生成器114の動作例を説明するための図である。図15では、座標1と座標2との間を線幅の値3の直線で画像を描く場合を例にとって説明を行う。
【0144】
描画座標生成器114は、座標1(始点)と座標2(終点)とを直線で結び、通過する座標を算出する(図15における、点線で描かれた枠線)。前記算出された座標を中心として3×3画素の大きさの領域(図15における、網掛け部分)の座標を始点(座標1)から終点(座標2)までのすべての通過する座標(図15における、点線で描かれた枠線)に対して算出し、エンコーダ115へ出力する。
【0145】
図14のエンコーダ115は、入力された座標の値から書き込むべき画像メモリのアドレスを算出して、画像メモリへ値を書き込むためのアドレスをふる。
【0146】
(画像生成器(その2))
図16は、図5の画像生成器32の構成を説明するための図(その2)である。画像生成器32は、領域判定器41と、メモリ121と、アドレス生成器122と、画像メモリ44と、レジスタ45とから構成されている。ここで、図7の画像作成器32と同一部分には同一番号を付して説明を省略する。
【0147】
図7の画像作成器32は、ストロークデータの方向に基づいて画像を作成したが、図16の画像作成器32は、隣接するストロークデータとの位置関係に基づいて画像を作成する。図16の画像作成器32は、線幅の値の変更を、アドレス作成器122で行っている。
【0148】
メモリ121には、画像生成器32に入力される全てのストロークデータが一旦記憶される。また、必要に応じてアドレス生成器122から、メモリ121に記憶されているストロークデータが読み出される。
【0149】
アドレス生成器122は、メモリ121に記憶されているストロークデータを読み出して、複数のストロークデータの相対的な位置関係から文字を構成する線幅を決定して、画像メモリ44に書き込むためのアドレスを生成する。アドレス生成器122の詳細は、図17を用いて後述する。
【0150】
画像生成器32の動作を以下に説明する。画像生成器32は、領域判定器41を用いて、入力されたストロークデータのX座標、Y座標それぞれの最大値及び最小値を検出し、文字が筆記されている矩形領域を検出する。また、領域判定器41は、検出した矩形領域の座標をレジスタ45に転送する。転送された矩形領域の座標は、文字認識器34で文字認識を行う際に利用される。
【0151】
また、画像生成器32は、領域判定器41を用いて、入力された全てのストロークデータを、一旦メモリ121に保存する。画像生成器32は、アドレス生成器122を用いて、メモリ121からストロークデータを読み出して、該読み出したストロークデータと他のストロークデータとの相対的な位置関係から文字を構成する線幅を決定する。アドレス生成器122は、決定した線幅の値と、ストロークデータとから、画像メモリ44に書き込むためのアドレスを生成して、画像メモリ44に書き込む。
【0152】
画像メモリ44へのストロークデータの書き込みが終了すると、文字認識器34が動作を開始し、レジスタ45に格納されているストロークの存在する利用域情報を読み出して、文字認識に必要なデータを画像メモリ44から読み出して文字認識を行う。
【0153】
(アドレス生成器(その2))
図17は、図16のアドレス生成器122の構成を説明するための図である。アドレス生成器122は、データ読み出し器130と、ペンダウン判定器131と、ペンダウン判定器132と、AND回路133と、ペンダウン判定器134と、ペンダウン判定器135と、AND回路136と、平行・距離判定器137と、レジスタ138と、1/3器139と、最小値セレクタ140と、描画座標生成器141と、エンコーダ142とから構成されている。
【0154】
アドレス生成器122は、図6に示されるストロークデータの座標情報、タイムスタンプ情報及びペンアップ/ダウン情報を用いてi番目のストロークデータ(座標i1と座標i2)とその他の全てのストロークデータとの位置関係を調べて、i番目のストロークデータの線幅を決定する。また、アドレス生成器122は、線幅の決定後、描画する座標を生成して、該生成した座標に応じた画像メモリ44のアドレスを生成して、画像メモリ44に値を書き込む。
【0155】
データ読み出し器130は、図16に示したメモリ121に記憶されているストロークデータを読み出す。i番目のストロークデータ(座標i1と座標i2)と、j番目のストロークデータ(座標j1と座標j2)とが読み出される。
【0156】
ペンダウン判定器131、132、134、135は、それぞれ座標i1、i2、j1、j2がペンダウン(筆記中)かどうかを調べて全ての座標においてペンダウンであるならば、平行・距離判定器137を有効にする。
【0157】
平行・距離判定器137は、二つのストローク(座標i1から座標i2へのストロークと、座標j1から座標j2へのストローク)が平行かどうかを判定し、平行と判定されたならば、二つのストロークの距離を計算する。平行・距離判定器137は、i=jでない全てのjに対して距離の計算を行って、その内の最小の距離を出力する。平行・距離判定器137の詳細は、図18を用いて後述する。
【0158】
1/3器139は、平行・距離判定器137が出力した二つのストローク間の距離の最小値を1/3にする。最小値セレクタ140は、前記1/3にされた距離か、レジスタ138に記憶されている線幅の初期値かどちらか小さいほうを選択して取得する。
【0159】
描画座標生成器141は、最小値セレクタ140に選択された線幅と、座標i1と、座標i2とを用いてストローク画像の描画に用いる座標を生成する。なお、描画座標生成器141は、図14の描画座標生成器114と同等の機能を有する。
【0160】
エンコーダ142は、描画座標生成器141で生成された座標から画像メモリ44に書き込むためのアドレスを生成する。
【0161】
アドレス生成器122の動作例を以下に示す。アドレス生成器122は、データ読み出し器130を用いてi番目のストロークデータ(座標i1と座標i2)と、j番目のストロークデータ(座標j1と座標j2)とを図16に示したメモリ121から読み出す。
【0162】
アドレス生成器122は、ペンダウン判定器131、132、134、135を用いて、前記読み出した座標i1、i2、j1、j2がそれぞれペンダウン(筆記中)かどうかを調べて全ての座標においてペンダウンであるならば、平行・距離判定器137を有効にする。
【0163】
平行・距離判定器137は、二つのストローク(座標i1から座標i2へのストロークと、座標j1から座標j2へのストローク)が平行かどうかを判定し、平行と判定されたならば、二つのストロークの距離を計算する。平行・距離判定器137は、i=jでない全てのjに対して距離の計算を行って、その内の最小の距離を出力する。
【0164】
出力された最小の距離は、1/3器139によって1/3にされ、最小値セレクタ140は、前記1/3にされた距離とレジスタ138に記憶されている値とを比較して、小さいほうの値を線幅として描画座標生成器に入力する。
【0165】
描画座標生成器141は、最小値セレクタ140に選択された線幅と、座標i1と、座標i2とを用いてストローク画像の描画に用いる座標を生成する。アドレス生成器122は、座標の生成後、エンコーダ142を用いて該生成した座標に応じた画像メモリ44のアドレスを生成して、画像メモリ44に値を書き込む。
【0166】
(平行・距離判定器)
図18に、図17の平行・距離判定器137の構成を説明するための図を示す。平行・距離判定器137は、角度算出器151と、角度算出器152と、減算器153と、比較器154と、距離算出器155と、距離算出器156と、距離算出器157と、距離算出器158と、最小値算出器159と、レジスタ160と、比較器161と、AND回路162とから構成されている。
【0167】
角度算出器151は、座標i1と、座標i2とを結ぶ直線の傾き(角度)θiを計算する。同様に角度算出器152は、座標j1と、座標j2とを結ぶ直線の傾き(角度)θjを計算する。角度算出器151と、角度算出器152とは、図9の角度算出器61と同等の機能を有する。
【0168】
減算器153は、前記θiとθjとの差分、|θi―θj|を算出する。比較器154は、減算器153で算出された差分と所定の閾値とを比較する。比較器154は、前記差分(|θi―θj|)の方が閾値より小さければ平行を、そうでなければ非平行を表す信号を出力する。
【0169】
距離算出器155は、座標i1と座標j1との距離を、距離算出器156は、座標i1と座標j2との距離を、距離算出器157は、座標i2と座標j1との距離を、距離算出器158は、座標i2と座標j2との距離をそれぞれ算出する。
【0170】
最小値算出器159は、前記算出した4つの距離の内、最小の距離を出力する。
【0171】
比較器161は、最小値算出器159より算出された距離の最小値とレジスタ160に記憶されている現時点での最小値とを比較する。比較器161は、最小値算出器159で算出した距離の方がレジスタ160の記憶されている値より小さく、且つAND回路162を用いて平行であるという判定がなされれば、最小値算出器159で算出された距離で、レジスタ160の値を更新する。レジスタ160の値は、平行・距離判定器137の出力値となる。
【0172】
平行・距離判定器137の動作例を以下に示す。平行・距離判定器137は、角度算出器151を用いて、座標i1と、座標i2とを結ぶ直線の傾き(角度)θiを計算する。同様に、平行・距離判定器137は、角度算出器152を用いて、座標j1と、座標j2とを結ぶ直線の傾き(角度)θjを計算する。
【0173】
続いて平行・距離判定器137は、減算器153を用いて、前記θiとθjとの差分、|θi―θj|を算出する。また比較器154では、減算器153で算出された差分と所定の閾値とを比較する。比較器154は、前記差分(|θi―θj|)の方が閾値より小さければ平行を、そうでなければ非平行を表す信号を出力する。
【0174】
例えば、閾値を角度5度とした場合、前記θiとθjとの差分、|θi―θj|が5度より小さければ、二つのストロークデータは、平行であると判定し、5度以上であれば二つのストロークデータは非平行である判定する。
【0175】
また、平行・距離判定器137は、距離算出器155、156、157、158を用いて、それぞれ、座標i1と座標j1との距離、座標i1と座標j2との距離、座標i2と座標j1との距離、座標i2と座標j2との距離を算出する。続いて、平行・距離判定器137は、最小値算出器159を用いて前記算出した距離の最小値を出力する。
【0176】
平行・距離判定器137の動作例を以下に示す。平行・距離判定器137は、比較器161を用いて、最小値算出器159より算出された距離の最小値とレジスタ160に記憶されている現時点での最小値とを比較する。比較器161は、最小値算出器159で算出した距離の方がレジスタ160の記憶されている値より小さく、且つAND回路162を用いて平行であるという判定がなされれば、最小値算出器159で算出された算出された距離で、レジスタ160の値を更新する。レジスタ160の値は、平行・距離判定器137の出力値となる。
【0177】
(画像作成器における画像作成処理のフローチャート(その1))
以下では、画像生成処理の一例を、フローチャートを用いて説明する。図19は、図7の画像作成器32における画像生成処理の一例を、フローチャートを用いて説明するための図である。
【0178】
図19において、ステップS1では、図7の画像作成器32はストロークの始点である座標1を取得する。ステップS1に引き続きステップS2に進み、ステップS2では、図7の画像作成器32は、ストロークの終点である座標2を取得する。
【0179】
ステップS2に引き続き、ステップS3に進み、ステップS3では、図7の領域判定器41が、前記座標1と前記座標2とのX座標、Y座標それぞれの最大値及び最小値を検出し、前記座標1と前記座標2とを包含する矩形領域を算出する。
【0180】
ステップS3に引き続き、ステップS4に進み、ステップS4では、図7の線幅変更器33が、前記座標1と前記座標2とを結ぶ直線の方向に基づいて、線幅を変更する。なお、本ステップの詳細は、図20を用いて後述する。
【0181】
ステップS4に引き続き、ステップS5に進み、ステップS5では、図7のアドレス生成器43が、前記座標1と、前記座標2と、前記線幅とより、ストローク画像の生成を行う。
【0182】
ステップS5に引き続き、ステップS6に進み、ステップS6では、全ての座標に対して処理が終了したかどうかを判定する。処理が終了したと判定すると(ステップS6においてYES)、ステップS7に進み、処理が終了していないと判定すると(ステップS6においてNO)、ステップS8に進む。
【0183】
ステップS7では、図7の文字認識装置34が、文字認識を行って、終了する。ステップS8では、前記座標1と前記座標2とを置き換えて前記ステップS2からの処理を繰り返す。なお、ステップS7は、例えば、「特開平4―2055281号公報」「文字認識方法」や、「特開平4―47486号公報」「文字認識方法」等の方法を用いて文字認識を行う。
【0184】
(線幅変更器における線幅変更処理のフローチャート)
図20に図8の線幅変更器33における線幅変更処理(前記ステップS4)の一例を、フローチャートを用いて説明するための図を示す。
【0185】
図20において、ステップS11では、図8の方向判定器51が、ストロークの方向を算出する。なお、本ステップの詳細は、図21を用いて後述する。
【0186】
ステップS11に引き続き、ステップS12に進み、ステップS12では、図8の線幅演算器52が、前記ステップS11にて算出した方向に基づいて線幅の変更を行う。なお、本ステップの詳細は、図22、図23、図24及び図25を用いて後述する。
【0187】
(方向判定器における方向判定処理のフローチャート)
図21に、図9の方向判定器51における方向判定処理(前記ステップS11)の一例を、フローチャートを用いて説明するための図を示す。図21において、ステップS21では、図9の方向判定器51が座標1(x1、y1)と、座標2(x2、y2)とを取得する。
【0188】
ステップS21に引き続き、ステップS22に進み、ステップS22では、図9の角度算出器61が、前記ステップS21にて入力された座標1(x1、y1)と、座標2(x2、y2)とを結ぶ直線の角度θを、図9(b)で示した角度算出方法の式を用いて算出する。
【0189】
ステップS22に引き続き、ステップS23に進み、ステップS23では、図9の角度変換器62が、前記ステップS21にて算出した角度θを、図9(c)に示した角度変換表テーブルを用いて傾き度合いθt(0〜3の整数値)に変換する。
【0190】
(線幅演算器における線幅演算処理のフローチャート(その1))
図22に、図10の線幅演算器52における線幅演算処理(前記ステップS12)の一例を、フローチャートを用いて説明するための図を示す。
【0191】
図22において、ステップS31では、図8のレジスタ53より、線幅演算器52に線幅の初期値が入力される。ステップS31に引き続きステップS32に進み、ステップS32では、図8の方向判定器51より、線幅演算器52に前記傾き度合いθtが入力される。
【0192】
ステップS32に引き続き、ステップS33に進み、ステップS33では、図10のセレクタ75が、前記θtが0(ゼロ)かどうかを判定する。θtが0であると判定すると(ステップS33においてYES)、ステップS35に進み、θtが0でないと判定すると(ステップS33においてNO)、ステップS34に進む。
【0193】
ステップS34では、図10の加算器73が、所定の値を線幅に加算して、前記線幅を増加させて線幅演算処理を終了する。
【0194】
ステップS35では、図10のセレクタ75が、前記θtが2かどうかを判定する。θtが2であると判定すると(ステップS35においてYES)、ステップS36に進み、θtが2でないと判定すると(ステップS35においてNO)、線幅演算処理を終了する。
【0195】
ステップS36では、図10の減算器74が、前記線幅から所定の値を減算して(減算結果の下限値を1とする)、前記線幅を減少させて線幅演算処理を終了する。
【0196】
(線幅演算器における線幅演算処理のフローチャート(その2))
図23に、図11の線幅演算器52における線幅演算処理(前記ステップS12)の他の例を、フローチャートを用いて説明するための図を示す。
【0197】
図23において、ステップS41では、図8のレジスタ53より、図11の線幅演算器52に線幅の初期値が入力される。ステップS41に引き続きステップS42に進み、ステップS42では、図8の方向判定器51より、図11の線幅演算器52に前記傾き度合いθtが入力される。
【0198】
ステップS42に引き続き、ステップS43に進み、ステップS43では、図11の比較器86及び比較器87が、図8のレジスタ53より取得した線幅の初期値が所定の範囲内(閾値1以上、閾値2以下)にあるかどうかを判定する。前記線幅の初期値が所定の範囲内にあると判定すると(ステップS43においてYES)、ステップS44に進み、前記線幅の初期値が所定の範囲内にないと判定すると(ステップS43においてNO)、ステップS48に進む。
【0199】
ステップS44では、図11のセレクタ85が、前記θtが0(ゼロ)かどうかを判定する。前記θtが0であると判定すると(ステップS44においてYES)、ステップS45に進み、前記θtが0でないと判定すると(ステップS44においてNO)、ステップS46に進む。
【0200】
ステップS45では、加算器83が、前記線幅に所定の値を加算して、前記線幅を増加させて線幅演算処理を終了する。
【0201】
ステップS46では、図11のセレクタ85が、前記θtが2かどうかを判定する。前記θtが2であると判定すると(ステップS46においてYES)、ステップS47に進み、前記θtが2ではないと判定すると(ステップS46においてNO)、線幅演算処理を終了する。
【0202】
ステップS47では、図11の減算器84が、前記線幅の初期値から所定の値を減算して、線幅を減少させて線幅演算処理を終了する。
【0203】
ステップS48では、比較器86が、前記線幅の初期値が所定の範囲より大きいかどうかを判定する。前記線幅の初期値が所定の範囲より大きいと判定すると(ステップS48においてYES)、ステップS49に進み、前記線幅が所定の範囲より大きくないと判定すると(ステップS48においてNO)、ステップS51に進む。
【0204】
ステップS49では、図11のセレクタ85が、前記θtが2かどうかを判定する。前記θtが2であると判定すると(ステップS49においてYES)、ステップS50に進み、前記θtが2ではないと判定すると(ステップS49においてNO)、線幅演算処理を終了する。
【0205】
ステップS50では、図11の減算器84が、前記線幅の初期値から所定の値を減算して、線幅を減少させて線幅演算処理を終了する。
【0206】
ステップS51では、図11のセレクタ85が、前記θtが0(ゼロ)かどうかを判定する。前記θtが0であると判定すると(ステップS51においてYES)、ステップS52に進み、前記θtが0でないと判定すると(ステップS51においてNO)、線幅演算処理を終了する。
【0207】
ステップS52では、図11の加算器83が、前記線幅の初期値に所定の値を加算して、線幅を増加させて線幅演算処理を終了する。
【0208】
(線幅演算器における線幅演算処理のフローチャート(その3))
図24に、図12の線幅演算器52における線幅演算処理(前記ステップS12)の一例を、フローチャートを用いて説明するための図を示す。
【0209】
図24において、ステップS61では、図8のレジスタ53より、図12の線幅演算器52線幅の初期値が入力される。ステップS61に引き続きステップS62に進み、ステップS62では、図8の方向判定器51より、図12の線幅演算器52に前記傾き度合いθtが入力される。
【0210】
ステップS62に引き続き、ステップS63に進み、ステップS63では、図12のセレクタ前記θtが0(ゼロ)かどうかを判定する。θtが0であると判定すると(ステップS63においてYES)、ステップS65に進み、θtが0でないと判定すると(ステップS63においてNO)、ステップS64に進む。
【0211】
ステップS64では、図12の乗算器93が、1より大きい所定の値を前記線幅の初期値に乗算して、線幅を増加させて線幅演算処理を終了する。
【0212】
ステップS65では、図12のセレクタ95が、前記θtが2かどうかを判定する。θtが2であると判定すると(ステップS65においてYES)、ステップS66に進み、θtが2でないと判定すると(ステップS65においてNO)、線幅演算処理を終了する。
【0213】
ステップS66では、図12の乗算器94が、1より小さい所定の値を前記線幅の初期値に乗算して(乗算結果の下限値を1とする)、線幅を減少させて線幅演算処理を終了する。
【0214】
(線幅演算器における線幅演算処理のフローチャート(その4))
図25に、図13の線幅演算器52における線幅演算処理(前記ステップS12)の一例を、フローチャートを用いて説明するための図を示す。
【0215】
図25において、ステップS71では、図8のレジスタ53より、図13の線幅演算器52に線幅の初期値が入力される。ステップS71に引き続きステップS72に進み、ステップS72では、図8の方向判定器51より、図13の線幅演算器52に前記傾き度合いθtが入力される。
【0216】
ステップS72に引き続き、ステップS73に進み、ステップS73では、図13の比較器106及び比較器107が、前記線幅の初期値が所定の範囲内(閾値1以上閾値2以下)にあるかどうかを判定する。前記線幅の初期値が所定の範囲内にあると判定すると(ステップS73においてYES)、ステップS74に進み、前記線幅が所定の範囲内にないと判定すると(ステップS73においてNO)、ステップS78に進む。
【0217】
ステップS74では、図13のセレクタ105が、前記θtが0(ゼロ)かどうかを判定する。前記θtが0であると判定すると(ステップS74においてYES)、ステップS75に進み、前記θtが0でないと判定すると(ステップS74においてNO)、ステップS76に進む。
【0218】
ステップS75では、図13の乗算器103が、前記線幅の初期値に1より大きい所定の値を乗算して、線幅を増加させて線幅演算処理を終了する。
【0219】
ステップS76では、図13のセレクタ105が、前記θtが2かどうかを判定する。前記θtが2であると判定すると(ステップS76においてYES)、ステップS77に進み、前記θtが2ではないと判定すると(ステップS76においてNO)、線幅演算処理を終了する。
【0220】
ステップS77では、図13の乗算器104が、前記線幅の初期値に1より小さい所定の値を乗算して、線幅を減少させて線幅演算処理を終了する。
【0221】
ステップS78では、図13の比較器107が、前記線幅の初期値が所定の範囲(閾値2)より大きいかどうかを判定する。前記線幅が所定の範囲より大きいと判定すると(ステップS78においてYES)、ステップS79に進み、前記線幅が所定の範囲より大きくないと判定すると(ステップS78においてNO)、ステップS81に進む。
【0222】
ステップS79では、図13のセレクタ105が、前記θtが2かどうかを判定する。前記θtが2であると判定すると(ステップS79においてYES)、ステップS80に進み、前記θtが2ではないと判定すると(ステップS79においてNO)、線幅演算処理を終了する。
【0223】
ステップS80では、図13の乗算器104が、前記線幅に1より小さい所定の値を乗算して、前記線幅を減少させて線幅演算処理を終了する。
【0224】
ステップS81では、図13のセレクタ105が、前記θtが0(ゼロ)かどうかを判定する。前記θtが0であると判定すると(ステップS81においてYES)、ステップS82に進み、前記θtが0でないと判定すると(ステップS81においてNO)、線幅演算処理を終了する。
【0225】
ステップS82では、図13の乗算器103が、前記線幅の初期値に1より大きい所定の値を乗算して、前記線幅を増加させて線幅演算処理を終了する。
【0226】
(アドレス生成器におけるストローク画像生成処理のフローチャート)
図26に図14のアドレス生成器43におけるストローク画像生成処理(前記ステップS5)の一例を、フローチャートを用いて説明するための図を示す。
【0227】
図26において、ステップS91では、ペンダウン判定器111とペンダウン判定器112とが前記座標1と前記座標2とが共にペンダウン(筆記中)であるかどうかを判定する。ペンダウンであると判定すると(ステップS92においてYES)、ステップS92に進み、ペンダウンでないと判定すると(ステップS92においてNO)、ストローク画像生成処理を終了する。
【0228】
ステップS92では、描画座標生成器114が描画座標を生成する。ステップS92に引き続いて、ステップS93に進み、ステップS93では、エンコーダ115が、前記ステップS92において生成した座標の値から画像メモリ44に書き込むべきアドレスを算出して、アドレスをふる。
【0229】
ステップS93に引き続いて、ステップS94に進み、ステップS94では、前記ステップS93においてふったアドレスに値を書き込む。
【0230】
(画像生成器における画像生成処理のフローチャート(その2))
図27に、図16の画像生成器32における画像生成処理の一例を、フローチャートを用いて説明するための図を示す。
【0231】
図27において、ステップS101では、図16の領域判定器41が、ストロークデータから、全座標のX座標及びY座標の最小値、最大値を求める。
【0232】
ステップS101に引き続き、ステップS102に進み、ステップS102では、図16の領域判定器41が、前記ステップS101において算出した全座標データを前記メモリ121に一旦保存する。
【0233】
ステップS102に引き続き、ステップS103に進み、ステップS103では、図16のアドレス生成器122が、前記ステップS102において、保存した全画像データを読み出して、ストローク画像の生成を行う。
【0234】
ステップS103に引き続き、ステップS104に進み、ステップS104では、図16の文字認識装置34が、前記ステップS103において作成したストローク画像の文字認識を行う。なお、ステップS104における文字認識は上述した如く、「特開平 4―2055281号公報」又は「特開平 4―47486号公報」等の記載されている方法を用いて行う。
【0235】
(アドレス生成器におけるストローク画像生成処理のフローチャート)
図28に図17のアドレス生成器122におけるストローク画像生成処理(前記ステップS103)の一例を、フローチャートを用いて説明するための図を示す。
【0236】
図28において、ステップS111では、変数iに1を代入する。ステップS111に引き続き、ステップS112に進み、ステップS112では、図17のデータ読み出し器130が、メモリ121に記憶されているi番目と(i+1)番目の座標データ(ストローク1)を読み出す。
【0237】
ステップS112に引き続き、ステップS113に進み、ステップS113では、図17のペンダウン判定器131とペンダウン判定器132とが、前記読み出したi番目の座標と、(i+1)番目の座標とが共にペンダウン(筆記中)であるかどうかを判定する。共にペンダウンであると判定すると(ステップS113においてYES)、ステップS116に進み、どちらか一方でもペンダウンでないと判定すると(ステップS113においてNO)、ステップS114に進む。
【0238】
ステップS114では、図17の描画座標生成器141が、処理すべき前記ストローク1の画像生成処理が終了したかどうかを判定する。終了したと判定すると(ステップS114においてYES)、ストローク画像生成処理を終了して、終了していないと判定すると(ステップS114においてNO)、ステップS115に進む。ステップS115では、変数iをインクリメントして、前記ステップS112からの処理を再び繰り返す。
【0239】
ステップS116では、変数jに1を代入する。ステップS116に引き続きステップS117に進み、ステップS117では、図17のデータ読み出し器130が、図16のメモリ121に記憶されているi=jでないj番目と(j+1)番目の座標データ(ストローク2)を読み出す。
【0240】
ステップS117に引き続き、ステップS118に進み、ステップS118では、図17のペンダウン判定器134と、ペンダウン判定器135とが、前記読み出したj番目の座標と、(j+1)番目の座標とが共にペンダウン(筆記中)であるかどうかを判定する。共にペンダウンであると判定すると(ステップS118においてYES)、ステップS119に進み、どちらか一方でもペンダウンでないと判定すると(ステップS118においてNO)、ステップS121に進む。
【0241】
ステップS119では、図17の平行・距離判定器137が、前記ストローク1と前記ストローク2とが平行かどうかを判定する。平行であると判定すると(ステップS119においてYES)、ステップS120に進み、平行でないと判定すると(ステップS119においてNO)、ステップS121に進む。
【0242】
ステップS120では、図17の平行・距離判定器137が、前記ストローク1と前記ストローク2との距離を算出して、ストローク1と他のストロークとの最小距離の更新を行う。
【0243】
ステップS121では、処理すべき前記ストローク2の画像生成処理が終了したかどうかを判定する。終了したと判定すると(ステップS121においてYES)、ステップS123に進み、終了していないと判定すると(ステップS121においてNO)、ステップS122に進む。ステップS122では、変数jをインクリメントして、前記ステップS117からの処理を再び繰り返す。
【0244】
ステップS123では、図17の1/3器139が、線幅を前記ストローク1と他のストロークとの最小距離の1/3とする。ここで、前記ストローク1に平行なストロークが存在しない場合は、前記ステップS120を実行していないので、最小距離を算出することができないが、図17のレジスタ138等に予め所定の値を最小距離の初期値として設定しておくことで、この値を最小距離とすることができる。
【0245】
ステップS123に引き続き、ステップS124に進み、ステップS124では、図17の描画座標生成器141が、前記ストローク1の描画座標を生成する。ステップS124に引き続き、ステップS125に進み、ステップS125では、図17のエンコーダ142が、前記ステップS123にて生成した描画座標から、画像メモリ44に書き込むためのアドレスを生成する。
【0246】
ステップS125に引き続き、ステップS126に進み、ステップS126では、図17のエンコーダ142が、前記ステップS125で生成したアドレスにストローク画像を書き込む。
【0247】
ステップS126に引き続き、ステップS127に進み、ステップS127では、図17の描画座標生成器141が、処理すべき前記ストローク1の画像生成処理が終了したかどうかを判定する。終了したと判定すると(ステップS127においてYES)、ストローク画像生成処理を終了して、終了していないと判定すると(ステップS127においてNO)、前記ステップS115に進む。
【0248】
(平行・距離判定器における平行判定処理のフローチャート)
図29に、図18の平行・距離判定器137における平行判定処理(前記ステップS120)の一例を、フローチャートを用いて説明するための図を示す。
【0249】
図29において、ステップS131では、図18の平行・距離判定器137が、座標iと座標(i+1)とを取得する。ステップS131に引き続き、ステップS132に進み、ステップS132では、図18の角度算出器151が、前記ステップS131において取得した両座標、座標iと座標(i+1)とを結ぶ直線の傾き(角度)θiを算出する。なお、角度θiは、図9(b)で示した角度算出方法の式を用いて算出する。
【0250】
ステップS132に引き続き、ステップS133に進み、ステップS133では、図18の平行・距離判定器137が、座標jと座標(j+1)とを取得する。ステップS133に引き続き、ステップS134に進み、ステップS134では、図18の角度算出器152が、前記ステップS133において取得した両座標、座標jと座標(j+1)とを結ぶ直線の傾き(角度)θjを算出する。なお、角度θjも同様に、図9(b)で示した角度算出方法の式を用いて算出する。
【0251】
ステップS134に引き続き、ステップS135に進み、ステップS135では、図18の減算器153が、前記角度θiと、前記角度θjとの角度差|θi−θj|を算出する。
【0252】
ステップS135に引き続き、ステップS136に進み、ステップS136では、図18の比較器154が、前記ステップS135にて算出した前記角度差|θi−θj|が所定の角度より小さいかどうかを判定する。角度より小さいと判定すると(ステップS136においてYES)、前記2つの直線は平行であるとし、角度より大きいと判定すると(ステップS136においてNO)、前記2つの直線は非平行であるとする。
【0253】
(平行・距離判定器における距離算出処理のフローチャート)
図30に、図18の平行・距離判定器137における距離算出処理(前記ステップS120)の一例を、フローチャートを用いて説明するための図を示す。
【0254】
図30において、ステップS141では、図18の平行・距離判定器137が、座標iと座標(i+1)とを取得する。ステップS141に引き続き、ステップS142に進み、ステップS142では、図18の平行・距離判定器137が、座標jと座標(j+1)とを取得する。
【0255】
ステップS142に引き続き、ステップS143に進み、ステップS143では、図18の距離算出器155が、前記座標iと前記座標jとの距離を計算する。ステップS143に引き続き、ステップS144に進み、ステップS144では、図18の距離算出器156が、前記座標iと前記座標(j+1)との距離を計算する。ステップS144に引き続き、ステップS145に進み、ステップS145では、図18の距離算出器157が、前記座標(i+1)と前記座標jとの距離を計算する。ステップS145に引き続き、ステップS146に進み、ステップS146では、図18の距離算出器158が、前記座標(i+1)と前記座標(j+1)との距離を計算する。
【0256】
ステップS146に引き続き、ステップS147に進み、ステップS147では、図18の最小値算出器159が、前記それぞれ計算した4つの距離の内、最小値を算出する。
【0257】
ステップS147に引き続き、ステップS148に進み、ステップS148では、図18の比較器161が、前記ステップS147において算出した距離の最小値と、図18のレジスタ160に記憶されている現時点での最小値とを比較する。前記ステップS147において算出した距離の最小値の方が小さいと判断すると(ステップS148においてYES)、ステップS149に進み、レジスタ160に記憶されている現時点での最小値の方が小さいと判断すると(ステップS148においてNO)、距離算出処理を終了する。
【0258】
ステップS149では、図18の比較器161が、前記ステップS147において算出した距離の最小値を、レジスタ160に代入して、レジスタ160の値を更新する。
【0259】
【発明の効果】
上述の如く、本発明によれば、精度の高い文字認識を行うことができる。
【0260】
【図面の簡単な説明】
【図1】ビットマップデータ読み取り方式による従来の文字認識装置の構成図である。
【図2】時系列座標データ読み取り方式による従来の文字認識装置の構成図である。
【図3】手書きした座標データを基に文字画像を作成して文字認識させる一例を「加」の文字を用いて説明するための図である。
【図4】手書きした座標データを基に文字画像を作成して文字認識させる一例を「東」の文字を用いて説明するための図である。
【図5】本発明による文字認識装置の一例を示す図である。
【図6】ストロークデータのフォーマットを示す図である。
【図7】画像生成器の構成を説明するための図(その1)である。
【図8】線幅変更器の構成を説明するための図である。
【図9】方向判定器の詳細な説明をするための図である。
【図10】線幅演算器の構成を説明するための図(その1)である。
【図11】線幅演算器の構成を説明するための図(その2)である。
【図12】線幅演算器の構成を説明するための図(その3)である。
【図13】線幅演算器の構成を説明するための図(その4)である。
【図14】アドレス生成器の構成を説明するための図(その1)である。
【図15】描画座標生成器の動作例を説明するための図である。
【図16】画像生成器の構成を説明するための図(その2)である。
【図17】アドレス生成器の構成を説明するための図(その2)である。
【図18】平行・距離判定器の構成を説明するための図である。
【図19】画像生成器における画像生成処理の一例を、フローチャートを用いて説明するための図である。
【図20】線幅変更器における線幅変更処理(ステップS4)の一例を、フローチャートを用いて説明するための図である。
【図21】方向判定器における方向判定処理(ステップS11)の一例を、フローチャートを用いて説明するための図である。
【図22】線幅演算器における線幅演算処理(ステップS12)の一例を、フローチャートを用いて説明するための図(その1)である。
【図23】線幅演算器における線幅演算処理(ステップS12)の一例を、フローチャートを用いて説明するための図(その2)である。
【図24】線幅演算器における線幅演算処理(ステップS12)の一例を、フローチャートを用いて説明するための図(その3)である。
【図25】線幅演算器における線幅演算処理(ステップS12)の一例を、フローチャートを用いて説明するための図(その4)である。
【図26】アドレス生成器におけるストローク画像生成処理(ステップS5)の一例を、フローチャートを用いて説明するための図である。
【図27】画像生成器における画像生成処理の一例を、フローチャートを用いて説明するための図である。
【図28】アドレス生成器におけるストローク画像生成処理(ステップS103)の一例を、フローチャートを用いて説明するための図である。
【図29】平行・距離判定器における平行判定処理(ステップS120)の一例を、フローチャートを用いて説明するための図である。
【図30】平行・距離判定器における距離算出処理(ステップS120)の一例を、フローチャートを用いて説明するための図である。
【符号の説明】
10 文字認識装置
11 手書き入力装置
12 通信部
13 画像形成部
14 文字認識部
15 蓄積部
20 文字認識装置
21 手書き入力装置
22 通信部
23 文字認識部
24 蓄積部
30 文字認識装置
31 画像作成器
32 画像生成器
33 線幅変更器
34 文字認識器
35 蓄積部
41 領域判定器
42 バッファ
43 アドレス生成器
44 画像メモリ
45 レジスタ
51 方向判定器
52 線幅演算器
53 レジスタ
61 角度算出器
62 角度変換器
71 レジスタ
72 レジスタ
73 加算器
74 減算器
75 セレクタ
81 レジスタ
82 レジスタ
83 加算器
84 減算器
85 セレクタ
86 比較器
87 比較器
88 セレクタ
89 セレクタ
91 レジスタ
92 レジスタ
93 乗算器
94 乗算器
95 セレクタ
101 レジスタ
102 レジスタ
103 乗算器
104 乗算器
105 セレクタ
106 比較器
107 比較器
108 セレクタ
109 セレクタ
111 ペンダウン判定器
112 ペンダウン判定器
113 AND回路
114 描画座標生成器
115 エンコーダ
121 メモリ
122 アドレス生成器
130 データ読み出し器
131 ペンダウン判定器
132 ペンダウン判定器
133 AND回路
134 ペンダウン判定器
135 ペンダウン判定器
136 AND回路
137 平行・距離判定器
138 レジスタ
139 1/3器
140 最小値セレクタ
141 描画座標生成器
142 エンコーダ
151 角度算出器
152 角度算出器
153 減算器
154 比較器
155 距離算出器
156 距離算出器
157 距離算出器
158 距離算出器
159 最小値算出器
160 レジスタ
161 比較器[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a handwritten character recognition device, a handwritten character recognition method, and a handwritten character recognition program, and more particularly to character recognition of a handwritten character image of a line having a predetermined width generated from a handwritten character string represented by a plurality of stroke data. The present invention relates to a handwritten character recognition device, a handwritten character recognition method, and a handwritten character recognition program.
[0002]
[Prior art]
Conventionally, recognition of handwritten characters has been performed. For example, Japanese Unexamined Patent Application Publication No. 9-2682203 describes a character recognition method in which a feature amount is obtained from a handwritten character image, and then identification is performed using a neural network. If the certainty (confidence) of the character recognition is low at the time of performing the character recognition, the recognition parameter is changed and the character recognition is performed again to increase the certainty. Has become.
[0003]
A conventional character recognition processing method using a handwriting input device will be described below. FIG. 1 shows a configuration of a conventional
[0004]
The
[0005]
The
[0006]
FIG. 2 shows a configuration of a conventional
[0007]
The
[0008]
The communication unit 22 receives the coordinate information (x, y) from the
[0009]
[Problems to be solved by the invention]
However, the invention described in Japanese Patent Application Laid-Open No. 9-2682203 aims at performing highly accurate character recognition by setting an optimum character recognition parameter for a character image. If the quality of the character image becomes poor, the recognition rate is naturally limited.
[0010]
In the conventional method using the handwriting input device shown in FIG. 1, a character image is formed with a predetermined line width. If the line width is smaller than the size of the character, there is a problem that one character “A” is separated and recognized as two characters “Caro” as shown in FIG. 3A. In order to solve this problem, as shown in FIG. 3B, by creating a character image with a thick line, the character is recognized as “add”.
[0011]
By the way, if the line width is too thick compared to the size of the character, the line may be connected to an adjacent line and the character may be crushed.
[0012]
FIG. 4 is a diagram for describing an example of creating a character image based on handwritten coordinate data and performing character recognition using “east”. FIG. 4A shows a case where a character image is created by thin lines and character recognition is performed, and FIG. 4B shows a case where a character image is created and character recognition is performed by thick lines. As shown in FIG. 4B, if the line width is made thicker than the character, the character may be connected to an adjacent line and the character "East" may be recognized as "bundle".
[0013]
Therefore, according to the conventional method, the character string “Kato” may be erroneously recognized as the character “Karo Higashi” or “Kagashi” depending on the line width.
[0014]
Further, in the conventional method using the handwriting input device shown in FIG. 2, if the stroke order of the writer is incorrect, the recognition accuracy is reduced.
[0015]
The present invention has been made in view of the above points, and has as its object to perform more accurate character recognition.
[0016]
[Means for Solving the Problems]
Therefore, in order to solve the above problem, an invention according to
[0017]
The invention according to
[0018]
Further, the invention according to
[0019]
Further, the invention according to
[0020]
The invention according to
[0021]
The invention according to
[0022]
Further, the invention according to
[0023]
The invention according to
[0024]
The invention according to claim 9 further includes a second determiner for determining whether a value stored in the first storage device is larger than a predetermined value, and If the value that is stored is determined to be larger than the predetermined value by the determination of the second determiner, the thickening unit stores the value stored in the first storage device in the fourth storage device. The stored value is not added.
[0025]
The invention according to claim 10 further comprises a first storage device for storing a value defining the predetermined width, and a fifth storage device for storing a predetermined value exceeding 1; Multiplying a value stored in the first storage device by a value stored in the fifth storage device, and determining a line width based on the multiplied value.
[0026]
The invention according to claim 11 further includes a second determiner that determines whether a value stored in the first storage device is larger than a predetermined value, and the second determination device determines whether a value stored in the first storage device is larger than a predetermined value. If the value that is stored is determined to be larger than the predetermined value by the determination of the second determiner, the thickening unit stores the value stored in the first storage device in the fifth storage device. It is characterized in that the stored value is not multiplied.
[0027]
Further, the twelfth aspect of the present invention is characterized in that the line width changing means has a thinning means for reducing the predetermined width and a thickening means for increasing the predetermined width.
[0028]
According to a thirteenth aspect of the present invention, there is provided a handwritten character recognition apparatus for performing character recognition of a handwritten character image of a line having a predetermined width generated from a handwritten character string represented by a plurality of stroke data. A line width changing means for changing the stroke width based on the positional relationship of the stroke data is provided.
[0029]
According to a fourteenth aspect of the present invention, the line width changing means is one of a value defining a line width generated from the stroke data and a value defining a predetermined line width stored in a storage device. On the other hand, a line width is determined by selecting a smaller value.
[0030]
According to a fifteenth aspect of the present invention, the line width generated from the stroke data is less than half the distance between the stroke data and adjacent stroke data.
[0031]
Further, the invention according to claim 16 further comprises a distance / angle calculating means for calculating a distance and an angle between the stroke data and the adjacent stroke data, and based on the distance calculated by the distance / angle calculating means. , A line width generated from the stroke data is determined.
[0032]
According to a seventeenth aspect of the present invention, there is provided a handwritten character recognition method for performing character recognition of a handwritten character image of a line having a predetermined width generated from a handwritten character string represented by a plurality of stroke data. The method further includes a line width changing step of changing the line width based on the direction of the data.
[0033]
The invention according to claim 18 is a method for recognizing a handwritten character image of a handwritten character image of a line having a predetermined width generated from a handwritten character string represented by a plurality of stroke data. The method has a line width changing step of changing based on the positional relationship of the stroke data.
[0034]
According to a nineteenth aspect of the present invention, there is provided a handwritten character recognition program for performing character recognition of a handwritten character image of a line having a predetermined width generated from a handwritten character string represented by a plurality of stroke data. The computer is caused to execute a line width changing procedure for changing the line width based on the direction of the data.
[0035]
According to a twentieth aspect of the present invention, in the handwritten character recognition program for performing character recognition of a handwritten character image of a line having a predetermined width generated from a handwritten character string represented by a plurality of stroke data, The computer is caused to execute a line width changing procedure for changing the stroke width based on the positional relationship of the stroke data.
[0036]
According to the first aspect of the present invention, in the handwritten character recognition device for performing character recognition of a handwritten character image of a line having a predetermined width generated from a handwritten character string represented by a plurality of stroke data, By having the line width changing means for changing based on the direction of the data, more accurate character recognition can be performed.
[0037]
According to the second aspect of the present invention, the line width changing unit includes a thinning unit that narrows the predetermined width, so that even a character having a large amount of data in a certain range, such as a kanji character, has a higher accuracy. Recognition can be performed.
[0038]
According to the third aspect of the present invention, the apparatus further includes a first storage device that stores a value that defines the predetermined width, and a second storage device that stores a predetermined value, wherein the thinning unit includes the first storage device. Subtracting the value stored in the second storage device from the value stored in one storage device and determining the line width based on the subtracted value, thereby reducing the line width with a simple configuration. Can be.
[0039]
According to the invention described in
[0040]
According to the invention as set forth in
[0041]
According to the invention as set forth in
[0042]
According to the seventh aspect of the present invention, the line width changing unit includes the thick line forming unit for increasing the predetermined width, so that the character recognition is not performed by separating the bias and the formation of the character. Character recognition can be performed.
[0043]
According to the invention of
[0044]
According to the ninth aspect of the present invention, there is further provided a second determiner for determining whether a value stored in the first storage device is larger than a predetermined value, If the value that is stored is determined to be larger than the predetermined value by the determination of the second determiner, the thickening unit stores the value stored in the first storage device in the fourth storage device. By not adding the stored values, if the value stored in the first storage device is larger than a predetermined value, it is possible to prevent the line width from being further increased.
[0045]
According to the tenth aspect of the present invention, there is further provided a first storage device for storing a value defining the predetermined width and a fifth storage device for storing a predetermined value exceeding 1; By multiplying the value stored in the first storage device by the value stored in the fifth storage device and determining the line width based on the multiplied value, the line width can be reduced with a simple configuration. Can be thicker.
[0046]
According to the invention of
If the value stored in the first storage device is determined by the second determiner to be larger than the predetermined value, the thickening means is stored in the first storage device. By not multiplying the value stored in the fifth storage device by the value stored in the fifth storage device, if the value stored in the first storage device is larger than a predetermined value, it is possible to prevent the line width from being further increased. it can.
[0047]
According to the twelfth aspect of the present invention, the line width changing means includes a thinning means for reducing the predetermined width and a thickening means for increasing the predetermined width. , The line width can be reduced or increased.
[0048]
According to the thirteenth aspect of the present invention, in the handwritten character recognition device for performing character recognition of a handwritten character image of a line having a predetermined width generated from a handwritten character string represented by a plurality of stroke data, the predetermined width is adjacent to the predetermined width. The character recognition rate can be improved by having a line width changing unit that changes based on the positional relationship of the stroke data.
[0049]
According to the fourteenth aspect of the invention, the line width changing means is one of a value defining a line width generated from the stroke data and a value defining a predetermined line width stored in a storage device. On the other hand, by selecting the smaller value and determining the line width, a character image can be generated with a more optimal line width.
[0050]
According to the fifteenth aspect of the present invention, the line width generated from the stroke data is less than half the distance between the stroke data and the adjacent stroke data, so that the line that does not contact the adjacent stroke is obtained. You can get the width.
[0051]
According to the sixteenth aspect of the present invention, there is further provided a distance / angle calculating means for calculating a distance and an angle between the stroke data and the adjacent stroke data, based on the distance calculated by the distance / angle calculating means. By determining the line width generated from the stroke data, an optimum line width according to the positional relationship can be obtained.
[0052]
According to the seventeenth aspect of the present invention, in the handwritten character recognition method for performing character recognition of a handwritten character image of a line of a predetermined width generated from a handwritten character string represented by a plurality of stroke data, By including the line width changing step of changing based on the direction of the data, it is possible to provide a character recognition method for producing a high-quality character image and performing more accurate character recognition.
[0053]
According to the eighteenth aspect of the present invention, in the handwritten character recognition method for performing character recognition of a handwritten character image of a line of a predetermined width generated from a handwritten character string represented by a plurality of stroke data, By including the line width changing step of changing based on the positional relationship of the stroke data, it is possible to provide a character recognition method for producing a high-quality character image and performing more accurate character recognition.
[0054]
According to the invention described in claim 19, in the handwritten character recognition program for performing character recognition of a handwritten character image of a line having a predetermined width generated from a handwritten character string represented by a plurality of stroke data, By causing a computer to execute a line width changing procedure for changing the line width based on the direction of data, a character image with good quality can be produced and a character recognition program for performing more accurate character recognition can be provided.
[0055]
According to the twentieth aspect of the present invention, in the handwritten character recognition program for performing character recognition of a handwritten character image of a line having a predetermined width generated from a handwritten character string represented by a plurality of stroke data, By causing a computer to execute a line width changing procedure for changing the stroke width based on the positional relationship of the stroke data, it is possible to provide a character recognition program that produces a high-quality character image and performs more accurate character recognition.
[0056]
BEST MODE FOR CARRYING OUT THE INVENTION
(Character recognition device)
Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 5 shows an example of the
[0057]
The
[0058]
The
[0059]
Details of the
[0060]
Stroke data as input data of the
[0061]
(Stroke data format)
FIG. 6 shows a format of the stroke data. The stroke data includes a sequence indicating the order of coordinates, an X coordinate, a Y coordinate, a time stamp indicating the time at which the coordinates were obtained, and a pen up / down indicating whether or not writing is in progress (pen down is writing). And five. This is a data block representing one coordinate, and a set of this data block is stroke data.
[0062]
The
[0063]
(Image generator (1))
FIG. 7 is a diagram (part 1) for explaining the configuration of the
[0064]
The
[0065]
The
[0066]
The
[0067]
Based on the line width specified by the
[0068]
When the writing of the stroke data into the
[0069]
The operation of the
[0070]
The
[0071]
The
[0072]
When the writing of the stroke data into the
[0073]
(Line width changer)
FIG. 8 is a diagram for explaining the configuration of the
[0074]
The
[0075]
An operation example of the
[0076]
(Direction judgment device)
FIG. 9 is a diagram for describing the
[0077]
The
[0078]
The
[0079]
The operation example of FIG. 9 is shown below. The
[0080]
For example, if the angle of the straight line connecting the coordinates 1 (x1, y1) and the coordinates 2 (x2, y2) is 0 degree, the
[0081]
(Line width calculator 52 (part 1))
FIG. 10 is a diagram (part 1) for explaining the configuration of the
[0082]
The
[0083]
A predetermined line width is input as an initial value to the
[0084]
The
[0085]
The
[0086]
The initial value of the line width input from the
[0087]
The
[0088]
FIG. 10B is a diagram for explaining a relationship between the inclination degree θt and the selected line width. If the stroke is close to horizontal (θt = 2), the
[0089]
For example, the
[0090]
An example of the operation of the
[0091]
The
[0092]
The
[0093]
The
[0094]
The value of θt obtained from the
[0095]
The value of θt obtained from the
[0096]
(Line width calculator (Part 2))
FIG. 11 is a diagram (part 2) for explaining the configuration of the
[0097]
The
[0098]
The
[0099]
The
[0100]
The
[0101]
The
[0102]
The
[0103]
The
[0104]
Therefore, the
[0105]
If the value of the line width set as an initial value in the
[0106]
If the value of the line width set as the initial value in the
[0107]
Hereinafter, an operation example of the
[0108]
The
[0109]
The
[0110]
The
[0111]
When the value of the line width of the initial value set in the
[0112]
The
[0113]
The
[0114]
When the line width of the initial value set in the
[0115]
The
[0116]
The
[0117]
(Line width calculator (Part 3))
FIG. 12 is a diagram (part 3) for explaining the configuration of the
[0118]
The
[0119]
A predetermined line width is input as an initial value to the
[0120]
The
[0121]
The
[0122]
The
[0123]
Hereinafter, an operation example of the
[0124]
The
[0125]
The
[0126]
(Line width calculator (Part 4))
FIG. 13 is a diagram (part 4) for explaining the configuration of the
[0127]
The
[0128]
The
[0129]
An operation example of the
[0130]
The
[0131]
The
[0132]
The
[0133]
When the value of the line width of the initial value set in the
[0134]
The
[0135]
The
[0136]
When the value of the line width of the initial value set in the
[0137]
The
[0138]
The
[0139]
(Address generator (Part 1))
FIG. 14 is a diagram for explaining the configuration of the
[0140]
The
[0141]
The
[0142]
The drawing coordinate
[0143]
(Drawing coordinate generator)
FIG. 15 is a diagram for explaining an operation example of the drawing coordinate
[0144]
The drawing coordinate
[0145]
The
[0146]
(Image generator (Part 2))
FIG. 16 is a diagram (part 2) for describing the configuration of the
[0147]
Although the
[0148]
The
[0149]
The
[0150]
The operation of the
[0151]
Further, the
[0152]
When the writing of the stroke data into the
[0153]
(Address generator (Part 2))
FIG. 17 is a diagram for explaining the configuration of the
[0154]
The
[0155]
The
[0156]
The pen down
[0157]
The parallel /
[0158]
The 1/3
[0159]
The drawing coordinate
[0160]
The
[0161]
An operation example of the
[0162]
The
[0163]
The parallel /
[0164]
The outputted minimum distance is reduced to 1/3 by the 1/3
[0165]
The drawing coordinate
[0166]
(Parallel / distance detector)
FIG. 18 is a diagram for explaining the configuration of the parallel /
[0167]
The
[0168]
The
[0169]
The
[0170]
The
[0171]
The
[0172]
An operation example of the parallel /
[0173]
Subsequently, the parallel /
[0174]
For example, assuming that the threshold value is 5 degrees, if the difference between θi and θj, | θi−θj |, is smaller than 5 degrees, the two stroke data are determined to be parallel. It is determined that the two stroke data are non-parallel.
[0175]
The parallel /
[0176]
An operation example of the parallel /
[0177]
(Flowchart of image creation processing in image creator (part 1))
Hereinafter, an example of the image generation processing will be described using a flowchart. FIG. 19 is a diagram for describing an example of an image generation process in the
[0178]
In FIG. 19, in step S1, the
[0179]
After step S2, the process proceeds to step S3. In step S3, the
[0180]
Proceeding to step S4 following step S3, in step S4, the
[0181]
Proceeding to step S5 following step S4, in step S5, the
[0182]
After step S5, the process proceeds to step S6. In step S6, it is determined whether the processing has been completed for all coordinates. If it is determined that the process has been completed (YES in step S6), the process proceeds to step S7. If it is determined that the process has not been completed (NO in step S6), the process proceeds to step S8.
[0183]
In step S7, the
[0184]
(Flow chart of the line width changing process in the line width changing device)
FIG. 20 is a diagram for explaining an example of the line width changing process (step S4) in the line
[0185]
20, in step S11, the
[0186]
After step S11, the process proceeds to step S12. In step S12, the
[0187]
(Flow chart of the direction determination process in the direction determiner)
FIG. 21 is a diagram for explaining an example of the direction determination process (step S11) in the
[0188]
After step S21, the process proceeds to step S22. In step S22, the
[0189]
After step S22, the process proceeds to step S23. In step S23, the
[0190]
(Flow chart of line width calculation processing in line width calculator (No. 1))
FIG. 22 is a diagram for explaining an example of the line width calculation process (step S12) in the
[0191]
In FIG. 22, in step S31, the initial value of the line width is input to the
[0192]
After step S32, the process proceeds to step S33. In step S33, the
[0193]
In step S34, the
[0194]
In step S35, the
[0195]
In step S36, the
[0196]
(Flowchart of line width calculation processing in line width calculator (part 2))
FIG. 23 is a view for explaining another example of the line width calculation process (the step S12) in the
[0197]
23, in step S41, the initial value of the line width is input from the
[0198]
After step S42, the process proceeds to step S43. In step S43, the
[0199]
In step S44, the
[0200]
In step S45, the
[0201]
In step S46, the
[0202]
In step S47, the
[0203]
In step S48, the
[0204]
In step S49, the
[0205]
In step S50, the
[0206]
In step S51, the
[0207]
In step S52, the
[0208]
(Flowchart of line width calculation processing in line width calculator (part 3))
FIG. 24 is a diagram for explaining an example of the line width calculation process (step S12) in the
[0209]
24, in step S61, the initial value of the line width of the
[0210]
After step S62, the process proceeds to step S63, in which it is determined whether the selector θt in FIG. 12 is 0 (zero). If it is determined that θt is 0 (YES in step S63), the process proceeds to step S65. If it is determined that θt is not 0 (NO in step S63), the process proceeds to step S64.
[0211]
In step S64, the
[0212]
In step S65, the
[0213]
In step S66, the
[0214]
(Flowchart of line width calculation processing in line width calculator (No. 4))
FIG. 25 is a diagram for explaining an example of the line width calculation process (step S12) in the
[0215]
25, in step S71, the initial value of the line width is input from the
[0216]
Proceeding to step S73 following step S72, in step S73, the
[0217]
In step S74, the
[0218]
In step S75, the
[0219]
In step S76, the
[0220]
In step S77, the
[0221]
In step S78, the
[0222]
In step S79, the
[0223]
In step S80, the
[0224]
In step S81, the
[0225]
In step S82, the
[0226]
(Flowchart of stroke image generation processing in address generator)
FIG. 26 is a diagram for explaining an example of the stroke image generation process (the step S5) in the
[0227]
In FIG. 26, in step S91, the pen down
[0228]
In step S92, the drawing coordinate
[0229]
Subsequent to step S93, the process proceeds to step S94. In step S94, a value is written to the address mentioned in step S93.
[0230]
(Flowchart of image generation processing in image generator (part 2))
FIG. 27 is a diagram illustrating an example of an image generation process in the
[0231]
27, in step S101, the
[0232]
After step S101, the process proceeds to step S102. In step S102, the
[0233]
After step S102, the process proceeds to step S103. In step S103, the
[0234]
After step S103, the process proceeds to step S104. In step S104, the
[0235]
(Flowchart of stroke image generation processing in address generator)
FIG. 28 is a view for explaining an example of the stroke image generation processing (the above-described step S103) in the
[0236]
In FIG. 28, in a step S111, 1 is substituted for a variable i. After step S111, the process proceeds to step S112. In step S112, the
[0237]
After step S112, the process proceeds to step S113. In step S113, the pen-down
[0238]
In step S114, the drawing coordinate
[0239]
In step S116, 1 is substituted for a variable j. Proceeding to step S117 following step S116, in step S117, the
[0240]
After step S117, the process proceeds to step S118. In step S118, the pen-down
[0241]
In step S119, the parallel /
[0242]
In step S120, the parallel /
[0243]
In step S121, it is determined whether the image generation processing of the
[0244]
In step S123, the 1/3
[0245]
After step S123, the process proceeds to step S124. In step S124, the drawing coordinate
[0246]
After step S125, the process proceeds to step S126. In step S126, the
[0247]
After step S126, the process proceeds to step S127. In step S127, the drawing coordinate
[0248]
(Flowchart of parallel determination processing in parallel / distance determiner)
FIG. 29 is a view for explaining an example of the parallel determination process (step S120) in the parallel /
[0249]
29, in step S131, the parallel /
[0250]
After step S132, the process proceeds to step S133. In step S133, the parallel /
[0251]
After step S134, the process proceeds to step S135. In step S135, the
[0252]
After step S135, the process proceeds to step S136. In step S136, the
[0253]
(Flowchart of distance calculation processing in parallel / distance determiner)
FIG. 30 is a view for explaining an example of the distance calculation processing (step S120) in the parallel /
[0254]
In FIG. 30, in step S141, the parallel /
[0255]
After step S142, the process proceeds to step S143. In step S143, the
[0256]
After step S146, the process proceeds to step S147. In step S147, the
[0257]
After step S147, the process proceeds to step S148. In step S148, the
[0258]
In step S149, the
[0259]
【The invention's effect】
As described above, according to the present invention, highly accurate character recognition can be performed.
[0260]
[Brief description of the drawings]
FIG. 1 is a configuration diagram of a conventional character recognition device using a bitmap data reading method.
FIG. 2 is a configuration diagram of a conventional character recognition device using a time-series coordinate data reading method.
FIG. 3 is a diagram for explaining an example of creating a character image based on handwritten coordinate data and performing character recognition using a character “A”;
FIG. 4 is a diagram for explaining an example in which a character image is created based on handwritten coordinate data and character recognition is performed using the character “East”;
FIG. 5 is a diagram showing an example of a character recognition device according to the present invention.
FIG. 6 is a diagram showing a format of stroke data.
FIG. 7 is a diagram (part 1) for describing the configuration of an image generator;
FIG. 8 is a diagram illustrating a configuration of a line width changer.
FIG. 9 is a diagram for describing a direction determiner in detail.
FIG. 10 is a diagram (part 1) for describing the configuration of a line width calculator;
FIG. 11 is a diagram (part 2) for explaining the configuration of the line width calculator;
FIG. 12 is a diagram (part 3) for explaining the configuration of the line width calculator;
FIG. 13 is a diagram (part 4) for explaining the configuration of the line width calculator;
FIG. 14 is a diagram (part 1) for describing the configuration of an address generator;
FIG. 15 is a diagram for describing an operation example of a drawing coordinate generator.
FIG. 16 is a diagram (part 2) for explaining the configuration of the image generator;
FIG. 17 is a diagram (part 2) for describing the configuration of the address generator;
FIG. 18 is a diagram illustrating a configuration of a parallel / distance determination device.
FIG. 19 is a diagram illustrating an example of an image generation process in the image generator using a flowchart.
FIG. 20 is a diagram illustrating an example of a line width changing process (step S4) in the line width changing device, using a flowchart.
FIG. 21 is a diagram illustrating an example of a direction determination process (step S11) in a direction determiner using a flowchart.
FIG. 22 is a diagram (part 1) for describing an example of a line width calculation process (step S12) in the line width calculator using a flowchart.
FIG. 23 is a diagram (part 2) illustrating an example of a line width calculation process (step S12) in the line width calculator using a flowchart.
FIG. 24 is a diagram (part 3) for describing an example of the line width calculation process (step S12) in the line width calculator using a flowchart.
FIG. 25 is a diagram (part 4) for describing an example of the line width calculation process (step S12) in the line width calculator using a flowchart.
FIG. 26 is a diagram illustrating an example of a stroke image generation process (step S5) in the address generator using a flowchart.
FIG. 27 is a diagram illustrating an example of an image generation process in the image generator using a flowchart.
FIG. 28 is a diagram illustrating an example of a stroke image generation process (step S103) in the address generator using a flowchart.
FIG. 29 is a diagram illustrating an example of a parallel determination process (step S120) in the parallel / distance determiner using a flowchart.
FIG. 30 is a diagram illustrating an example of a distance calculation process (step S120) in the parallel / distance determiner using a flowchart.
[Explanation of symbols]
10 Character recognition device
11 Handwriting input device
12 Communication unit
13 Image forming unit
14 Character Recognition Unit
15 Storage unit
20 character recognition device
21 Handwriting input device
22 Communication unit
23 Character recognition unit
24 storage unit
30 character recognition device
31 Image Creator
32 Image Generator
33 Line width changer
34 character recognizer
35 storage unit
41 area judgment device
42 buffers
43 Address Generator
44 Image memory
45 registers
51 Direction judgment device
52 Line width calculator
53 registers
61 Angle calculator
62 Angle converter
71 registers
72 registers
73 adder
74 Subtractor
75 Selector
81 registers
82 registers
83 adder
84 Subtractor
85 Selector
86 comparator
87 comparator
88 selector
89 Selector
91 registers
92 registers
93 Multiplier
94 Multiplier
95 Selector
101 Register
102 registers
103 Multiplier
104 Multiplier
105 Selector
106 comparator
107 comparator
108 Selector
109 Selector
111 Pen-down detector
112 Pen down detector
113 AND circuit
114 Drawing coordinate generator
115 encoder
121 memory
122 address generator
130 Data reader
131 Pen down judgment device
132 Pen down judgment device
133 AND circuit
134 Pen Down Judge
135 pen down judgment device
136 AND circuit
137 Parallel / Distance Judge
138 registers
139 1/3 container
140 Minimum value selector
141 Drawing coordinate generator
142 encoder
151 Angle calculator
152 Angle calculator
153 Subtractor
154 comparator
155 Distance calculator
156 Distance calculator
157 Distance calculator
158 Distance calculator
159 Minimum value calculator
160 registers
161 comparator
Claims (20)
前記所定幅を当該ストロークデータの方向に基づいて変更する線幅変更手段を有することを特徴とする手書き文字認識装置。In a handwritten character recognition device for performing character recognition of a handwritten character image of a line of a predetermined width generated from a handwritten character string represented by a plurality of stroke data,
A handwritten character recognition device comprising a line width changing means for changing the predetermined width based on the direction of the stroke data.
所定の値を記憶する第二記憶装置とを更に有し、
前記細線化手段は、前記第一記憶装置に記憶されている値から前記第二記憶装置に記憶されている値を減算し、その減算した値に基づいて線幅を決定することを特徴とする請求項2記載の手書き文字認識装置。A first storage device that stores a value that defines the predetermined width,
A second storage device for storing a predetermined value,
The thinning means subtracts a value stored in the second storage device from a value stored in the first storage device, and determines a line width based on the subtracted value. The handwritten character recognition device according to claim 2.
前記第一記憶装置に記憶されている値が、前記第一判定器の判定により、前記所定の値より小さいと判定された場合は、前記細線化手段は、前記第一記憶装置に記憶されている値から前記第二記憶装置に記憶されている値を減算しないことを特徴とする請求項3記載の文字認識装置。Further comprising a first determiner to determine whether the value stored in the first storage device is smaller than a predetermined value,
When the value stored in the first storage device is determined by the first determiner to be smaller than the predetermined value, the thinning unit is stored in the first storage device. 4. The character recognition device according to claim 3, wherein the value stored in the second storage device is not subtracted from the stored value.
1未満の所定の値を記憶する第三記憶装置とを更に有し、
前記細線化手段は、前記第一記憶装置に記憶されている値に前記第三装置に記憶されている値を乗算し、その乗算した値に基づいて線幅を決定することを特徴とする請求項2記載の手書き文字認識装置。A first storage device that stores a value that defines the predetermined width,
A third storage device that stores a predetermined value less than 1.
The thinning means multiplies a value stored in the first storage device by a value stored in the third device, and determines a line width based on the multiplied value. Item 2. The handwritten character recognition device according to Item 2.
前記第一記憶装置に記憶されている値が、前記第一判定器の判定により、前記所定の値より小さいと判定された場合は、前記細線化手段は、前記第一記憶装置に記憶されている値に前記第三記憶装置に記憶されている値を乗算しないことを特徴とする請求項5記載の文字認識装置。Further comprising a first determiner to determine whether the value stored in the first storage device is smaller than a predetermined value,
When the value stored in the first storage device is determined by the first determiner to be smaller than the predetermined value, the thinning unit is stored in the first storage device. 6. The character recognition device according to claim 5, wherein the value stored is not multiplied by the value stored in the third storage device.
所定の値を記憶する第四記憶装置とを更に有し、
前記太線化手段は、前記第一記憶装置に記憶されている値に前記第四記憶装置に記憶されている値を加算し、その加算した値に基づいて線幅を決定することを特徴とする請求項7記載の手書き文字認識装置。A first storage device that stores a value that defines the predetermined width,
A fourth storage device for storing a predetermined value,
The thick line adding means adds a value stored in the fourth storage device to a value stored in the first storage device, and determines a line width based on the added value. The handwritten character recognition device according to claim 7.
前記第一記憶装置に記憶されている値が、前記第二判定器の判定により、前記所定の値より大きいと判定された場合は、前記太線化手段は、前記第一記憶装置に記憶されている値に前記第四記憶装置に記憶されている値を加算しないことを特徴とする請求項8記載の文字認識装置。Further comprising a second determiner to determine whether the value stored in the first storage device is greater than a predetermined value,
If the value stored in the first storage device is determined by the second determiner to be greater than the predetermined value, the thickening means is stored in the first storage device. 9. The character recognition device according to claim 8, wherein the value stored in the fourth storage device is not added to the value.
1を超える所定の値を記憶する第五記憶装置とを更に有し、
前記太線化手段は、前記第五記憶装置に記憶されている値に前記第二記憶装置に記憶されている値を乗算し、その乗算した値に基づいて線幅を決定することを特徴とする請求項7記載の手書き文字認識装置。A first storage device that stores a value that defines the predetermined width,
A fifth storage device for storing a predetermined value exceeding 1;
The thickening means multiplies a value stored in the fifth storage device by a value stored in the second storage device, and determines a line width based on the multiplied value. The handwritten character recognition device according to claim 7.
前記第一記憶装置に記憶されている値が、前記第二判定器の判定により、前記所定の値より大きいと判定された場合は、前記太線化手段は、前記第一記憶装置に記憶されている値に前記第五記憶装置に記憶されている値を乗算しないことを特徴とする請求項10記載の文字認識装置。Further comprising a second determiner to determine whether the value stored in the first storage device is greater than a predetermined value,
If the value stored in the first storage device is determined by the second determiner to be greater than the predetermined value, the thickening means is stored in the first storage device. 11. The character recognition device according to claim 10, wherein a value stored is not multiplied by a value stored in the fifth storage device.
前記所定幅を細くする細線化手段と、
前記所定幅を太くする太線化手段とを有することを特徴とする請求項1記載の手書き文字認識装置。The line width changing means,
Thinning means for narrowing the predetermined width;
2. The handwritten character recognition device according to claim 1, further comprising a thickening unit that increases the predetermined width.
前記所定幅を隣接するストロークデータの位置関係に基づいて変更する線幅変更手段を有することを特徴とする手書き文字認識装置。In a handwritten character recognition device for performing character recognition of a handwritten character image of a line of a predetermined width generated from a handwritten character string represented by a plurality of stroke data,
A handwritten character recognition device comprising a line width changing means for changing the predetermined width based on a positional relationship between adjacent stroke data.
該距離・角度算出手段により算出された距離に基づいて、前記ストロークデータから生成された線幅を決めることを特徴とする請求項14記載の手書き文字認識装置。Further having a distance and angle calculation means for calculating the distance and angle between the stroke data and adjacent stroke data,
15. The handwritten character recognition device according to claim 14, wherein a line width generated from the stroke data is determined based on the distance calculated by the distance / angle calculation unit.
前記所定幅を当該ストロークデータの方向に基づいて変更する線幅変更段階を有することを特徴とする手書き文字認識方法。In a handwritten character recognition method for performing character recognition of a handwritten character image of a line of a predetermined width generated from a handwritten character string represented by a plurality of stroke data,
A method for recognizing handwritten characters, comprising a step of changing the predetermined width based on a direction of the stroke data.
前記所定幅を隣接するストロークデータの位置関係に基づいて変更する線幅変更段階を有することを特徴とする手書き文字認識方法。In a handwritten character recognition method for performing character recognition of a handwritten character image of a line of a predetermined width generated from a handwritten character string represented by a plurality of stroke data,
A method for recognizing handwritten characters, comprising a line width changing step of changing the predetermined width based on a positional relationship between adjacent stroke data.
前記所定幅を当該ストロークデータの方向に基づいて変更する線幅変更手順をコンピュータに実行させることを特徴とする手書き文字認識プログラム。In a handwritten character recognition program for performing character recognition of a handwritten character image of a line of a predetermined width generated from a handwritten character string represented by a plurality of stroke data,
A program for causing a computer to execute a line width changing procedure of changing the predetermined width based on the direction of the stroke data.
前記所定幅を隣接するストロークデータの位置関係に基づいて変更する線幅変更手順をコンピュータに実行させることを特徴とする手書き文字認識プログラム。In a handwritten character recognition program for performing character recognition of a handwritten character image of a line of a predetermined width generated from a handwritten character string represented by a plurality of stroke data,
A program for causing a computer to execute a line width changing procedure for changing the predetermined width based on a positional relationship between adjacent stroke data.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002242551A JP4130106B2 (en) | 2002-08-22 | 2002-08-22 | Handwritten character recognition device, handwritten character recognition method, and handwritten character recognition program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002242551A JP4130106B2 (en) | 2002-08-22 | 2002-08-22 | Handwritten character recognition device, handwritten character recognition method, and handwritten character recognition program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004086256A true JP2004086256A (en) | 2004-03-18 |
JP4130106B2 JP4130106B2 (en) | 2008-08-06 |
Family
ID=32051604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002242551A Expired - Fee Related JP4130106B2 (en) | 2002-08-22 | 2002-08-22 | Handwritten character recognition device, handwritten character recognition method, and handwritten character recognition program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4130106B2 (en) |
-
2002
- 2002-08-22 JP JP2002242551A patent/JP4130106B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP4130106B2 (en) | 2008-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2012203458A (en) | Image processor and program | |
US10579868B2 (en) | System and method for recognition of objects from ink elements | |
US20230008529A1 (en) | Gesture stroke recognition in touch-based user interface input | |
JP6055065B1 (en) | Character recognition program and character recognition device | |
JP2000235619A (en) | Surface image processor and its program storage medium | |
US20210365179A1 (en) | Input apparatus, input method, program, and input system | |
JP4565396B2 (en) | Image processing apparatus and image processing program | |
JP2002207964A (en) | Device and method for image processing for generating binary image from multi-valued image | |
TWM623309U (en) | English font image recognition system | |
JP2940956B2 (en) | Line figure feature extraction method | |
CN115359502A (en) | Image processing method, device, equipment and storage medium | |
CN113392820B (en) | Dynamic gesture recognition method and device, electronic equipment and readable storage medium | |
JP2006227824A (en) | Drawing recognition method and device | |
JP2004086256A (en) | Device, method and program for recognizing handwritten character | |
WO2020080300A1 (en) | Input apparatus, input method, program, and input system | |
JP4350228B2 (en) | Pattern recognition method and apparatus | |
JP2000076378A (en) | Character recognizing method | |
JP6503850B2 (en) | Range specification program, range specification method and range specification apparatus | |
JP3577191B2 (en) | Image processing method and apparatus | |
EP4086744A1 (en) | Gesture stroke recognition in touch-based user interface input | |
JP2010092159A (en) | Image data decision device, image data decision system and program | |
KR101730711B1 (en) | Method and apparatus for restoring drawing order of stroke | |
JP2755299B2 (en) | Image processing method | |
JP2022176360A (en) | Recognition processing device, recognition processing program, recognition processing method, and recognition processing system | |
CN113128603A (en) | Text classification method, device, equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050218 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071220 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080108 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080307 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080422 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080520 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110530 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120530 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120530 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130530 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130530 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |