JPH0934994A - Handwritten character recognizing device and facsimile equipment - Google Patents
Handwritten character recognizing device and facsimile equipmentInfo
- Publication number
- JPH0934994A JPH0934994A JP7299610A JP29961095A JPH0934994A JP H0934994 A JPH0934994 A JP H0934994A JP 7299610 A JP7299610 A JP 7299610A JP 29961095 A JP29961095 A JP 29961095A JP H0934994 A JPH0934994 A JP H0934994A
- Authority
- JP
- Japan
- Prior art keywords
- character
- image data
- buffer
- counter
- histogram
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Character Input (AREA)
- Facsimile Transmission Control (AREA)
Abstract
Description
【0001】[0001]
【産業上の利用分野】この発明は手書き文字認識装置お
よびそれを利用するファクシミリ装置に関し、特にたと
えば送信原稿上に手書きされた宛先情報を読み取り、こ
の読み取った宛先情報に基づいて発呼するような、ファ
クシミリ装置における手書き文字認識装置に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a handwritten character recognition apparatus and a facsimile apparatus using the same, and more particularly to reading handwritten address information on a transmission original and making a call based on the read address information. , A handwritten character recognition device in a facsimile device.
【0002】[0002]
【従来の技術】たとえば、平成1年7月11日付で出願
公開された特開平1−175363号公報〔H04N
1/32〕には、送信原稿に記載されている宛先情報を
読み取り、この読み取った宛先情報に基づいて自動ダイ
ヤルを行う、ファクシミリ装置が開示されている。この
従来技術では、送信原稿の所定位置に手書き欄を設け、
そこに宛先電話番号を手書きし、この手書き宛先電話番
号を文字認識部によって読み取るようにしている。2. Description of the Related Art For example, Japanese Patent Application Laid-Open No. 1-175363 [H04N, which was published on July 11, 1991, has been published.
1/32] discloses a facsimile apparatus that reads destination information described in a transmission document and performs automatic dialing based on the read destination information. In this conventional technique, a handwriting section is provided at a predetermined position of the transmission original,
The destination telephone number is handwritten there, and the handwritten destination telephone number is read by the character recognition unit.
【0003】[0003]
【発明が解決しようとする課題】上述の従来技術のよう
な自動ダイヤルファクシミリ装置においては、誤送信を
防ぐために、手書き宛先情報の文字を正確に認識する必
要がある。そのために、各手書き文字を正確に切り出す
必要がある。ところが、上述の従来技術では、手書き宛
先情報の具体的な認識方法は、文字の切り出し方法は勿
論のこと、何ら開示していない。In the above-mentioned automatic dial facsimile apparatus of the prior art, it is necessary to accurately recognize the characters of the handwritten address information in order to prevent erroneous transmission. Therefore, it is necessary to accurately cut out each handwritten character. However, in the above-mentioned related art, no specific method of recognizing the handwriting destination information is disclosed, let alone a method of cutting out characters.
【0004】他方、送信原稿に宛先情報の文字を手書き
する場合、ユーザは必ずしも均等な文字間スペースで各
文字を記入するとは限らない。極端な場合には、或る方
向、たとえば副走査方向からみたとき各文字が重なった
ような状態で手書きされることもある。このような場合
でも、宛先情報の各文字を正確に認識できなければ自動
ダイヤルファクシミリ装置の実用化は不可能である。On the other hand, when the characters of the destination information are handwritten on the transmission original, the user does not always write each character in an even space between characters. In an extreme case, the characters may be handwritten as if they were overlapped when viewed from a certain direction, for example, the sub-scanning direction. Even in such a case, the automatic dial facsimile apparatus cannot be put into practical use unless each character of the destination information can be accurately recognized.
【0005】しかしながら、この種の従来技術のいずれ
にも、重なり文字を正確に切り出す方法はなく、したが
って、殆どの従来技術においては、たとえば、平成4年
4月14日付で出願公告された特公平4−21914号
〔G06K 9/03〕や平成5年8月13日付で出願
公開された特開平5−207256号〔H04N 1/
32〕または平成6年4月25日付で出願公開された特
開平6−105025号〔H04N 1/00〕のよう
に、各文字の個別の記入欄を予め設け、この記入欄に記
入された宛先情報の文字を切り出すようにしている。と
ころが、各文字個別の記入欄を予め指定する従来技術で
は、文字を記入欄に記入するのが煩瑣であり、そのため
に、この種の自動ダイヤルファクシミリ装置が未だ実用
化されるには至っていないのである。However, there is no method for accurately cutting out overlapping characters in any of the prior arts of this type, and therefore, in most of the prior arts, for example, Japanese Patent Publication No. No. 4-21914 [G06K 9/03] and Japanese Patent Application Laid-Open No. 5-207256 [H04N 1 / A1 filed on August 13, 1993]
32] or Japanese Patent Laid-Open No. 6-105025 [H04N 1/00], which was published on April 25, 1994, in which an individual entry field for each character is provided in advance and the address entered in this entry field The information characters are cut out. However, in the prior art in which the entry field for each character is designated in advance, it is troublesome to enter the character in the entry field, and therefore, this kind of automatic dial facsimile apparatus has not been put to practical use yet. is there.
【0006】それゆえに、この発明の主たる目的は、宛
先情報を正確に認識することができる、ファクシミリ装
置を提供することである。この発明の他の目的は、手書
き文字を正確に切り出すことができる、手書き文字認識
装置を提供することである。Therefore, a main object of the present invention is to provide a facsimile apparatus capable of accurately recognizing destination information. Another object of the present invention is to provide a handwritten character recognition device that can accurately cut out handwritten characters.
【0007】[0007]
【課題を解決するための手段】この発明は、手書き文字
を読み取ったイメージデータから各手書き文字を認識す
る手書き文字認識装置であって、イメージデータをスト
アするラインバッファメモリ手段(34)、ラインバッファ
メモリ手段のイメージデータを所定ビット数毎にまとめ
た粗イメージデータをストアするイメージバッファ手段
(38)、ラインバッファメモリ手段のイメージデータに基
づいて求められた1方向のヒストグラムをストアするヒ
ストグラムバッファ手段(40)、ヒストグラムに基づいて
手書き文字の概略水平方向位置を求める第1手段(S43)
、粗イメージデータに基づいて手書き文字の概略垂直
方向位置を求める第2手段(S44) 、および概略水平方向
位置および概略垂直方向位置に基づいてラインバッファ
手段を参照して手書き文字の切り出し位置を求める第3
手段(S46) を備える、手書き文字認識装置である。SUMMARY OF THE INVENTION The present invention is a handwritten character recognition device for recognizing each handwritten character from image data obtained by reading a handwritten character, the line buffer memory means (34) for storing the image data, and the line buffer. Image buffer means for storing rough image data in which the image data in the memory means is collected every predetermined number of bits
(38), a histogram buffer means (40) for storing a one-direction histogram obtained based on the image data of the line buffer memory means, and a first means (S43) for obtaining an approximate horizontal position of the handwritten character based on the histogram.
A second means (S44) for obtaining the approximate vertical position of the handwritten character based on the rough image data, and a cutout position of the handwritten character by referring to the line buffer means based on the approximate horizontal position and the approximate vertical position. Third
It is a handwritten character recognition device comprising means (S46).
【0008】[0008]
【作用】たとえばCISで読み取られた送信原稿上の手
書き宛先情報の各文字のイメージデータがたとえばビッ
トマップのラインバッファ手段にストアされる。粗イメ
ージデータは、ラインバッファのイメージデータのたと
えば8×8ドットの範囲の第1論理状態たとえば「1」
のビット数を示すデータあり、たとえばバイトマップの
イメージバッファ手段にストアされる。一方、ヒストグ
ラム作成手段では、1つの方向たとえばX方向(主走査
方向)のヒストグラムを作成し、それをヒストグラムバ
ッファ手段に格納する。第1手段はそのヒストグラムに
基づいて各文字の概略X方向位置を求め、第2手段はイ
メージバッファの粗イメージデータに基づいて各文字の
概略Y方向位置を求める。そして、第3手段が、概略X
方向位置および概略Y方向位置とに基づいて、ラインバ
ッファ手段を参照して、各文字の詳細切り出し位置を求
める。The image data of each character of the handwritten address information on the transmission original read by CIS, for example, is stored in, for example, the bit line line buffer means. The coarse image data is the first logical state, for example, “1” in the range of 8 × 8 dots of the image data in the line buffer.
Is stored in the image buffer means of a byte map, for example. On the other hand, the histogram creating means creates a histogram in one direction, for example, the X direction (main scanning direction), and stores it in the histogram buffer means. The first means obtains the approximate X-direction position of each character based on the histogram, and the second means obtains the approximate Y-direction position of each character based on the rough image data in the image buffer. Then, the third means is roughly X
The detailed cut-out position of each character is obtained by referring to the line buffer means based on the directional position and the approximate Y-direction position.
【0009】上記1方向において文字の重なりがあると
き、ラインバッファ手段のイメージデータに基づいて互
いに異なる少なくとも2方向のヒストグラムを作成し、
そしてその少なくとも2方向のヒストグラムに基づいて
概略X方向位置を求める。このとき、文字数が最も多く
なる方向または文字幅が最も小さくなる方向が選択さ
れ、その選択された方向のヒストグラムに基づいて概略
X方向位置を求めるようにしてもよい。When characters overlap in one direction, histograms for at least two different directions are created based on the image data of the line buffer means,
Then, the approximate X-direction position is obtained based on the histograms of at least two directions. At this time, the direction with the largest number of characters or the direction with the smallest character width may be selected, and the approximate X-direction position may be obtained based on the histogram of the selected direction.
【0010】[0010]
【発明の効果】この発明によれば、イメージバッファ手
段の粗イメージデータに基づいて概略位置を求めるよう
にしているので、概略位置を迅速に求めることができ
る。また、文字が重なったように手書きされていても、
各文字を正確に切り出すことができる。このとき、たと
えば、重なり部分にのみ複数方向のヒストグラムを作成
するようにしているので、最初から複数方向のヒストグ
ラムを作成する場合に比べて、迅速な処理が可能にな
る。According to the present invention, since the rough position is obtained based on the rough image data in the image buffer means, the rough position can be quickly obtained. Also, even if the characters are handwritten as if they overlap,
Each character can be cut out accurately. At this time, for example, since the histograms in a plurality of directions are created only in the overlapping portion, the processing can be performed more quickly than in the case of creating a histogram in a plurality of directions from the beginning.
【0011】この発明の上述の目的,その他の目的,特
徴および利点は、図面を参照して行う以下の実施例の詳
細な説明から一層明らかとなろう。The above and other objects, features and advantages of the present invention will become more apparent from the following detailed description of embodiments with reference to the drawings.
【0012】[0012]
【実施例】図1に示すこの発明の一実施例のファクシミ
リ装置10は、ハウジング12を含み、このハウジング
12の上面には、操作パネル14が形成される。操作パ
ネル14には、種々のキーが配置される。すなわち、操
作パネル14上には、「0〜9」,「*」および「#」
を含むテンキー16が設けられ、このテンキー16は、
たとえば、宛先情報を手動的に入力するため等に用いら
れる。このテンキー16の上方には、液晶表示器(LC
D:Licuid Crystal Display)18が設けられ、このLC
D18によって、ユーザに各種の入力を促すためのメッ
セージまたはエラー報知のためのメッセージを表示す
る。LCD18では、当然、宛先情報認識動作において
認識された宛先情報等の種々の表示が行われる。このL
CD18の近傍には、画質選択キー20が設けられ、こ
の画質選択キー20はノーマル送信モード,ファイン送
信モードおよび中間調送信モードのいずれかを選択す
る。DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT A facsimile machine 10 according to an embodiment of the present invention shown in FIG. 1 includes a housing 12, and an operation panel 14 is formed on the upper surface of the housing 12. Various keys are arranged on the operation panel 14. That is, “0-9”, “*” and “#” are displayed on the operation panel 14.
A numeric keypad 16 including is provided.
For example, it is used for manually inputting destination information. Above the numeric keypad 16, a liquid crystal display (LC
D: Licuid Crystal Display) 18 is provided, and this LC
A message for prompting the user for various inputs or a message for notifying an error is displayed by D18. The LCD 18 naturally displays various information such as the destination information recognized in the destination information recognition operation. This L
An image quality selection key 20 is provided in the vicinity of the CD 18, and the image quality selection key 20 selects one of the normal transmission mode, the fine transmission mode and the halftone transmission mode.
【0013】さらに、操作パネル14上には、停止/ク
リアキー22が設けられ、停止/クリアキー22は、全
ての動作を停止して待機状態にする機能と、登録モード
(ワンタッチ登録あるいは自局番号登録)において入力
された番号をクリアする機能と、登録モードそれ自体を
解除する機能とを果たす。この停止/クリアキー22
は、また、宛先情報認識動作においても操作される。た
とえば図10に示すように原稿を挿入した後、宛先情報
を認識する動作を開始するまでにこの停止/クリアキー
22が操作されると、その原稿を強制的に排出する。ま
た、図1に示すように挿入された原稿の宛先情報を認識
している間(LCD18に「バンゴウヨミトリチュウ」
と表示される)、停止/クリアキー22が操作される
と、宛先情報の認識動作を中断し、その認識結果を廃棄
する。ただし、この場合でも、ラインバッファ34(後
述)には、CIS(Contact Image Sensor)66(後述)
で読み取ったイメージデータは保持されている。Further, a stop / clear key 22 is provided on the operation panel 14, and the stop / clear key 22 has a function of stopping all operations to put it in a standby state and a registration mode (one-touch registration or own station). It performs the function of clearing the number entered in (number registration) and the function of canceling the registration mode itself. This stop / clear key 22
Is also operated in the destination information recognition operation. For example, as shown in FIG. 10, if the stop / clear key 22 is operated before the operation of recognizing the destination information is started after the document is inserted, the document is forcibly ejected. Further, while recognizing the destination information of the inserted document as shown in FIG. 1 (“Bangou Yomitorichu” on the LCD 18)
When the stop / clear key 22 is operated, the recognition operation of the destination information is interrupted and the recognition result is discarded. However, even in this case, the line buffer 34 (described later) has a CIS (Contact Image Sensor) 66 (described later).
The image data read by is held.
【0014】スタートキー24は動作を開始させるとき
に操作される。たとえば、図1に示すハンドセットがオ
フフック状態にあるときこのスタートキー24が操作さ
れると、原稿が挿入されたことに応じて送信動作が開始
され、原稿が挿入されていないときには受信動作が開始
される。また、ハンドセットがオンフック状態のとき、
宛先情報が手動的に入力されると、このスタートキー2
4の操作に応答して、ダイヤル動作が開始される。ま
た、送信原稿上に記入された宛先情報を認識する際に、
原稿が挿入された後このスタートキー24がオンされる
と、その送信原稿上に記入された手書き宛先情報の読み
取りを開始する。さらに、そのような宛先情報を認識し
た後にスタートキー24が操作されると、その認識した
宛先情報に従ったダイヤル動作、すなわち、発呼動作が
開始される。The start key 24 is operated when starting the operation. For example, when the start key 24 is operated while the handset shown in FIG. 1 is in the off-hook state, the transmission operation is started in response to the insertion of the original, and the reception operation is started when the original is not inserted. It Also, when the handset is on-hook,
When the destination information is manually entered, this start key 2
In response to the operation of 4, the dial operation is started. Also, when recognizing the destination information entered on the transmitted manuscript,
When the start key 24 is turned on after the document is inserted, the reading of the handwritten address information written on the transmitted document is started. Further, when the start key 24 is operated after recognizing such destination information, the dialing operation according to the recognized destination information, that is, the calling operation is started.
【0015】図2は、たとえば東芝製の「TC3516
7F」のようなシングルチップファクシミリプロセサを
含む図1実施例のブロック図である。CPU26と他の
コンポーネントとはバス28によって結合される。RO
M30は図3に示すように制御プログラム領域30a,
認識用辞書領域30bおよびメッセージ(可聴メッセー
ジまたは可視メッセージ)のためのデータ、すなわちメ
ッセージデータをストアするメッセージデータ領域30
cを含む。制御プログラム領域30aは、後述のフロー
図に従った制御プログラムを含む。認識用辞書領域30
bは、手書き宛先情報を認識するための辞書であり、パ
ターンマッチングのベクトルや複数のニューラルネット
ワークを含み、パターンマッチングのベクトルに応じて
ニューラルネットワークを選択することによって、送信
原稿上に記入された宛先情報を認識する。FIG. 2 shows, for example, "TC3516" manufactured by Toshiba.
FIG. 2 is a block diagram of the embodiment of FIG. 1 including a single-chip facsimile processor such as a “7F”. The CPU 26 and other components are connected by a bus 28. RO
M30 is a control program area 30a, as shown in FIG.
A dictionary data area 30b for recognition and data for a message (audible message or visible message), that is, a message data area 30 for storing message data.
c. The control program area 30a includes a control program according to a flow chart described later. Recognition dictionary area 30
Reference numeral b is a dictionary for recognizing handwritten address information, including a pattern matching vector and a plurality of neural networks, and selecting a neural network according to the pattern matching vector, the address written on the transmission manuscript. Recognize information.
【0016】認識用辞書領域30bは、さらに、図4に
示すようなビット数検出テーブル30dを含む。このビ
ット数検出テーブル30dは、所定数バイト(実施例で
は2バイト)中の黒ドット数をバイトデータに従って予
め計算して格納したテーブルである。ビット数検出テー
ブル30dは、イメージバッファ38(後述)にストア
される粗イメージデータを作成するに際して、ラインバ
ッファ34のたとえば8×8ドットの範囲内の黒ドット
数を検出する際に参照される。つまり、ビット数検出テ
ーブル30dは、イメージバッファ38にストアされる
粗イメージデータを作成する際に利用される。このよう
に、たとえば8×8ドットの範囲毎の黒ドット数を検出
する際にビット数検出テーブル30dを利用する方法
は、ラインバッファ34のイメージデータをビットシフ
トさせながらカウントする通常の方法に比べて、非常に
(たとえば、約8倍)高速に黒ドット数を検出すること
ができる。The recognition dictionary area 30b further includes a bit number detection table 30d as shown in FIG. The bit number detection table 30d is a table in which the number of black dots in a predetermined number of bytes (2 bytes in the embodiment) is calculated in advance according to byte data and stored. The bit number detection table 30d is referred to when detecting the number of black dots within the range of, for example, 8 × 8 dots in the line buffer 34 when creating the rough image data stored in the image buffer 38 (described later). That is, the bit number detection table 30d is used when creating the rough image data stored in the image buffer 38. In this way, for example, the method of using the bit number detection table 30d when detecting the number of black dots in each 8 × 8 dot range is compared with the normal method of counting the image data of the line buffer 34 while bit-shifting the image data. Thus, the number of black dots can be detected very quickly (for example, about 8 times).
【0017】VRAM32は、図5に示すようにたとえ
ば32Kバイト(=128×2048)のビットマップ
方式(ビット単位でアクセスする)のラインバッファ3
4を含む。ラインバッファ34は、原稿上の宛先情報を
CIS66で読み取ったイメージデータをストアする。
なお、このラインバッファ34の変数名は「line-buf
〔128 〕〔256 〕」である。As shown in FIG. 5, the VRAM 32 is, for example, a 32 Kbyte (= 128 × 2048) bit map type line buffer 3 (accessed in bit units).
Including 4. The line buffer 34 stores the image data obtained by reading the destination information on the document with the CIS 66.
The variable name of this line buffer 34 is "line-buf
[128] [256] ”.
【0018】他方、SRAM36はバイトマップ方式
(バイト単位でアクセスする)メモリであり、図6に示
すような各種のフラグ領域,カウンタ領域,変数レジス
タ領域等を含む。有効イメージ領域フラグAFは、CIS
66によって現在読み取っている原稿の領域が認識対象
となる宛先情報が記載された領域であるか否かを示すフ
ラグであり、AF=「0」が宛先情報領域以外の領域を示
し、AF=「1」が宛先情報領域を示す。エラーフラグEF
は、宛先情報を認識しているときにリジェクト文字が発
生したことまたは認識の中断の指示が発生したことを示
すフラグであり、EF=「0」はリジェクト文字の発生お
よび認識中断指示の発生のいずれもないことを示し、EF
=「1」はリジェクト文字の発生または認識中断指示の
発生があったことを示す。On the other hand, the SRAM 36 is a byte-mapped memory (accessed in byte units) and includes various flag areas, counter areas, variable register areas, etc. as shown in FIG. Effective image area flag AF is CIS
A flag indicating whether or not the area of the document currently being read by 66 is the area in which the destination information to be recognized is described. AF = “0” indicates an area other than the destination information area, and AF = “ “1” indicates the destination information area. Error flag EF
Is a flag indicating that a reject character occurred while recognizing the destination information or an instruction to interrupt the recognition occurred. EF = "0" indicates that the reject character occurred and the instruction to interrupt the recognition occurred. EF indicating that neither
= “1” indicates that a reject character is generated or a recognition interruption instruction is generated.
【0019】原稿送りカウンタPCNTは、宛先情報を認識
するためにCIS66によって読み取られた原稿の副走
査方向のライン数をカウントするためのカウンタであ
る。書込ラインカウンタLCNTは、宛先情報を認識するた
めにCIS66で読み取ったイメージデータを書き込む
ラインバッファ34のライン数をカウントするカウンタ
である。有効ラインカウンタBCNTは、主走査方向に2以
上の黒ドットが連続するライン(有効ライン)が連続し
て出現する数をカウントするカウンタである。全白ライ
ンカウンタWCNTは、主走査方向に2以上の黒ドットが連
続しないライン(全白ライン)が連続して出現する数を
カウントするためのカウンタである。第1カラムカウン
タ〜第2048カラムカウンタは、図5に示すラインバ
ッファ34の各カラム毎の黒ドット数をカウントするカ
ウンタであり、第1カラムカウンタ1CCNT ,第2カラム
カウンタ2CCNT ,第3カラムカウンタ3CCNT ,…,第2
048カラムカウンタ2048CCNTを含む。The document feed counter PCNT is a counter for counting the number of lines in the sub-scanning direction of the document read by the CIS 66 to recognize the destination information. The write line counter LCNT is a counter that counts the number of lines in the line buffer 34 in which the image data read by the CIS 66 is written in order to recognize the destination information. The valid line counter BCNT is a counter that counts the number of consecutive lines (valid lines) in which two or more black dots are continuous in the main scanning direction. The all-white line counter WCNT is a counter for counting the number of consecutive lines (all-white lines) in which two or more black dots are not consecutive in the main scanning direction. The first column counter to the 2048th column counter are counters for counting the number of black dots in each column of the line buffer 34 shown in FIG. ,,, second
Includes 048 column counter 2048CCNT.
【0020】XカウンタXCNTはラインバッファ34のX
方向位置すなわち、カラム位置をカウントするためのカ
ウンタでり、YカウンタYCNTはラインバッファ34のY
方向の位置すなわち、ライン位置をカウントするカウン
タである。また、文字数カウンタMCNTは、宛先情報の各
文字を切り出すために文字数をカウントするためのカウ
ンタであり、2つの文字数カウンタMCNT1 およびMCNT2
が用いられる場合がある。さらに、総ドット数カウンタ
SUM は、或る列(カラム)あるいはラインに含まれる黒
ドットの数をカウントするためのカウンタであり、後述
のイメージバッファ38やヒストグラムバッファ40を
作成するときに用いられる。The X counter XCNT is the X of the line buffer 34.
It is a counter for counting the directional position, that is, the column position. The Y counter YCNT is the Y of the line buffer 34.
It is a counter that counts the position in the direction, that is, the line position. The character number counter MCNT is a counter for counting the number of characters in order to cut out each character of the destination information, and has two character number counters MCNT1 and MCNT2.
May be used. In addition, total dot counter
SUM is a counter for counting the number of black dots included in a certain column or line, and is used when creating an image buffer 38 and a histogram buffer 40 described later.
【0021】ここで、SRAM36の変数レジスタ領域
36aに格納されるそれぞれの変数について説明する。
変数len は切り出し文字の全長を示し、切り出し文字数
は変数noで示される。原稿に手書きされた文字部分の全
長を示す変数はb-x-len ,b-y-len およびb-xy-lenの3
つであり、変数b-x-len は文字部分のX方向(水平方向
または主走査方向)の長さすなわち、左端の文字の左端
から右端の文字の右端までの長さを示し、変数b-y-len
は文字部分のY方向(垂直方向または副走査方向)の長
さを示し、変数b-xy-lenは面積を示す。そして、これら
変数b-x-len ,b-y-len およびb-xy-lenの平均値が変数
b-x-mean,b-y-meanおよびb-xy-mean で示される。空白
部分の大きさの平均値は変数w-meanで与えられ、文字間
スペースの大きさはspace-max で与えられる。また、文
字切れ(1つの文字が分離して記入されている場合の分
離幅)の大きさは変数space-min で示される。宛先情報
の文字と他の情報、たとえば日付の文字との間の区切り
の大きさは変数cut-sizeで示される。さらに、送信原稿
の左右端(エッジ)と手書き文字との間の幅(エッジ
幅)の大きさは変数edge-size で表される。そして、手
書き文字より小さいサイズのイメージデータをノイズま
たはごみのデータとして判別するためのノイズの大きさ
は、変数x-noise およびy-noise で与えられ、前者はX
方向を示し、後者はY方向を示す。また、変数dxおよび
dyは、文字のX方向の長さおよびY方向の長さを示し、
変数dxy は文字または空白の面積を示す。空白の長さは
変数w-len で、また文字間スペースの数はw-noでそれぞ
れ与えられる。そして、変数xsは空白部分のX方向長さ
を表す。Now, each variable stored in the variable register area 36a of the SRAM 36 will be described.
The variable len shows the total length of the cut-out character, and the number of cut-out characters is shown by the variable no. The variable that indicates the total length of the handwritten characters in the manuscript is 3 of bx-len, by-len and b-xy-len.
The variable bx-len indicates the length of the character part in the X direction (horizontal direction or main scanning direction), that is, the length from the left end of the leftmost character to the right end of the rightmost character, and the variable by-len
Indicates the length of the character portion in the Y direction (vertical direction or sub-scanning direction), and the variable b-xy-len indicates the area. The average value of these variables bx-len, by-len and b-xy-len is the variable.
It is indicated by bx-mean, by-mean and b-xy-mean. The average size of the white space is given by the variable w-mean, and the size of the intercharacter space is given by space-max. The size of the character break (separation width when one character is entered separately) is indicated by the variable space-min. The size of the delimiter between the character of the destination information and other information, for example, the character of the date, is indicated by the variable cut-size. Furthermore, the size of the width (edge width) between the left and right edges (edges) of the transmitted document and the handwritten characters is represented by the variable edge-size. Then, the noise magnitude for discriminating image data smaller than handwritten characters as noise or dust data is given by variables x-noise and y-noise, and the former is X.
Direction, the latter indicating the Y direction. Also, the variables dx and
dy indicates the length in the X direction and the length in the Y direction of the character,
The variable dxy shows the area of characters or blanks. The length of the space is given by the variable w-len, and the number of intercharacter spaces is given by w-no. The variable xs represents the length of the blank portion in the X direction.
【0022】なお、このSRAM36のレジスタ領域3
6aには、ここでは特に説明しないが、後の処理に必要
な全ての変数が保持されることはいうまでもない。SR
AM36は、さらに、図6に示すように、手書き宛先情
報の各文字を切り出すために必要な、イメージバッファ
38およびヒストグラムバッファ40を含む。イメージ
バッファ38は、256バイト×16ラインの領域とし
て形成され、バイトマップ形式でラインバッファ34か
らのイメージデータをストアする。すなわち、後述のよ
うに、イメージバッファ38は、ラインバッファ34の
イメージデータを8×8ドットの大きさでぼかしたバイ
トマップデータ(64階調)すなわち、粗イメージデー
タを保持し、手書き文字の概略切り出し位置を求めるた
めに用いられる。イメージバッファ38のための変数名
は「image-buf 〔16〕〔256 〕」である。ヒストグラム
バッファ40は、たとえば、512バイト×5ラインの
記憶容量を有し、ラインバッファ34のビットイメージ
データの各カラムを4ビット毎に加算したヒストグラム
データ(256階調)を保持する。このヒストグラムバ
ッファ40は、手書き文字の概略切り出し位置(X方
向)を求めるときに利用される。ヒストグラムバッファ
40の変数名は「hst-buf 〔5 〕〔512 〕」である。The register area 3 of the SRAM 36
It is needless to say that 6a holds all variables necessary for the subsequent processing, which is not particularly described here. SR
As shown in FIG. 6, the AM 36 further includes an image buffer 38 and a histogram buffer 40 necessary for cutting out each character of the handwriting destination information. The image buffer 38 is formed as an area of 256 bytes × 16 lines and stores the image data from the line buffer 34 in a byte map format. That is, as will be described later, the image buffer 38 holds byte map data (64 gradations) obtained by blurring the image data of the line buffer 34 with a size of 8 × 8 dots, that is, rough image data, and outlines handwritten characters. It is used to determine the cutout position. The variable name for the image buffer 38 is "image-buf [16] [256]". The histogram buffer 40 has a storage capacity of, for example, 512 bytes × 5 lines, and holds histogram data (256 gradations) obtained by adding each column of the bit image data of the line buffer 34 every 4 bits. The histogram buffer 40 is used when obtaining a rough cutout position (X direction) of a handwritten character. The variable name of the histogram buffer 40 is "hst-buf [5] [512]".
【0023】ヒストグラムバッファ40が5ライン分形
成されている理由は、たとえば重なり文字を正確に切り
出すために、角度の異なる5つの方向のヒストグラムを
作成することがあるからである。たとえば、図7に示す
ような、下90°,左下75°,右下75°,左下60
°および右下60°の5方向である。下90°,左下7
5°,右下75°,左下60°および右下60°の5方
向は、それぞれ、図7に示す傾き番号n すなわち、
「0」,「1」,「2」,「3」,「4」で表される。The reason why the histogram buffer 40 is formed for five lines is that, for example, in order to accurately cut out overlapping characters, histograms in five directions with different angles may be created. For example, as shown in FIG. 7, lower 90 °, lower left 75 °, lower right 75 °, lower left 60
And 60 ° at the lower right. 90 ° down, 7 down left
The five directions of 5 °, lower right 75 °, lower left 60 °, and lower right 60 ° are the inclination numbers n shown in FIG. 7, that is,
It is represented by "0", "1", "2", "3", "4".
【0024】SRAM36は、また、図6に示すよう
に、第1文字切り出しバッファ42,第2文字切り出し
バッファ44および重なり文字切り出しバッファ46を
含む。第1文字切り出しバッファ42および44のいず
れも、図8に示すように、10×32バイトの記憶容量
を有し、32文字分の切り出し位置のデータを保持す
る。第1文字切り出しバッファ42は、イメージバッフ
ァ38を参照して求めた概略文字切り出し位置を保持
し、第2文字切り出しバッファ44は、最終的に詳細に
計算された文字切り出し位置を保持する。第2文字切り
出しバッファ44は、各文字の詳細な切り出し位置、す
なわち、図9において点線で示す各文字の外接長方形の
左端x1,右端x2,上端y1および下端y2および傾き番号n
のデータを保持する。文字切り出しバッファ42および
44のそれぞれの変数名は「cut-pos1〔32〕」および
「cut-pos2〔32〕」で与えられる。The SRAM 36 also includes a first character cutout buffer 42, a second character cutout buffer 44, and an overlapping character cutout buffer 46, as shown in FIG. As shown in FIG. 8, each of the first character cutout buffers 42 and 44 has a storage capacity of 10 × 32 bytes and holds data of the cutout position for 32 characters. The first character cutout buffer 42 holds the rough character cutout position obtained by referring to the image buffer 38, and the second character cutout buffer 44 holds the finally calculated character cutout position. The second character cut-out buffer 44 is a detailed cut-out position of each character, that is, the left end x1, the right end x2, the upper end y1 and the lower end y2 of the circumscribed rectangle of each character shown in FIG.
Holds the data of. The variable names of the character cutout buffers 42 and 44 are given by "cut-pos1 [32]" and "cut-pos2 [32]".
【0025】重なり文字切り出しバッファ46は、変数
名「cut-pos-d 〔5 〕〔32〕」で指定され、第1文字切
り出しバッファ42および第2文字切り出しバッファ4
4と同様に、左端x1,右端x2,上端y1および下端y2およ
び傾きn のデータを保持する。しかしながら、この重な
り文字バッファ46は、上述の異なる5方向のヒストグ
ラムに従って5方向の切り出し位置のデータを保持しな
ければならず、したがって、10×32バイト×5方向
の記憶容量を有する。The overlapping character cutout buffer 46 is designated by the variable name "cut-pos-d [5] [32]", and the first character cutout buffer 42 and the second character cutout buffer 4 are specified.
As in the case of 4, the data of the left end x1, the right end x2, the upper end y1, the lower end y2, and the slope n is held. However, the overlapping character buffer 46 must hold the data of the cut-out positions in the 5 directions according to the above-mentioned different 5-direction histograms, and thus has a storage capacity of 10 × 32 bytes × 5 directions.
【0026】図2に戻って、記録制御回路48は、宛先
情報訂正動作,ファクシミリ受信動作またはコピー動作
においてファクシミリ用紙にデータを印字するための回
路であって、サーマルヘッド50のためのサーマルヘッ
ドドライバを含む。DMA回路52は、CPU26の介
在なしにたとえばラインバッファ34からのデータを読
み出しあるいはラインバッファ34へデータを書き込む
ためのDMA(DirectMemory Access)動作を制御するた
めの回路である。Returning to FIG. 2, the recording control circuit 48 is a circuit for printing data on facsimile paper in the destination information correction operation, facsimile reception operation or copy operation, and is a thermal head driver for the thermal head 50. including. The DMA circuit 52 is a circuit for controlling a DMA (Direct Memory Access) operation for reading data from the line buffer 34 or writing data to the line buffer 34 without the intervention of the CPU 26.
【0027】モータ制御回路54は、送信モータ56お
よび受信モータ58を制御する。送信モータ56および
受信モータ58はいずれもステッピングモータである。
送信モータ56は、図10に示す原稿送りローラ60お
よび圧接ローラ62を駆動する。受信モータ58はファ
クシミリ用紙ないし記録紙(図示せず)を送り出す。画
処理回路64はCIS66からの「1」または「0」で
出力されるビットイメージデータを受ける中間調処理回
路を含む。なお、この中間調処理において、たとえばデ
ィザ法に従ってCIS66のスライスレベルを変更す
る。The motor control circuit 54 controls the transmission motor 56 and the reception motor 58. Both the transmission motor 56 and the reception motor 58 are stepping motors.
The transmission motor 56 drives the document feeding roller 60 and the pressure contact roller 62 shown in FIG. The receiving motor 58 sends out a facsimile sheet or recording sheet (not shown). The image processing circuit 64 includes a halftone processing circuit that receives bit image data output as "1" or "0" from the CIS 66. In this halftone process, the slice level of CIS 66 is changed according to the dither method, for example.
【0028】符号化回路68は、CIS66からの1ラ
イン分のデータをMH(Modified Haffmann) コードに変
換し、それをSRAM36に与える。したがって、この
SRAM36には、CIS66からの1ライン分のデー
タのMHコードが1ライン毎に格納される。そして、こ
のMHコードは、CPU26によってフィル(Fill)符号
が付加された後、FIFO方式で、モデム70に与えら
れる。モデム70は、NCU(Network Control Unit)7
2へ送信信号を与えまたはNCU72からの受信信号を
受け取る。The encoding circuit 68 converts the data for one line from the CIS 66 into an MH (Modified Haffmann) code and supplies it to the SRAM 36. Therefore, the MH code of the data for one line from the CIS 66 is stored in the SRAM 36 for each line. Then, this MH code is given to the modem 70 by the FIFO system after the fill code is added by the CPU 26. The modem 70 is an NCU (Network Control Unit) 7
2 gives a transmission signal or receives a reception signal from the NCU 72.
【0029】なお、第1原稿センサ74および76は、
図10に示すように、原稿送りローラ60を挟む位置に
配置される。第1原稿センサ74は原稿送りローラ60
の位置に原稿が送られてきたことすなわち原稿の存在を
検出する。また、第2原稿センサ76はCIS66の位
置に原稿が送られてきたことすなわち原稿が読取位置に
達したことを検出する。The first document sensors 74 and 76 are
As shown in FIG. 10, the document feed rollers 60 are arranged so as to sandwich them. The first document sensor 74 is the document feed roller 60.
It is detected that the document has been sent to the position of, that is, the presence of the document. Further, the second document sensor 76 detects that the document has been sent to the position of the CIS 66, that is, that the document has reached the reading position.
【0030】図11はファクシミリ装置10の全体的な
動作を概略的に示すフロー図である。最初のステップS
1においては、CPU26(図2)は初期化を実行する
とともに、操作パネル14の各キーの操作をチェック
し、操作されたキーに応じた処理を実行する。次のステ
ップS2では、CPU26は、原稿上に手書きされた宛
先情報を自動的に認識するかどうかをチェックする。し
たがって、このステップS2において宛先情報を認識す
べきであると判断した場合には、次のステップS3にお
いて、送信原稿上の宛先情報の有無をチェックするとと
もに、その宛先情報が記入されている場合には、宛先情
報のイメージデータをラインバッファ34に取り込む。
そして、ステップS4において、手書きされた宛先情報
の各文字を切り出すとともに、ステップS5において、
切り出された文字を認識する。ステップS5で認識され
た宛先情報に従って、ステップS6では、送信処理が行
われる。FIG. 11 is a flow chart schematically showing the overall operation of the facsimile apparatus 10. First step S
In No. 1, the CPU 26 (FIG. 2) executes initialization, checks the operation of each key on the operation panel 14, and executes the process corresponding to the operated key. In the next step S2, the CPU 26 checks whether or not the destination information handwritten on the document is automatically recognized. Therefore, when it is determined that the destination information should be recognized in this step S2, the presence or absence of the destination information on the transmission document is checked in the next step S3, and when the destination information is written, Captures the image data of the destination information in the line buffer 34.
Then, in step S4, each character of the handwritten destination information is cut out, and in step S5,
Recognize cut characters. In step S6, the transmission process is performed according to the destination information recognized in step S5.
【0031】図11のステップS2を経たのち、CPU
26は、図12の最初のステップS300では、LCD
18に「バンゴウヨミトリチュウ」のメッセージを表示
する。そして、次のステップS301において、CPU
26は、VRAM32のカウンタや変数レジスタを初期
化する。すなわち、原稿送りカウンタPCNTを初期値
「1」に設定する。この原稿送りカウンタPCNTは、送信
モータ56によって原稿が副走査方向に1ライン送られ
る毎にインクリメントされるものであり、したがってこ
の原稿送りカウンタPCNTを参照することによって、手書
き宛先情報を記入している領域の最終ラインの位置ない
し番号を判断することができる。書込ラインカウンタLC
NTが初期値「2」にセットされる。この書込ラインカウ
ンタLCNTは、ラインバッファ34(図5)に1ライン分
のデータが書き込まれる毎にインクリメントされる。た
だし、図5に示すようにラインバッファ34の第1ライ
ンには手書き宛先情報を読み取ったイメージデータを書
き込まないようにするために、このステップS301で
は、書込ラインカウンタLCNTを「2」にセットする。こ
の書込ラインカウンタLCNTを参照することによって、ラ
インバッファ34に宛先情報のイメージデータを書き込
んだときの最終ラインの位置がわかる。After step S2 in FIG. 11, the CPU
26 is the LCD in the first step S300 of FIG.
The message "Bangou Yomitorichu" is displayed on 18. Then, in the next step S301, the CPU
26 initializes the counter and variable register of the VRAM 32. That is, the original feeding counter PCNT is set to the initial value "1". The document feed counter PCNT is incremented every time the document is fed by the transmission motor 56 one line in the sub-scanning direction. Therefore, by referring to the document feed counter PCNT, the handwriting destination information is entered. The position or number of the last line of the area can be determined. Write line counter LC
NT is set to the initial value "2". The write line counter LCNT is incremented every time one line of data is written in the line buffer 34 (FIG. 5). However, as shown in FIG. 5, the write line counter LCNT is set to "2" in this step S301 so that the image data obtained by reading the handwritten destination information is not written in the first line of the line buffer 34. To do. By referring to the write line counter LCNT, the position of the last line when the image data of the destination information is written in the line buffer 34 can be known.
【0032】ステップS301では、さらに、カラムカ
ウンタCCNTが全て「0」にされる。先に説明したよう
に、ラインバッファ34の第1カラムから第2048カ
ラムのそれぞれについてカラムカウンタ1CCNT から2048
CCNTが個別に設けられていて、そのカラムカウンタ1CCN
T 〜2048CCNTによって各カラム毎のX方向のヒストグラ
ムを作成する。すなわち、カラムカウンタ1CCNT 〜2048
CCNTは、ラインバッファ34の各カラム毎の黒ドット数
をカウントするものであるため、ステップS301で
は、これら全てのカラムカウンタ1CCNT 〜2048CCNTを
「0」に設定する。In step S301, all column counters CCNT are set to "0". As described above, the column counters 1CCNT to 2048 for the first column to the 2048th column of the line buffer 34, respectively.
CCNT is provided individually and its column counter 1CCN
Create a histogram in the X direction for each column with T to 2048 CCNT. That is, column counter 1CCNT ~ 2048
Since CCNT counts the number of black dots in each column of the line buffer 34, all of these column counters 1CCNT to 2048CCNT are set to "0" in step S301.
【0033】そして、ステップS301では、さらに、
有効ラインカウンタBCNTに「0」の初期値を設定する。
有効ラインカウンタBCNTは、ノイズ処理のために用いら
れるものである。すなわち、1ライン中に連続する2以
上の黒ドットがあれば、そのラインには手書き宛先情報
が記入されている有効ラインであると判断する。これに
対して、1ライン中に連続した黒ドットがない場合に
は、その1ドットだけの黒ドットは原稿の汚れやごみに
よって出力されたものと認識し、そのラインは有効ライ
ンとはみなさない。そして、このような有効ラインの連
続数をカウントするのが有効ラインカウンタBCNTであ
る。すなわち、有効ラインが連続して15ライン(これ
は原稿上において2mmの長さ)にならなければ、有効な
宛先情報が記入されていないものと判断する。このよう
な判断のために有効ラインカウンタBCNTが用いられる。
つまり、この有効ラインカウンタBCNTのカウント値が
「15」を超えない限り、手書き宛先情報の認識を行わ
ない。換言すれば、原稿上において2mm以下のサイズの
宛先情報の文字は認識の対象から除外する。Then, in step S301,
Set the initial value of "0" to the valid line counter BCNT.
The effective line counter BCNT is used for noise processing. That is, if there are two or more continuous black dots in one line, it is determined that the line is an effective line in which handwritten destination information is written. On the other hand, when there is no continuous black dot in one line, it is recognized that the one black dot was output due to dirt or dust on the document, and the line is not regarded as an effective line. . The effective line counter BCNT counts the number of continuous such effective lines. That is, if the effective line does not reach 15 lines continuously (this is a length of 2 mm on the document), it is determined that the effective destination information is not entered. The effective line counter BCNT is used for such determination.
That is, unless the count value of the valid line counter BCNT exceeds "15", the handwriting destination information is not recognized. In other words, the characters of the destination information having a size of 2 mm or less on the original are excluded from the recognition target.
【0034】ステップS301では、さらに、全白ライ
ンカウンタWCNTが「0」に初期設定される。この全白ラ
インカウンタWCNTは図5に示すラインバッファ34の最
後の3つの全白ラインを検出するために用いられる。つ
まり、ラインバッファ34(図6)において、3つの全
白ラインが連続して格納されたとき、手書き宛先情報の
記入領域の終了を判断する。つまり、この全白ラインカ
ウンタWCNTは、手書き宛先情報の最後のラインすなわち
終了ラインを検出するために用いられる。In step S301, the all-white line counter WCNT is further initialized to "0". This all-white line counter WCNT is used to detect the last three all-white lines of the line buffer 34 shown in FIG. That is, when three all-white lines are continuously stored in the line buffer 34 (FIG. 6), the end of the writing area of the handwritten address information is determined. That is, the all-white line counter WCNT is used to detect the last line of the handwritten destination information, that is, the end line.
【0035】ステップS301では、さらに、有効イメ
ージ領域フラグAFがリセットされる。このフラグAFは、
CIS66が手書き宛先情報を記入した領域を読み取っ
ているかどうかを表すフラグであり、その領域を読み取
っているときには「1」にセットされ、それ以外のとき
には「0」にリセットされる。図12の次のステップS
302では、CPU26は、CIS66および送信モー
タ56を含む読取系をセットアップする。すなわち、こ
のステップS302では、CPU26は、モータ制御回
路54に指令信号を与え、送信モータ56を駆動すると
ともに、CIS66および画処理回路64をファインモ
ードに設定する。つまり、手書き宛先情報を認識する場
合には、オペレータが画質選択キー20で設定したモー
ド(ノーマルモード,ファインモードまたは中間調モー
ド)の如何に拘わらず、このステップS302で、ファ
インモードを強制的に設定する。In step S301, the effective image area flag AF is further reset. This flag AF is
This is a flag indicating whether or not the area in which the CIS 66 has written the handwritten address information is being read, and is set to "1" when the area is being read, and is reset to "0" otherwise. Next step S in FIG.
At 302, the CPU 26 sets up a reading system that includes the CIS 66 and the transmit motor 56. That is, in this step S302, the CPU 26 gives a command signal to the motor control circuit 54 to drive the transmission motor 56, and sets the CIS 66 and the image processing circuit 64 to the fine mode. That is, when recognizing the handwritten address information, the fine mode is forcibly forced in step S302 regardless of the mode (normal mode, fine mode or halftone mode) set by the operator using the image quality selection key 20. Set.
【0036】そして、次のステップS303において、
CIS66からのイメージデータをラインバッファ34
の書込ラインカウンタLCNTによって指定されたラインに
書き込む。最初のラインであれば、CIS66からのイ
メージデータはラインバッファ34の第2ラインに書き
込まれることになる。なお、このステップS303にお
けるラインバッファ34へのイメージデータの書き込み
は、実際にはDMAに従って実行されるので、CPU2
6は、ラインバッファ34の各アドレスとイメージデー
タのデータ長とをDMA回路52(図2)に指示するだ
けでよい。それによって、CIS66からの1ライン分
のイメージデータがラインバッファ34に書き込まれ
る。Then, in the next step S303,
The image data from the CIS 66 is transferred to the line buffer 34.
Write to the line specified by the write line counter LCNT. If it is the first line, the image data from the CIS 66 will be written in the second line of the line buffer 34. Note that the writing of the image data to the line buffer 34 in step S303 is actually executed according to the DMA, so the CPU 2
6 need only instruct each address of the line buffer 34 and the data length of the image data to the DMA circuit 52 (FIG. 2). As a result, one line of image data from the CIS 66 is written in the line buffer 34.
【0037】そして、次のステップS304において、
CPU26は、停止/クリアキー22(図1)が操作さ
れたかどうかを判断する。この段階で停止/クリアキー
22が操作されたことは、たとえば(1) オペレータは原
稿をコピーしようとしていたのに宛先情報の読取動作に
入ってしまった場合や(2) 原稿が正常に送られなかった
場合などを意味し、停止/クリアキー22の操作に応答
して、原稿を排出する。そのために、このステップS3
04において“YES”が判断されたとき、図14のス
テップS315に進み、原稿を排出する。Then, in the next step S304,
The CPU 26 determines whether the stop / clear key 22 (FIG. 1) has been operated. The operation of the stop / clear key 22 at this stage means that, for example, (1) the operator was trying to copy a document but entered the address information reading operation, or (2) the document was sent normally. The original is discharged in response to the operation of the stop / clear key 22. Therefore, this step S3
When "YES" is determined in 04, the process proceeds to step S315 in FIG. 14 and the document is discharged.
【0038】次のステップS305では、CPU26
は、送信モータ56を駆動して、ファインモードで1ラ
イン分(約0.13mm)だけ原稿を送る。そして、次の
ステップS306において、原稿送りカウンタPCNTをイ
ンクリメントする。次のステップS307では、先のス
テップS303でラインバッファ34に格納された1ラ
イン分のイメージデータにおいて、2以上連続する黒ド
ットがあるかどうか、すなわち先に読み取った1ライン
が有効ラインであるかどうかを判断する。具体的には、
CPU26は、ラインバッファ34の2048カラムの
うち最初の5バイト(原稿では5mm)のデータを除い
て、ラインバッファ34の第40カラムから2048カ
ラムまでの200バイト分(原稿では200mm)のイメ
ージデータをラインバッファ34から読み出す。なお、
ラインバッファ34の最初の5バイトのイメージデータ
を読み出さない理由は、その範囲で原稿のエッジを検出
してしまう可能性があるので、その可能性を排除するた
めである。In the next step S305, the CPU 26
Drives the transmission motor 56 to feed the original by one line (about 0.13 mm) in the fine mode. Then, in the next step S306, the document feed counter PCNT is incremented. In the next step S307, in the image data for one line stored in the line buffer 34 in the previous step S303, there are two or more continuous black dots, that is, whether the one line read previously is an effective line. Determine whether In particular,
The CPU 26 removes the image data of 200 bytes (200 mm in the manuscript) from the 40th column to the 2048 column of the line buffer 34, excluding the first 5 bytes of the 2048 columns of the line buffer 34 (5 mm in the manuscript). Read from the line buffer 34. In addition,
The reason for not reading the first 5 bytes of image data from the line buffer 34 is to eliminate the possibility that the edge of the document may be detected within that range.
【0039】そして、CPU26は、ラインバッファ3
4から読み出した200バイト分のイメージデータをア
キュムレータに取り込む。このとき、まず1バイトを読
み出し、その1バイトのイメージデータと次のバイトの
イメージデータの最上位ビットとの合計9ビットで黒ド
ットの連続性を判断する。すなわち、各バイト毎に単独
で黒ドットの連続性を判断すると、先行のバイトの最下
位ビットと後続のバイトの最上位ビットとが連続して黒
ドットであった場合でも、黒ドットが連続していると判
断できないことがある。そのために、次のバイトのイメ
ージデータの最上位ビットを含めて合計9ビットで黒ド
ットの連続性を判断するのである。具体的には、CPU
26は、アキュムレータの内容をチェックして、2以上
のビットで連続する「1」があるかどうかを判断する。
このようにして、ステップS307では、CPU26は
先にラインバッファ34に読み込んだイメージデータが
有効ラインのものであるかどうかを判断する。Then, the CPU 26 causes the line buffer 3
The image data of 200 bytes read from No. 4 is taken into the accumulator. At this time, first, one byte is read out, and the continuity of black dots is determined by a total of 9 bits of the 1-byte image data and the most significant bit of the next byte of image data. In other words, if the continuity of black dots is judged independently for each byte, even if the least significant bit of the preceding byte and the most significant bit of the following byte are consecutive black dots, consecutive black dots will occur. It may not be possible to determine that Therefore, the continuity of black dots is determined by a total of 9 bits including the most significant bit of the image data of the next byte. Specifically, CPU
26 checks the contents of the accumulator to determine whether there are consecutive "1" s in 2 or more bits.
In this way, in step S307, the CPU 26 determines whether the image data previously read in the line buffer 34 is of an effective line.
【0040】このステップS307において、“NO”
と判断されると、次のステップS308において、CP
U26は、有効イメージ領域フラグAFがセットされてい
るかどうかを判断する。そして、このフラグAFが既にセ
ットされている場合には、次のステップS309におい
て、全白ラインカウンタWCNTをインクリメントする。そ
して、次のステップS310において、全白ラインカウ
ンタWCNTのカウント値が「3」以上になったかどうかを
判断する。先に説明したように、図5に示すようにライ
ンバッファ34に3ライン連続して全白ラインが出現し
た場合には、手書き宛先情報の記入領域の終了ラインを
判断する。したがって、このステップS310において
“YES”を判断したときには、手書き宛先情報の記入
領域の終了ラインを検出したことを意味し、この場合、
次のステップS311で読取系を停止した後、図11の
ステップS4、すなわち切り出し処理に進む。In step S307, "NO"
If it is determined that the CP
U26 determines whether or not the effective image area flag AF is set. If the flag AF has already been set, the all-white line counter WCNT is incremented in the next step S309. Then, in the next step S310, it is determined whether or not the count value of the all-white line counter WCNT becomes "3" or more. As described above, when three all-white lines appear continuously in the line buffer 34 as shown in FIG. 5, the end line of the handwriting destination information entry area is determined. Therefore, when "YES" is determined in this step S310, it means that the end line of the writing area of the handwriting destination information is detected. In this case,
After stopping the reading system in the next step S311, the process proceeds to step S4 in FIG. 11, that is, the cutout process.
【0041】先のステップS307において“YES”
と判断したとき、すなわちステップS303でラインバ
ッファ34に格納された1ラインのイメージデータが有
効ラインのものであると判断したとき、ステップS31
2において、CPU26は全白ラインカウンタWCNTをク
リアする。全白ラインカウンタWCNTは連続して3ライン
以上全白ラインが出現したかどうかを検出するためのカ
ウンタであるので、有効ラインが検出される都度クリア
される。そして、先のステップS310において“N
O”と判断された場合と同様に、図13に示す次のステ
ップS313に進む。"YES" in the previous step S307.
If it is determined that the one-line image data stored in the line buffer 34 in step S303 is a valid line, step S31
At 2, the CPU 26 clears the all-white line counter WCNT. The all-white line counter WCNT is a counter for detecting whether or not three or more all-white lines continuously appear, so that it is cleared every time an effective line is detected. Then, in the previous step S310, "N
Similarly to the case where it is determined to be "O", the process proceeds to the next step S313 shown in FIG.
【0042】このステップS313では、CPU26
は、ラインバッファ34の書込ラインカウンタLCNTで示
されるラインの黒ドットの位置に対応したカラムのカラ
ムカウンタをインクリメントする。すなわち、このステ
ップS313では、ラインバッファ34の黒ドットが存
在するカラムのカラムカウンタをインクリメントする。
そして、次のステップS314において、CPU26
は、書込ラインカウンタLCNTをインクリメントするとと
もに、有効ラインカウンタBCNTをインクリメントする。In step S313, the CPU 26
Increments the column counter of the column corresponding to the position of the black dot of the line indicated by the write line counter LCNT of the line buffer 34. That is, in this step S313, the column counter of the column where the black dot of the line buffer 34 exists is incremented.
Then, in the next step S314, the CPU 26
Increments the write line counter LCNT and also increments the valid line counter BCNT.
【0043】そして、次のステップS315において、
CPU26は、書込ラインカウンタLCNTのカウント値が
「128」を超えたかどうかを判断する。つまり、この
ステップS315では、図5に示すラインバッファ34
の128ラインの全てにイメージデータが書き込まれた
かどうかを判断する。したがって、ラインバッファ34
が満杯になるまでは、ステップS315において“N
O”と判断されるため、次のステップS316に進む。Then, in the next step S315,
The CPU 26 determines whether or not the count value of the write line counter LCNT exceeds “128”. That is, in this step S315, the line buffer 34 shown in FIG.
It is determined whether the image data has been written in all of the 128 lines. Therefore, the line buffer 34
Is full in step S315 until "N
Since it is determined to be "O", the process proceeds to the next step S316.
【0044】このステップS316では、有効イメージ
領域フラグAFがセットされているかどうかを判断する。
つまり、先のステップS307において有効ラインを検
出すると、それは有効イメージ領域(宛先情報記入領
域)であることを意味するため、このステップS316
において、このフラグAFがセットされているかどうかを
判断する。このステップS316において“NO”と判
断された場合には、次のステップS317において、C
PU26は、有効ラインカウンタBCNTのカウント値が
「15」に達したかどうかを判断する。すなわち、この
ステップS317では、CPU26は、連続して15ラ
イン以上有効ラインがあったかどうかを判断する。そし
て、このステップS317において“YES”が判断さ
れたとき初めて、有効イメージ領域フラグAFをセットす
る(ステップS318)。先に説明したように、原稿上
において2mm以下のサイズの宛先情報の文字は認識の対
象としないため、有効ライン数が15ラインを超えたと
きにのみ有効イメージ領域フラグAFをセットするのであ
る。In step S316, it is determined whether the effective image area flag AF is set.
That is, when an effective line is detected in the previous step S307, it means that it is an effective image area (destination information entry area). Therefore, this step S316
At, it is determined whether or not this flag AF is set. If "NO" is determined in this step S316, C is determined in the next step S317.
The PU 26 determines whether or not the count value of the activated line counter BCNT has reached “15”. That is, in step S317, the CPU 26 determines whether or not there are 15 or more effective lines in a row. The valid image area flag AF is set only when "YES" is determined in this step S317 (step S318). As described above, the characters of the destination information having a size of 2 mm or less on the original are not recognized, so that the effective image area flag AF is set only when the number of effective lines exceeds 15.
【0045】先のステップS308(図12)におい
て、“NO”と判断されたときには、ステップS319
に進む。このステップS319では、CPU60は、書
込ラインカウンタLCNTに初期値「2」を設定するととも
に、有効ラインカウンタBCNTをクリアするとともに、カ
ラムカウンタ1CCNT 〜2048CCNTの全てをクリアする。そ
の後、ステップS317において“NO”と判断した場
合と同様に、次のステップS320に進む。このステッ
プS320では、CPU626、原稿送りカウンタPCNT
のカウント値が「231」を超えたかどうかを判断す
る。すなわち、このステップS320では、原稿が30
mm(=231/7.7)以上送られたかどうかを判断す
る。これは、手書き宛先情報の文字が原稿の上端から3
0mm以内に存在するであろうという前提に立つ。したが
って、このステップS320における「231」を変更
することによって、手書き宛先情報の認識領域を拡大し
または縮小することができる。そして、このステップS
320において“YES”が判断されるということは、
原稿の上端から30mmの範囲内に宛先情報の文字が記入
されていないことを意味する。したがって、この場合に
は、次のステップS321において、CPU26は、L
CD36においてたとえば「バンゴウアリマセン」のよ
うなメッセージを表示する。そして、次のステップS3
22において、送信モータ90を駆動して原稿を排出す
るとともに、次のステップS323において、先のステ
ップS311と同様に、読取系を停止する。If "NO" is determined in the previous step S308 (FIG. 12), step S319 is performed.
Proceed to. In step S319, the CPU 60 sets the write line counter LCNT to the initial value "2", clears the valid line counter BCNT, and clears all the column counters 1CCNT to 2048CCNT. After that, as in the case of determining “NO” in step S317, the process proceeds to the next step S320. In step S320, the CPU 626 and the document feed counter PCNT
It is determined whether or not the count value of has exceeded “231”. That is, in this step S320, the original is 30
Judge whether or not the data is sent in mm (= 231 / 7.7) or more. This is because the characters in the handwritten address information are 3 from the top of the document.
It stands on the premise that it will exist within 0 mm. Therefore, by changing "231" in step S320, the recognition area of the handwritten address information can be expanded or reduced. And this step S
The determination of “YES” at 320 means that
It means that the characters of the destination information are not written within the range of 30 mm from the upper end of the manuscript. Therefore, in this case, in the next step S321, the CPU 26 sets L
On the CD 36, a message such as "Bangou Arimasen" is displayed. Then, the next step S3
At 22, the transmission motor 90 is driven to eject the original, and at the next step S323, the reading system is stopped as at the previous step S311.
【0046】なお、ステップS319において書込ライ
ンカウンタLCNT,有効ラインカウンタBCNTおよびカラム
カウンタCCNTを初期状態に戻す理由は、ステップS30
7において有効ラインが検出されずかつステップS30
8において有効イメージ領域フラグAFがセットされてい
ないからである。すなわち、有効ラインが「15」にな
る前に全白ラインが出現したときには、これらのカウン
タLCNT,BCNTおよびCCNTを初期状態に戻すのである。The reason why the write line counter LCNT, the valid line counter BCNT and the column counter CCNT are returned to the initial state in step S319 is as follows.
No effective line is detected in step 7, and step S30
This is because the effective image area flag AF is not set in 8. That is, when all white lines appear before the effective line becomes "15", these counters LCNT, BCNT and CCNT are returned to the initial state.
【0047】さらに、先のステップS315において、
ラインバッファ68が満杯になったことを検出すると、
次のステップS324において、CPU60は読取系を
停止する。すなわち、ステップS315において“YE
S”が判断されるということは、ラインバッファ68に
手書き宛先情報のイメージデータは書き込まれたものの
その手書き宛先情報の終わりが検出されない場合であ
る。たとえば、手書き宛先情報の文字が大きすぎるかあ
るいは手書き宛先情報としては認識できない別の文字や
キャラクタがその領域に記入されていることを意味す
る。したがって、このステップS315において“YE
S”が判断されることは、後の処理において認識できな
い状態であることを意味し、したがって、この場合に
は、ステップS324に進むのである。そして、ステッ
プS324において読取系を停止した後、ステップS3
25において、ステップS321と同様に、LCD36
によってメッセージ表示をした後、ステップS326に
おいて、エラーフラグEFをセットして宛先番号の手動入
力動作に移行する。Further, in the previous step S315,
When it detects that the line buffer 68 is full,
In the next step S324, the CPU 60 stops the reading system. That is, in step S315, "YE
The determination of S "is made when the image data of the handwriting destination information is written in the line buffer 68 but the end of the handwriting destination information is not detected. For example, the characters of the handwriting destination information are too large or This means that another character or character that cannot be recognized as the handwritten address information is entered in the area, and therefore "YE" is entered in step S315.
The determination of S ″ means that the state is unrecognizable in the subsequent processing, and therefore, in this case, the process proceeds to step S324. Then, after stopping the reading system in step S324, the step S324 is performed. S3
25, the LCD 36 is displayed as in step S321.
After the message is displayed by, the error flag EF is set in step S326, and the operation proceeds to the manual input operation of the destination number.
【0048】なお、先のステップS323の後は、待機
状態に入る。先のステップS311が処理される場合に
は、ラインバッファ68に認識可能な状態で手書き宛先
情報のイメージデータがストアされていることを意味
し、この場合には、図11のステップS4に進み、手書
き宛先情報として記入された各文字を切り出す。つま
り、このステップS4では、図14に示す各ステップS
41,S42,S43,S44,S45およびS46を
実行する。After the previous step S323, the standby state is entered. When the previous step S311 is processed, it means that the image data of the handwritten destination information is stored in the line buffer 68 in a recognizable state. In this case, the process proceeds to step S4 of FIG. Cut out each character entered as handwritten address information. That is, in this step S4, each step S shown in FIG.
41, S42, S43, S44, S45 and S46 are executed.
【0049】原稿上に図15(A)に示すように宛先電
話番号と日付とが記入された場合、先に説明した各変数
edge-size,space-max およびcut-sizeは 図示のとお
りである。この場合、図15(B)に示すように、ライ
ンバッファ34内にこれら宛先電話番号および日付のイ
メージデータが取り込まれる。ステップS41では、こ
のラインバッファ34内のイメージデータをイメージバ
ッファ38にバイトマップで書き込み、イメージバッフ
ァを作成する。When the destination telephone number and the date are entered on the manuscript as shown in FIG. 15 (A), the variables described above are used.
Edge-size, space-max and cut-size are as shown. In this case, as shown in FIG. 15B, the image data of the destination telephone number and the date is fetched in the line buffer 34. In step S41, the image data in the line buffer 34 is written in the image buffer 38 as a byte map to create an image buffer.
【0050】イメージバッファを作成するために、具体
的には、図16のステップS411において、Xカウン
タのカウント値iを「0」にする。つまり、Xカウンタ
をクリアする。次のステップS412において、Yカウ
ンタのカウント値jを「0」にする。つまり、Yカウン
タをクリアする。そして、ステップS413において、
CPU26は、イメージバッファ38はバイトマップで
あるため、ラインバッファ34のデータを8ライン分取
り込んだかどうか判断する。つまり、このステップS4
13では、CPU26は、「j/8」の余りが「0」に
なったかどうか判断する。したがって、このステップS
413において“YES”が判断されると、ステップS
414において、CPU26はイメージバッファ38を
クリアする。また、ステップS413において“NO”
であれば、次のステップS415において、CPU26
は、イメージバッファ38にラインバッファ34の黒ド
ット数を加える。つまり、このステップS415では、
CPU26は、図4のドット数テーブル30dを参照し
て、各バイト毎のドット数をイメージバイト38の該当
のバイト領域に書き込む。To create the image buffer, specifically, in step S411 of FIG. 16, the count value i of the X counter is set to "0". That is, the X counter is cleared. In the next step S412, the count value j of the Y counter is set to "0". That is, the Y counter is cleared. Then, in step S413,
Since the image buffer 38 is a byte map, the CPU 26 determines whether the data in the line buffer 34 has been fetched for eight lines. That is, this step S4
At 13, the CPU 26 determines whether the remainder of "j / 8" has become "0". Therefore, this step S
If “YES” is determined in 413, step S
At 414, the CPU 26 clears the image buffer 38. Further, in step S413, "NO"
If so, in the next step S415, the CPU 26
Adds the number of black dots in the line buffer 34 to the image buffer 38. That is, in this step S415,
The CPU 26 refers to the dot number table 30d in FIG. 4 and writes the dot number for each byte in the corresponding byte area of the image byte 38.
【0051】次のステップS416では、CPU26
は、Yカウンタのカウント値jが「128」を超えない
かどうか判断する。これは、ラインバッファ34のライ
ン数が先に説明したように「128」であるからであ
る。このステップS416において“YES”が判断さ
れると、次のステップS417においてYカウンタがイ
ンクリメント(j+l)され、再び、ステップS413
に進む。すなわち、Yカウンタのカウント値が「12
8」になるまで、ステップS413〜S416を繰り返
して実行し、ビット数検出テーブル30dを参照して求
めたラインバッファ34の黒ドット数をイメージバッフ
ァ38に取り込む。In the next step S416, the CPU 26
Determines whether the count value j of the Y counter does not exceed "128". This is because the number of lines in the line buffer 34 is "128" as described above. If "YES" is determined in this step S416, the Y counter is incremented (j + 1) in the next step S417, and the step S413 is performed again.
Proceed to. That is, the count value of the Y counter is "12.
8 "until the image buffer 38 receives the number of black dots in the line buffer 34 obtained by referring to the bit number detection table 30d.
【0052】そして、ステップS418では、CPU2
6は、Xカウンタのカウント値iが「256」を超えな
いかどうか判断する。これは、ラインバッファ34の1
ラインのドット数が先に説明したように「256」であ
るからである。このステップS418において“YE
S”が判断されると、次のステップS419においてX
カウンタがインクリメント(i+l)され、再び、ステ
ップS412に進む。すなわち、Xカウンタのカウント
値が「256」になるまで、ステップS412〜S41
8を繰り返して実行し、ビット数検出テーブル30dを
参照して求めたラインバッファ34の黒ドット数をイメ
ージバッファ38に取り込む。このようにして、図15
(C)に示すイメージバッファ38が作成される。Then, in step S418, the CPU 2
6 determines whether the count value i of the X counter does not exceed "256". This is 1 of the line buffer 34
This is because the number of dots on the line is “256” as described above. In this step S418, "YE
If S "is determined, X is determined in the next step S419.
The counter is incremented (i + 1), and the process again proceeds to step S412. That is, steps S412 to S41 are performed until the count value of the X counter reaches "256".
8 is repeated and the number of black dots in the line buffer 34 obtained by referring to the bit number detection table 30d is fetched into the image buffer 38. Thus, FIG.
The image buffer 38 shown in (C) is created.
【0053】図14に示す次のステップS42では、図
15(B)のラインバッファ34のイメージデータか
ら、ヒストグラムバッファ42に図7に示す「下90
°」のヒストグラムを作成する。具体的には、図17の
最初のステップS421において、Xカウンタのカウン
ト値iを「0」にする。つまり、Xカウンタをクリアす
る。次のステップS422において、Yカウンタのカウ
ント値jを「0」にする。つまり、Yカウンタをクリア
する。それとともに、このステップS422では、黒ド
ットの合計数をカウントするための総ドット数カウンタ
SUM のカウント値をクリアする。In the next step S42 shown in FIG. 14, from the image data of the line buffer 34 of FIG. 15B, the "lower 90" shown in FIG.
Create a histogram of "°". Specifically, in the first step S421 in FIG. 17, the count value i of the X counter is set to "0". That is, the X counter is cleared. In the next step S422, the count value j of the Y counter is set to "0". That is, the Y counter is cleared. At the same time, in this step S422, a total dot number counter for counting the total number of black dots
Clear the SUM count value.
【0054】次のステップS423において、CPU2
6は、図18に詳細に示すサブルーチンを実行し、ライ
ンバッファ34内のXカウンタおよびYカウンタ(のカ
ウント値iおよびj)で示す位置のドット数を調べる。
すなわち、図18の最初のステップS4230では、各
X位置およびY位置を初期設定する。すなわち、X位置
x1を「x-(n/2) 」として設定し、X位置x2を「x+(n/2)
」として設定し、Y位置y1を「y-(n/2) 」として設定
し、Y位置y2を「y+(n/2) 」として設定する。ただし、
n=3 のときは、「n/2 」は「1」とする。このステップ
S4230では、また、Yカウンタのカウント値を「y
1」として初期設定するとともに、総ドット数カウンタ
SUM のカウント値を「0」にクリアする。次のステップ
S4231では、Xカウンタのカウント値iを「x1」
として初期設定する。In the next step S423, the CPU2
6 executes the subroutine shown in detail in FIG. 18, and checks the number of dots at the position indicated by (the count values i and j of the X counter and the Y counter) in the line buffer 34.
That is, in the first step S4230 of FIG. 18, each X position and Y position is initialized. That is, the X position
Set x1 as "x- (n / 2)" and set X position x2 as "x + (n / 2)"
, The Y position y1 is set as "y- (n / 2)", and the Y position y2 is set as "y + (n / 2)". However,
When n = 3, "n / 2" is set to "1". In step S4230, the count value of the Y counter is set to "y
1 ”as the initial setting and the total dot number counter
Clear the SUM count value to "0". In the next step S4231, the count value i of the X counter is set to "x1".
Initialize as.
【0055】ステップS4232では、CPU26は、
ラインバッファ34のXカウンタおよびYカウンタのカ
ウント値i(x1)およびj(y1)で示される位置に
黒ドット(「1」)があるかどうか調べる。具体的に
は、図19に示すように、まず、ステップS4240で
ラインバッファ34内のビット位置を求め、その位置に
おけるビットが「1」どうかをステップS4241で判
断する。ビット位置は、「x/8」の余りを「k」とし
たとき「2(7-k) 」で求めることができる。そして、ス
テップS4242またはS4243において「1」また
は「0」を図18のステップS4232に返す。In step S4232, the CPU 26
It is checked whether there is a black dot (“1”) at the position indicated by the count values i (x1) and j (y1) of the X counter and the Y counter of the line buffer 34. Specifically, as shown in FIG. 19, first, in step S4240, the bit position in the line buffer 34 is obtained, and it is determined in step S4241 whether the bit at that position is "1". The bit position can be calculated by "2 (7-k) " when the remainder of "x / 8" is "k". Then, in step S4242 or S4243, "1" or "0" is returned to step S4232 of FIG.
【0056】ステップS4242またはS4243から
返送された「1」または「0」に従って、ステップS4
233(図17)で黒ドット(「1」)があるかどうか
判断する。そして、ステップS4233で「ドット有
り」すなわち「1」と判断したとき、ステップS423
4において、総ドット数カウンタSUM のカウント値をイ
ンクリメント(SUM+1)する。ステップS4233で“N
O”すなわち「0」が判断されると、ステップS423
4を実行したときと同様に、次のステップS4235に
おいて、Xカウンタのカウント値iをインクリメント
し、さらに、次のステップS4236において、そのカ
ウント値iが先に設定した「x2」を超えないかどうか
を判断する。According to "1" or "0" returned from step S4242 or S4243, step S4
It is determined at 233 (FIG. 17) whether there is a black dot (“1”). When it is determined in step S4233 that "there is a dot", that is, "1", step S423
In 4, the count value of the total dot number counter SUM is incremented (SUM + 1). In step S4233, “N
If "O", that is, "0" is determined, step S423
As in the case of executing No. 4, in the next step S4235, the count value i of the X counter is incremented, and in the next step S4236, whether the count value i does not exceed the previously set "x2". To judge.
【0057】このようにして、ステップS4232〜S
4236を繰り返し実行して、1つのラインにおける1
つの文字の左端(x1)から右端(x2)までの各列の
黒ドットの有無を調べ、黒ドットがあれば総ドット数カ
ウンタSUM のカウント値をインクリメントする。次のス
テップS4237ではYカウンタのカウント値jをイン
クリメントし、ステップS4238で、そのカウント値
jが先に設定した「y2」を超えないかどうかを判断す
る。すなわち、1つの文字の上端(y1)から下端(y
2)までの各ラインにおける黒ドットの有無を調べる。In this way, steps S4232-S
4236 is executed repeatedly, 1 in one line
The presence or absence of a black dot in each column from the left end (x1) to the right end (x2) of one character is checked, and if there is a black dot, the count value of the total dot number counter SUM is incremented. In the next step S4237, the count value j of the Y counter is incremented, and in step S4238, it is determined whether or not the count value j exceeds the previously set "y2". That is, the upper end (y1) to the lower end (y
Check for black dots in each line up to 2).
【0058】そして、最後に、ステップS4239でC
PU26に総ドット数カウンタSUMのカウント値を返
し、図17のステップS424にリターンする。図17
のステップS424では、CPU26は、総ドット数カ
ウンタSUM のカウント値に図18のステップS4239
から返送されたドット数を加算して、総ドット数カウン
タSUM のカウント値を更新する。Finally, in step S4239, C
The count value of the total dot number counter SUM is returned to the PU 26, and the process returns to step S424 in FIG. FIG.
In step S424, the CPU 26 sets the count value of the total dot number counter SUM to step S4239 in FIG.
The number of dots returned from is added and the count value of the total dot number counter SUM is updated.
【0059】そして、ステップS425では、CPU2
6は、Yカウンタのカウント値jをインクリメントし、
次のステップS426で、カウント値jが「128」を
超えたかどうか判断する。これは、ラインバッファ34
のライン数が先に説明したように「128」であるから
である。このステップS418において“NO”が判断
されると、先のステップS423に戻り、ステップS4
25までを繰り返して実行する。Then, in step S425, the CPU 2
6 increments the count value j of the Y counter,
In the next step S426, it is determined whether the count value j exceeds "128". This is the line buffer 34
This is because the number of lines is “128” as described above. If "NO" is determined in this step S418, the process returns to the previous step S423 and the step S4
Repeat up to 25.
【0060】ステップS426において“YES”が判
断されると、次のステップS427において、CPU2
6は、総ドット数カウンタSUM のカウント値をヒストグ
ラムバッファ40に書き込む。次のステップS428に
おいてXカウンタがインクリメントされ、ステップS4
29において、Xカウンタのカウント値iが「512」
を超えたかどうか判断される。このステップS429に
おいて“NO”なら、再び、ステップS422に進む。
すなわち、Xカウンタのカウント値が「512」になる
まで、ステップS422〜S429を繰り返し実行し
て、総ドット数カウンタSUM のカウント値に従って、ヒ
ストグラムバッファ40内に図15(D)に示す「下9
0°」のヒストグラムが作成される。If "YES" is determined in the step S426, the CPU 2 is determined in the next step S427.
6 writes the count value of the total dot number counter SUM in the histogram buffer 40. In the next step S428, the X counter is incremented, and step S4
29, the count value i of the X counter is “512”.
It is judged whether or not it exceeds. If "NO" in step S429, the process again proceeds to step S422.
That is, steps S422 to S429 are repeatedly executed until the count value of the X counter reaches "512", and the "lower 9" shown in FIG. 15D is displayed in the histogram buffer 40 according to the count value of the total dot number counter SUM.
A 0 ° ”histogram is created.
【0061】次に、図14のステップS43で示すよう
に、ヒストグラムバッファ40の内容に基づいて、各宛
先番号文字の概略X位置を求める。具体的には、図20
のサブルーチンの最初のステップS431において、文
字数カウンタMCNTをリセットないしクリアし、次いで、
ステップS432において、X方向の開始位置xst を
「1」とし、X方向の終了位置xendを「2048」とし
て、それぞれ初期設定する。続いて、ステップS433
において、各文字の左端x1と右端x2とを求める。このス
テップS433は図21に詳細に示される。Next, as shown in step S43 of FIG. 14, the approximate X position of each destination number character is obtained based on the contents of the histogram buffer 40. Specifically, FIG.
In the first step S431 of the subroutine, the character number counter MCNT is reset or cleared, and then
In step S432, the start position xst in the X direction is set to "1", and the end position xend in the X direction is set to "2048", which are initialized. Then, step S433.
In, the left end x1 and the right end x2 of each character are obtained. This step S433 is shown in detail in FIG.
【0062】図21の最初のステップS4330では、
CPU26は、Xカウンタのカウント値iをクリアす
る。そして、ステップS4331において、CPU26
は、その列位置において、文字が存在するかどうか判断
する。詳しく述べると、ヒストグラムバッファ40内に
は、先に説明したように「下90°」のヒストグラムが
格納されているので、このヒストグラムをたとえば「3
ドット」のような所定の閾値でスライスすることによっ
て、文字の有無が判断できる。つまり、その列位置にお
ける黒ドット数が「3」以上あれば、その位置には文字
があると判断することができる。ただし、閾値「3」は
任意に変更可能であり、閾値が大きくなればノイズの影
響が軽減できるが誤って文字なしと判断する可能性が大
きくなる。閾値が小さくなればノイズの影響を強く受け
るが誤って文字なしと判断する可能性が低減される。In the first step S4330 of FIG. 21,
The CPU 26 clears the count value i of the X counter. Then, in Step S4331, the CPU 26
Determines whether there is a character at that column position. More specifically, since the histogram of “lower 90 °” is stored in the histogram buffer 40 as described above, this histogram is stored as, for example, “3”.
The presence or absence of a character can be determined by slicing with a predetermined threshold value such as “dot”. That is, if the number of black dots at the row position is “3” or more, it can be determined that there is a character at that position. However, the threshold value “3” can be arbitrarily changed, and if the threshold value is increased, the influence of noise can be reduced, but the possibility of erroneously determining that there is no character increases. If the threshold value becomes small, it is strongly affected by noise, but the possibility of erroneously determining that there is no character is reduced.
【0063】ステップS4331において、「文字有
り」と判断した場合には、次のステップS4332にお
いてXカウンタのカウント値iをインクリメントした
後、ステップS4333において、カウント値iが「5
11」に達したかどうか判断する。このステップS43
33において“NO”が判断されると、先のステップS
4331およびS4332が再び実行される。すなわ
ち、Xカウンタのカウント値iが「511」になるま
で、ステップS4331およびS4332を繰り返し実
行する。If it is determined in step S4331 that "characters are present", the count value i of the X counter is incremented in next step S4332, and then in step S4333, the count value i is set to "5".
11 "is reached. This step S43
If “NO” is determined in 33, the previous step S
4331 and S4332 are executed again. That is, steps S4331 and S4332 are repeatedly executed until the count value i of the X counter reaches "511".
【0064】一方、先のステップS4331において
「文字なし」と判断した場合には、ステップS4334
において、文字左端x1として、その時のXカウンタのカ
ウント値iを設定する。続いて、ステップS4335に
おいて、文字がないかどうか判断する。このステップS
4335でも、先のステップS4331と同様に、ヒス
トグラムをたとえば「3ドット」のような所定の閾値で
スライスすることによって文字の有無が判断できる。ス
テップS4335において「文字有り」と判断したと
き、次のステップS4336においてXカウンタのカウ
ント値iをインクリメントした後、ステップS4337
において、カウント値iが「511」に達したかどうか
判断する。このステップS4337において“NO”が
判断されると、先のステップS4335およびS433
6が再び実行される。すなわち、Xカウンタのカウント
値iが「511」になるまで、ステップS4335およ
びS4336を繰り返し実行する。On the other hand, if it is determined that there is no character in the previous step S4331, step S4334.
In, the count value i of the X counter at that time is set as the left end x1 of the character. Succeedingly, in a step S4335, it is determined whether or not there is a character. This step S
In 4335 as well, as in step S4331, the presence / absence of a character can be determined by slicing a histogram with a predetermined threshold value such as “3 dots”. If it is determined in step S4335 that “characters are present”, the count value i of the X counter is incremented in next step S4336, and then step S4337.
At, it is determined whether the count value i has reached “511”. If "NO" is determined in this step S4337, the previous steps S4335 and S433 are performed.
6 is executed again. That is, steps S4335 and S4336 are repeatedly executed until the count value i of the X counter reaches "511".
【0065】先のステップS4335において「文字な
し」と判断した場合には、ステップS4338におい
て、文字右端x2として、その時のXカウンタのカウント
値iを設定する。このようにして、ヒストグラムバッフ
ァ40を参照して各手書き宛て先番号文字の概略左端x1
および概略右端x2が求められる。その後、図20に示す
ステップS434にリターンし、このステップS434
では、CPU26はXカウンタのカウント値iがステッ
プS432で設定した終了位置「512」になったかど
うか判断する。ステップS434で“NO”が判断され
るということは、ヒストグラムバッファ40の図15
(D)で示す右端まで終わっていないことを意味し、こ
の場合には、ステップS435において、CPU26
は、第1文字切り出しバッファ42へステップS433
で求めた概略位置x1およびx2を格納し、ステップS43
6に進む。If it is determined that there is no character in the previous step S4335, the count value i of the X counter at that time is set as the character right end x2 in step S4338. In this way, referring to the histogram buffer 40, the approximate left end x1 of each handwritten destination number character
And the approximate right edge x2 is required. Thereafter, the process returns to step S434 shown in FIG. 20, and this step S434
Then, the CPU 26 determines whether or not the count value i of the X counter has reached the end position “512” set in step S432. The fact that “NO” is determined in step S434 means that the histogram buffer 40 shown in FIG.
(D) means that it has not finished up to the right end, and in this case, in step S435, the CPU 26
Goes to the first character cutout buffer 42 in step S433.
The approximate positions x1 and x2 obtained in step S43 are stored, and step S43 is performed.
Proceed to 6.
【0066】ステップS436では、文字数カウンタMC
NTをインクリメントし、続いて、ステップS437にお
いて、CPU26は、文字数カウンタMCNTのカウント値
が「32」を超えたかどうか判断する。「32」は第1
文字切り出しバッファ42に格納できる最大文字数であ
り、このステップS437で“YES”が判断されると
いうことは、それ以上処理を続行する必要がないことを
意味し、この場合には、ステップS434において“Y
ES”と判断した場合と同様に、図14に示す次のステ
ップS44に進む。ただし、ステップS437で“N
O”と判断した場合には、次のステップS438におい
て、X方向の開始位置xst としてステップS433で求
めた文字右端x2の1つ右の列(カラム)に設定し、ステ
ップS433を再び実行し、各文字の左端x1および右端
x2を求める。In step S436, the character number counter MC
NT is incremented, and subsequently in step S437, the CPU 26 determines whether or not the count value of the character number counter MCNT exceeds “32”. "32" is the first
This is the maximum number of characters that can be stored in the character cutout buffer 42, and that "YES" is determined in this step S437 means that there is no need to continue the process anymore. In this case, in step S434, " Y
As in the case of determining "ES", the process proceeds to the next step S44 shown in Fig. 14. However, in step S437, "N"
If it is determined to be “O”, in the next step S438, the start position xst in the X direction is set to the column one column to the right of the character right end x2 obtained in step S433, and step S433 is executed again. Left edge x1 and right edge of each character
Find x2.
【0067】図14に示すステップS44では、各文字
の上端y1および下端y2ならびに傾きn を求める。具体的
には、図22のサブルーチンを実行する。図22の最初
のステップS440では、文字数カウンタMCNTのカウン
ト値iを「0」とし、第1文字切り出しバッファ42に
切り出された最初の文字を指定する。そして、次のステ
ップS441において、その文字の左端位置x1および右
端位置x2を設定する。続いて、ステップS442におい
て、図23に示すサブルーチンを実行して、上端y1およ
び下端y2を求める。In step S44 shown in FIG. 14, the upper end y1 and the lower end y2 and the slope n of each character are obtained. Specifically, the subroutine of FIG. 22 is executed. In the first step S440 of FIG. 22, the count value i of the character number counter MCNT is set to "0", and the first character cut out in the first character cutout buffer 42 is designated. Then, in the next step S441, the left end position x1 and the right end position x2 of the character are set. Subsequently, in step S442, the subroutine shown in FIG. 23 is executed to obtain the upper end y1 and the lower end y2.
【0068】図23の最初のステップS4420におい
てYカウンタのカウント値jを「0」にするとともに、
ステップS4421においてXカウンタのカウント値i
を初期値x1に設定する。次のステップS4422におい
て、CPU26は、イメージバッファ38のX位置およ
びY位置におけるドット数を調べる。具体的には、図2
5に示すサブルーチンを実行する。すなわち、図25の
ステップS4438において、イメージバッファ38の
Yカウンタのカウント値jで示す位置における傾きのX
成分を求める。このステップS4438は、図26に詳
細に示される。At the first step S4420 in FIG. 23, the count value j of the Y counter is set to "0", and
In step S4421, the count value i of the X counter
Is set to the initial value x1. In the next step S4422, the CPU 26 checks the number of dots at the X position and the Y position of the image buffer 38. Specifically, FIG.
The subroutine shown in 5 is executed. That is, in step S4438 in FIG. 25, the X of the inclination at the position indicated by the count value j of the Y counter of the image buffer 38 is calculated.
Find the ingredients. This step S4438 is shown in detail in FIG.
【0069】図26のステップS4440,S444
2,S4444,S4446,およびS4448のそれ
ぞれにおいて、CPU26は、傾きn が「0」,
「1」,「2」,「3」,および「4」であるかどうか
判断する。傾きn が「0」であるときは、図7の「下9
0°」であり、この場合、ステップS4441におい
て、CPU26は、X成分の値kとして、「k=0」を
設定する。傾きn =1ということは、図7の「左下75
°」であり、この場合、ステップS4443において、
CPU26は、X成分の値kとして、「k=−(j/
4)」を設定する。傾きn =2ということは、図7の
「右下75°」であり、この場合、ステップS4445
において、CPU26は、X成分の値kとして、「k=
j/4」を設定する。傾きn =1ということは、図7の
「左下60°」であり、この場合、ステップS4447
において、CPU26は、X成分の値kとして、「k=
−(j/2)」を設定する。傾きn =4ということは、
図7の「右下60°」であり、この場合、ステップS4
449において、CPU26は、X成分の値kとして、
「k=j/2」を設定する。また、ステップS4450
において、傾きn がそれ以外のとき、たとえば判別でき
ないとき、「k=0」として設定する。Steps S4440 and S444 of FIG.
2, S4444, S4446, and S4448, the CPU 26 determines that the inclination n is "0",
It is determined whether the values are "1", "2", "3", and "4". When the slope n is “0”, “lower 9
0 ° ”, and in this case, in step S4441, the CPU 26 sets“ k = 0 ”as the value k of the X component. The inclination n = 1 means “lower left 75 in FIG.
° ", and in this case, in step S4443,
The CPU 26 sets “k = − (j /
4) ”is set. The inclination n = 2 means “lower right 75 °” in FIG. 7, and in this case, step S4445.
, The CPU 26 sets “k =” as the value k of the X component.
j / 4 ”is set. The inclination n = 1 means “lower left 60 °” in FIG. 7, and in this case, step S4447.
, The CPU 26 sets “k =” as the value k of the X component.
-(J / 2) "is set. The slope n = 4 means that
It is “lower right 60 °” in FIG. 7, and in this case, step S4
At 449, the CPU 26 sets the value k of the X component to
Set “k = j / 2”. Also, step S4450
In the case where the slope n is other than the above, for example, when it cannot be determined, it is set as “k = 0”.
【0070】そして、次のステップS4439におい
て、上述のようにして求めたX成分に従って、イメージ
バッファ38におけるi,j位置のドット数をステップ
S4422に返す。そして、ステップS4423におい
て、CPU26は、ステップS4422で調べたドット
数が「3」より大きいかどうか判断する。このステップ
S4423において“NO”と判断すると、次のステッ
プS4424においてXカウンタをインクリメントし、
ステップS4425で、そのカウント値iが先に設定し
た右端値x2を超えたかどうか判断する。つまり、Xカウ
ンタのカウント値iが右端値x2を超えるまで、ステップ
S4422〜S4424を繰り返し実行し、ドット数を
調べる。Then, in the next step S4439, the number of dots at the i, j position in the image buffer 38 is returned to step S4422 in accordance with the X component obtained as described above. Then, in step S4423, CPU 26 determines whether the number of dots checked in step S4422 is larger than “3”. If “NO” is determined in the step S 4423, the X counter is incremented in the next step S 4424,
In step S4425, it is determined whether the count value i has exceeded the previously set right end value x2. That is, steps S4422 to S4424 are repeatedly executed until the count value i of the X counter exceeds the right end value x2, and the number of dots is checked.
【0071】Xカウンタのカウント値iが右端値x2を超
えると、ステップS4426でYカウンタのカウント値
jをインクリメントし、次のステップS4427におい
て、カウント値jが「127」を超えないかどうか判断
する。このステップS4427で“YES”が判断され
ると、先のステップS4423において“YES”と判
断されたときと同様に、ステップS4428において、
文字の上端y1として、そのときのYカウンタのカウント
値jを設定する。また、ステップS4429において、
Yカウンタのカウント値jを「128」に設定する。When the count value i of the X counter exceeds the right end value x2, the count value j of the Y counter is incremented in step S4426, and it is determined in next step S4427 whether the count value j does not exceed "127". . When "YES" is determined in this step S4427, in the same way as when "YES" is determined in the previous step S4423, in step S4428,
As the upper end y1 of the character, the count value j of the Y counter at that time is set. Also, in step S4429,
The count value j of the Y counter is set to "128".
【0072】次のステップS4430では、CPU26
は、Xカウンタのカウント値iを文字の左端x1として設
定する。続いて、ステップS4431において、先のス
テップS4422と同様にして、そのときのXおよびY
位置における黒ドット数を調べる。そして、ステップS
4432において、CPU26は、ステップS4431
で調べたドット数が「3」より大きいかどうか判断す
る。このステップS4432において“NO”と判断す
ると、次のステップS4433においてXカウンタをイ
ンクリメントし、ステップS4434で、そのカウント
値iが先に設定した右端値x2を超えたかどうか判断す
る。つまり、Xカウンタのカウント値iが右端値x2を超
えるまで、ステップS4431〜S4433を繰り返し
実行し、ドット数を調べる。In the next step S4430, the CPU 26
Sets the count value i of the X counter as the left end x1 of the character. Then, in step S4431, the X and Y at that time are processed in the same manner as in step S4422.
Check the number of black dots at the position. And step S
In 4432, the CPU 26 executes step S4431.
It is determined whether the number of dots checked in step 3 is larger than "3". If "NO" is determined in this step S4432, the X counter is incremented in the next step S4433, and in a step S4434, it is determined whether or not the count value i exceeds the right end value x2 set previously. That is, steps S4431 to S4433 are repeatedly executed until the count value i of the X counter exceeds the right end value x2, and the number of dots is checked.
【0073】Xカウンタのカウント値iが右端値x2を超
えると、ステップS4435でYカウンタのカウント値
jをディクリメントし、次のステップS4436におい
て、カウント値jが「0」以下かどうか判断する。この
ステップS4436で“NO”が判断されると、先のス
テップS4430に戻り、ステップS4436までが繰
り返し実行される。このステップS4436で“YE
S”が判断されると、先のステップS4432において
“YES”と判断されたときと同様に、ステップS44
37において、文字の下端y2として、そのときのYカウ
ンタのカウント値jを設定する。When the count value i of the X counter exceeds the right end value x2, the count value j of the Y counter is decremented in step S4435, and it is determined in next step S4436 whether the count value j is "0" or less. If "NO" is determined in the step S4436, the process returns to the previous step S4430 and the steps up to the step S4436 are repeatedly executed. In step S4436, "YE
If "S" is determined, the step S44 is performed in the same manner as when "YES" is determined in the previous step S4432.
At 37, the count value j of the Y counter at that time is set as the lower end y2 of the character.
【0074】このようにして、図22のステップS44
2において、上端y1および下端y2が求められ、その上端
y1および下端y2がステップS443において、第1文字
切り出しバッファ42に設定される。ただし、このステ
ップS443においては、図26で判定した傾きn もま
た、第1文字切り出しバッファ42に設定される。図2
2の次のステップS444において、CPU26は、文
字数カウンタMCNTのカウント値iが最初に設定した値よ
り「1」少ない値(MCNT-1)を超えたかどうか判断す
る。もし、このステップS444において“NO”な
ら、ステップS445において文字数カウンタMCNTのカ
ウント値iをインクリメントし、先のステップS441
に戻る。つまり、最初に設定した文字数カウンタの値に
達するまで、ステップS441〜S445を繰り返して
実行し、各文字の上端および下端を求める。したがっ
て、ステップS444において“YES”が判断される
と、図14に示す次のステップS45に進む。In this way, step S44 of FIG.
2, the upper end y1 and the lower end y2 are found, and the upper end
y1 and the lower end y2 are set in the first character cutout buffer 42 in step S443. However, in step S443, the slope n determined in FIG. 26 is also set in the first character cutout buffer 42. FIG.
In step S444 subsequent to 2, the CPU 26 determines whether or not the count value i of the character number counter MCNT exceeds the value (MCNT-1) smaller by “1” than the initially set value. If "NO" in this step S444, the count value i of the character number counter MCNT is incremented in a step S445, and the previous step S441 is executed.
Return to That is, steps S441 to S445 are repeated until the value of the initially set character number counter is reached, and the upper and lower ends of each character are obtained. Therefore, if "YES" is determined in step S444, the process proceeds to the next step S45 shown in FIG.
【0075】各種条件値を設定するこのステップS45
が詳細に図27に示される。図27の最初のステップS
4501では、CPU26は、文字数カウンタMCNTのカ
ウント値を「0」にクリアする。続くステップS450
2では、CPU26は、変数である文字領域のX方向全
長b-x-len ,Y方向全長b-y-len および面積b-xy-lenを
初期設定する。そして、次のステップS4503におい
て、各文字部分の大きさdx,dyおよびdxy ならびに文字
領域全長および面積b-x-len ,b-y-len およびb-xy-len
を計算する。つまり、第1文字切り出しバッファ42に
設定されている各文字の左端x1および右端x2でX方向の
大きさdxを求め、各文字の上端y1および下端y2でY方向
の大きさdyを求め、「dx×dy」で面積dxy を求める。そ
して、ステップS4502で初期設定した文字領域全長
b-x-len ,b-y-len およびb-xy-lenに、それぞれ、文字
部分の大きさdx,dyおよびdxy を加えて、この全長b-x-
len ,b-y-len およびb-xy-lenを更新する。次のステッ
プS4504では、文字数カウンタMCNTのカウント値i
が設定総文字数noを超えたかどうか判断する。このステ
ップS4504で“NO”が判断されると、次のステッ
プS4505において文字数カウンタMCNTのカウント値
iがインクリメントされ、再びステップS4502に戻
る。つまり、文字数カウンタMCNTのカウント値iが設定
総文字数noを超えるまで、各文字について、各文字部分
の大きさおよび文字領域全長を計算する。This step S45 of setting various condition values
Are shown in detail in FIG. First step S in FIG. 27
In 4501, the CPU 26 clears the count value of the character number counter MCNT to “0”. Continued Step S450
In step 2, the CPU 26 initializes the variable X-direction total length bx-len, the Y-direction total length by-len, and the area b-xy-len, which are variables. Then, in the next step S4503, the size dx, dy and dxy of each character part and the total length and area bx-len, by-len and b-xy-len of the character area.
Is calculated. That is, the size dx in the X direction is calculated at the left end x1 and the right end x2 of each character set in the first character cutout buffer 42, and the size dy in the Y direction is calculated at the upper end y1 and the lower end y2 of each character. The area dxy is calculated by "dx x dy". Then, the total length of the character area initialized in step S4502
The total length bx-len, by-len and b-xy-len is added to the character size dx, dy and dxy, respectively.
Update len, by-len and b-xy-len. In the next step S4504, the count value i of the character number counter MCNT is
Determines whether the number exceeds the set total number of characters no. If "NO" is determined in this step S4504, the count value i of the character number counter MCNT is incremented in the next step S4505, and the flow returns to step S4502. That is, the size of each character portion and the total length of the character area are calculated for each character until the count value i of the character number counter MCNT exceeds the set total character number no.
【0076】続くステップS4506では、CPU26
は、文字領域全長b-x-len ,b-y-len およびb-xy-lenと
文字数noとに基づいて、各平均値b-x-mean,b-y-meanお
よびb-xy-mean を計算する。これは、文字領域全長およ
び面積を文字数noで割ることによって、単純平均で求め
ることができる。そして、ステップS4507で文字数
カウンタMCNTのカウント値iをリセットし、次のステッ
プS4508において、変数である空白の長さw-len お
よび空白の数w-noをそれぞれ「0」として初期設定す
る。続くステップS4509において、第1文字切り出
しバッファ42を参照して、空白部分のX方向の大きさ
dxを求める。すなわち、第1文字切り出しバッファ42
の或る文字の右端x2と次の文字の左端x1との差として、
空白部分の大きさdxが求まる。In the following step S4506, the CPU 26
Calculates each average value bx-mean, by-mean and b-xy-mean based on the total character area bx-len, by-len and b-xy-len and the number of characters no. This can be obtained by a simple average by dividing the total length and area of the character area by the number of characters no. Then, in step S4507, the count value i of the character number counter MCNT is reset, and in the next step S4508, the variable blank length w-len and the number of blanks w-no are initialized to "0". In a succeeding step S4509, the size of the blank portion in the X direction is referred to with reference to the first character cutout buffer 42.
Calculate dx. That is, the first character cutout buffer 42
As the difference between the right edge x2 of one character and the left edge x1 of the next character of
The size dx of the blank part is obtained.
【0077】次のステップS4510において、CPU
26は、空白部分のX方向大きさdxが文字部分のX方向
長さの平均値b-x-meanの1.5倍より小さいがどうか判
断する。このステップS4510において“NO”が判
断されると、ステップS4512におて文字数カウンタ
MCNTのカウント値iをインクリメントして、ステップS
4509が再び実行される。もし、ステップS4510
において“YES”が判断されると、ステップS451
1において、空白部分の長さdxを先にすなわち4508
で初期設定した空白長さw-len に加えるとともに、空白
数w-noをインクリメントする。つまり、文字部分のX方
向長さの平均値b-x-meanの1.5倍より小さい空白部分
は文字間スペースとして処理する。At the next step S4510, the CPU
26 determines whether or not the X-direction size dx of the blank portion is smaller than 1.5 times the average value bx-mean of the X-direction length of the character portion. If "NO" is determined in the step S4510, a character number counter is displayed in a step S4512.
The count value i of MCNT is incremented, and step S
4509 is executed again. If step S4510
If "YES" is determined in step S451.
In 1, the length dx of the blank portion is set first, that is, 4508
In addition to the blank length w-len initialized by, the number of blanks w-no is incremented. That is, a blank portion smaller than 1.5 times the average value bx-mean of the length of the character portion in the X direction is processed as a space between characters.
【0078】そして、ステップS4513において、文
字数カウンタMCNTのカウント値iが設定した文字数noに
達したかどうか判断される。したがって、このステップ
S4513において“NO”が判断されると、先のステ
ップS4512でカウント値iをインクリメントした
後、ステップS4509に戻る。すなわち、ステップS
4509〜S4511を繰り返し実行して、各文字間ス
ペースを特定する。Then, in step S4513, it is determined whether the count value i of the character number counter MCNT has reached the set character number no. Therefore, if "NO" is determined in step S4513, the count value i is incremented in the previous step S4512, and then the process returns to step S4509. That is, step S
4509 to S4511 are repeatedly executed to identify each character space.
【0079】各種条件設定ステップの最後のステップS
4514では、CPU26は、次の文字切り出しステッ
プS46のために、各変数を設定する。詳しく述べる
と、空白部分の平均w-meanは、空白部分の長さ割る空白
部分の数「w-len/w-no」として設定する。空白の大きさ
space-max は、文字のX方向長さに空白部分の平均の2
倍を加えたもの「b-y-mean+(w-mean×2)」として設定す
る。文字切れの大きさspace-min は、空白部分の平均を
「2」で割ったもの「w-mean/2」として設定する。区切
りの大きさcut-sizeは、空白の大きさの5倍「space-ma
x ×5 」として設定する。エッジの大きさedge-size
は、空白の大きさの2倍「space-max ×2 」として設定
する。ノイズのX方向の大きさx-noise は、文字のX方
向長さを「2」で割った「b-x-mean/2」として設定す
る。ノイズのY方向の大きさy-noise は、文字のY方向
長さを「2」で割った「b-y-mean/2」として設定する。The last step S of various condition setting steps
In 4514, the CPU 26 sets each variable for the next character cutting step S46. More specifically, the average w-mean of the blank part is set as the number of blank parts divided by the length of the blank part "w-len / w-no". Space size
space-max is the average of the white space in the X direction of the character, which is 2
It is set as “by-mean + (w-mean × 2)” which is doubled. The size of character break space-min is set as "w-mean / 2", which is obtained by dividing the average of the blank part by "2". The size of the cut, cut-size, is 5 times the size of the space, "space-ma
x x 5 ”. Edge size
Is set as twice the size of the space, "space-max x 2". The magnitude x-noise of the noise in the X direction is set as "bx-mean / 2" obtained by dividing the length of the character in the X direction by "2". The Y-direction magnitude y-noise is set as "by-mean / 2" obtained by dividing the Y-direction length of a character by "2".
【0080】その後、図14に示す文字切り出し位置の
設定ステップに進む。このステップS46は、図28以
降に詳細に示される。すなわち、図28の最初のステッ
プS4601では、CPU26は、2つの文字数カウン
タMCNT1 およびMCNT2のカウント値iおよびjをリセッ
ト(クリア)し、次のステップS4602において、第
1文字切り出しバッファ42から、各文字の左端位置x
1,右端位置x2,上端位置y1および下端位置y2を読み出
して、各文字のX方向長さdxおよびY方向長さdyを計算
する。Thereafter, the process proceeds to the step of setting the character cutout position shown in FIG. This step S46 is shown in detail from FIG. 28 onward. That is, in the first step S4601 of FIG. 28, the CPU 26 resets (clears) the count values i and j of the two character number counters MCNT1 and MCNT2, and in the next step S4602, the respective characters are extracted from the first character cutout buffer 42. The leftmost position x of
1, the right end position x2, the upper end position y1 and the lower end position y2 are read out, and the X-direction length dx and the Y-direction length dy of each character are calculated.
【0081】続くステップS4603では、第1文字数
カウンタMCNT1 のカウント値iが全文字数noを超えない
かどうか判断する。このステップS4603において
“NO”が判断されるということは、第2文字切り出し
バッファ44に設定すべき第1文字切り出しバッファ4
2のデータが残っていることを意味する。そこで、CP
U26は、続くステップS4604において、各文字間
の空白の大きさxsを計算する。具体的には、空白の大き
さxsは、そのときの第1文字数カウンタMCNT1 のカウン
ト値iに「1」を加えたデータ(i+1)で指定される
文字、すなわち次の文字の左端x1から第1文字数カウ
ンタMCNT1 のカウント値iで指定される当該文字の右端
x2までのカラム数を計算することによって求まる。In a succeeding step S4603, it is determined whether or not the count value i of the first character number counter MCNT1 does not exceed the total number of characters no. The judgment of “NO” in step S4603 means that the first character cutout buffer 4 to be set in the second character cutout buffer 44.
It means that 2 data remains. So, CP
U26 calculates the size xs of the space between each character in the following step S4604. Specifically, the blank size xs is the character specified by the data (i + 1) obtained by adding “1” to the count value i of the first character number counter MCNT1 at that time, that is, the left end x1 of the next character. It can be obtained by calculating the number of columns up to the right end x2 of the character specified by the count value i of the 1-character number counter MCNT1.
【0082】そして、次のステップS4605では、計
算した空白の大きさxsが文字切れかどうかを判断する条
件値space-min より小さいかどか、すなわち検出した空
白が1つの文字を構成する2つの部分の間の空白である
かどうかを判断する。このステップS4605で“YE
S”が判断されると、ステップS4606で、空白除去
の処理を行う。つまり、このステップS4606では、
第1文字数カウンタMCNT1 のカウント値iに「1」を加
えたデータ(i+1)で指定される文字、すなわち、次
の文字の左端x1および右端x2を当該文字の左端x1
および右端x2とし、次の文字の上端y1および下端y
2を当該文字の上端y1および下端y2とする。Then, in the next step S4605, whether or not the calculated space size xs is smaller than the condition value space-min for judging whether or not there is a character break, that is, the detected space is two parts forming one character. To determine if there is a space between. In step S4605, "YE
If "S" is determined, blank removal processing is performed in step S4606. That is, in step S4606,
The character specified by the data (i + 1) obtained by adding “1” to the count value i of the first character number counter MCNT1, that is, the left end x1 and the right end x2 of the next character are the left end x1 of the character.
And the right end x2, the upper end y1 and the lower end y of the next character.
Let 2 be the upper end y1 and the lower end y2 of the character.
【0083】一方、ステップS4605で“NO”が判
断されると、ステップS4603で“YES”が判断さ
れたときと同様に、ステップS4607およびS460
8を実行する。すなわち、ステップS4602で計算し
たX幅dxおよびY幅dyがそれぞれノイズ判定値x-noise
およびy-noise より小さいかどうかを判定する。X幅dx
およびY幅dyがそれぞれノイズ判定値x-noise およびy-
noise より小さいと、ステップS4607およびS46
08においてともに“YES”が判断され、次のステッ
プS4609へ進む。先のステップS4606を実行し
た後にも、このステップS4609へ進む。ステップS
4609では、CPU26は、第2文字数カウンタMCNT
2 のカウント値j(第2文字切り出しバッファ44用)
が「32」より小さいかどうか、すなわち第2文字切り
出しバッファ44の全ての領域に必要なデータを格納し
たかどうかを判断する。もし、“YES”なら、ステッ
プS4610で第1文字数カウンタMCNT1 のカウント値
i(第1文字切り出しバッファ42用)をインクリメン
トし、次のステップS4611で、第1文字数カウンタ
MCNT1 のカウント値iが設定総文字数noに達したかどう
かを判断する。つまり、第1文字切り出しバッファ42
に読み出すべきデータが残っていないかどうかを判断す
る。このステップS4611で“NO”が判断される
と、第1文字切り出しバッファ42に未だデータがの残
っているので、先のステップS4602に戻る。もし、
ステップS4611において“YES”が判断される
と、文字数noとして第2文字数カウンタMCNT2 のカウン
ト値jを設定して図11の次のステップS5に進む。On the other hand, if "NO" is determined in step S4605, steps S4607 and S460 are performed in the same manner as when "YES" is determined in step S4603.
Execute 8. That is, the X width dx and the Y width dy calculated in step S4602 are respectively the noise determination value x-noise.
And y-noise. X width dx
And Y width dy are noise judgment values x-noise and y-, respectively.
If smaller than noise, steps S4607 and S46
Both are determined to be "YES" in 08, and the process advances to the next step S4609. After executing the previous step S4606, the process also proceeds to step S4609. Step S
In 4609, the CPU 26 causes the second character number counter MCNT.
2 count value j (for second character cutout buffer 44)
Is smaller than "32", that is, whether necessary data is stored in all areas of the second character cutout buffer 44. If “YES”, the count value i (for the first character cutout buffer 42) of the first character number counter MCNT1 is incremented in step S4610, and in the next step S4611, the first character number counter
It is determined whether the count value i of MCNT1 has reached the set total number of characters no. That is, the first character cutout buffer 42
It is determined whether there is any data left to be read. If "NO" is determined in this step S4611, since there is still data in the first character cutout buffer 42, the process returns to the previous step S4602. if,
If "YES" is determined in step S4611, the count value j of the second character number counter MCNT2 is set as the character number no, and the process proceeds to the next step S5 in FIG.
【0084】ステップS4607またはS4608にお
いて“NO”と判断されたとき、ステップS4602で
計算した文字幅dxおよびdyが切り出すべき宛先情報の文
字の文字幅であるので、図29のステップS4613へ
進む。このステップS4613では、図9に示す文字部
分が横長の長方形であるかどうか、すなわち切り出しエ
ラーがあるかどうかが判断される。具体的には、このス
テップS4613ではX幅dxがY幅dyの2倍以上かどう
か判断される。たとえば図15(A)に示す文字「5
7」や「21」は水平(x)方向だけみれば、後の文字
が前の文字に重なって記入されている。このような場
合、文字が重なっているととして、ステップS4614
において、後述の重なり文字の切り出し処理を実行す
る。If "NO" is determined in step S4607 or S4608, the character widths dx and dy calculated in step S4602 are the character widths of the characters of the destination information to be cut out, and the process advances to step S4613 in FIG. In this step S4613, it is determined whether or not the character portion shown in FIG. 9 is a horizontally long rectangle, that is, whether or not there is a cutout error. Specifically, in step S4613, it is determined whether the X width dx is twice the Y width dy or more. For example, the character "5" shown in FIG.
"7" and "21" are written in such a manner that the latter character overlaps the former character when viewed only in the horizontal (x) direction. In such a case, it is determined that the characters overlap, and step S4614 is performed.
In, the cut-out processing of the overlapping character described later is executed.
【0085】ステップS4613において“NO”と判
断された場合には、文字は通常処理可能な文字であるの
で、次のステップS4615において、詳細切り出し位
置を求める。具体的には、このステップS4615は、
図30〜図33に示すフロー図に従って実行される。図
30の最初のステップS4616では、CPU26は、
XカウンタXCNTのカウント値i(XCNT)として第1文字切
り出しバッファ42の左端x1のデータを設定する。続
くステップS4617では、CPU26は、Yカウンタ
YCNTのカウント値j(YCNT)として第1文字切り出しバッ
ファ42の上端y1のデータを設定する。そして、ステ
ップS4618において、図17のステップS423と
同様に、図18のルーチンを実行することによって、ラ
インバッファ34のX位置、Y位置におけるドット数を
調べる。したがって、このステップS4618でドット
数がわかる。If "NO" is determined in step S4613, the character is a character that can be normally processed, and therefore in the next step S4615, the detailed cutout position is obtained. Specifically, this step S4615 is
It is executed according to the flow charts shown in FIGS. In the first step S4616 in FIG. 30, the CPU 26
The data at the left end x1 of the first character cutout buffer 42 is set as the count value i (XCNT) of the X counter XCNT. In subsequent step S4617, CPU 26 determines Y counter
The data of the upper end y1 of the first character cutout buffer 42 is set as the count value j (YCNT) of YCNT. Then, in step S4618, as in step S423 of FIG. 17, the number of dots at the X position and the Y position of the line buffer 34 is checked by executing the routine of FIG. Therefore, the number of dots can be known in this step S4618.
【0086】次のステップS4619では、CPU26
は、検出したドット数が「3」以上であるかどうかを判
断する。このステップS4619で“NO”が判断され
るとき、次のステップS4620において、Yカウンタ
YCNTのカウント値jが第1文字切り出しバッファ42の
下端y2より小さいかどうか判断する。YカウンタYCNT
のカウント値jが下端y2より小さいと、次のステップ
S4621でYカウンタYCNTのカウント値jをインクリ
メントしたのち、先のステップS4618に戻る。ステ
ップS4620で“NO”と判断されたとき、次のステ
ップS4622において、XカウンタXCNTのカウント値
iが第1文字切り出しバッファ42の右端x2)より小
さいかどうか判断する。カウント値iが右端x2より小
さいと、次のステップS4623でXカウンタXCNTのカ
ウント値iをインクリメントした後、先のステップS4
617に戻る。In the next step S4619, the CPU 26
Determines whether the number of detected dots is “3” or more. When "NO" is determined in this step S4619, in the next step S4620, the Y counter
It is determined whether the count value j of YCNT is smaller than the lower end y2 of the first character cutout buffer 42. Y counter YCNT
If the count value j of is smaller than the lower end y2, the count value j of the Y counter YCNT is incremented in the next step S4621, and then the process returns to the previous step S4618. When "NO" is determined in the step S4620, it is determined in a next step S4622 whether the count value i of the X counter XCNT is smaller than the right end x2) of the first character cutout buffer 42). If the count value i is smaller than the right end x2, the count value i of the X counter XCNT is incremented in the next step S4623, and then the previous step S4.
Return to 617.
【0087】ステップS4619,S4620およびS
4622でいずれも“NO”と判断されると、ステップ
S4624において、図29のステップS4615に
「ドット数=0」を返す。一方、ステップS4619に
おいて“YES”が判断されると、ステップS4625
において、CPU26は、当該文字の切り出し位置x1
として、そのときのXカウンタXCNTのカウント値iを設
定する。Steps S4619, S4620 and S
If both are judged to be "NO" in 4622, "dot number = 0" is returned to step S4615 of FIG. 29 in step S4624. On the other hand, if “YES” is determined in step S4619, step S4625.
At, the CPU 26 determines the cutout position x1 of the character.
Then, the count value i of the X counter XCNT at that time is set.
【0088】ステップS4625の後、図31に示すス
テップS4626に進む。しかしながら、図31の各ス
テップS4626〜S4635は、ステップS4635
において右端x2としてそのときのXカウンタXCNTのカ
ウント値iを設定することを除いて、図30のステップ
S4616〜S4625とほぼ同じであり、ここでは重
複する説明は省略する。After step S4625, the process advances to step S4626 shown in FIG. However, steps S4626 to S4635 of FIG.
Except that the count value i of the X counter XCNT at that time is set as the right end x2 in step S4616 to step S4625 in FIG.
【0089】ステップS4635の後、図32に示すス
テップS4636に進む。しかしながら、図32の各ス
テップS4636〜S4645は、ステップS4645
において上端y1としてそのときのYカウンタYCNTのカ
ウント値jを設定することを除いて、図30のステップ
S4616〜S4625とほぼ同じである。また、ステ
ップS4645の後、図33に示すステップS4646
に進む。しかしながら、図33の各ステップS4646
〜S4655は、ステップS4655において下端y2
としてそのときのYカウンタYCNTのカウント値jを設定
することを除いて、図30のステップS4616〜S4
625とほぼ同じである。After step S4635, the flow advances to step S4636 shown in FIG. However, steps S4636 to S4645 in FIG.
In step S4616 to S4625 of FIG. 30, except that the count value j of the Y counter YCNT at that time is set as the upper end y1 in FIG. Also, after step S4645, step S4646 shown in FIG.
Proceed to. However, each step S4646 in FIG.
~ S4655 is the lower end y2 in step S4655.
Except that the count value j of the Y counter YCNT at that time is set as steps S4616 to S4 in FIG.
It is almost the same as 625.
【0090】このようにして、図29のステップS46
15を実行することによって、宛先情報の文字の位置デ
ータが求められ得る。したがって、次のステップS46
56において、CPU26は、ステップS4615で求
めた各文字の切り出し位置データx1,x2,y1,y
2および傾き番号n を格納する。ただし、この実施例で
は、先に説明したように、重なりを検出するまでは、1
方向、したがって、90°のみでヒストグラムバッファ
40を作成する。したがって、n =0として書き込まれ
る。In this way, step S46 in FIG.
By executing 15, the position data of the character of the destination information can be obtained. Therefore, the next step S46
In 56, the CPU 26 cuts out position data x1, x2, y1, y of each character obtained in step S4615.
2 and the slope number n are stored. However, in this embodiment, as described above, it is 1 until the overlap is detected.
Create the histogram buffer 40 only in direction, and therefore 90 °. Therefore, it is written as n = 0.
【0091】図29の次のステップS4657では、C
PU26は、XカウンタXCNTのカウント値iが設定され
た文字数noに達したか否かが判断される。ここで、“Y
ES”が判断されると、先のステップS4614を経た
後と同様に、先のステップS4609へ戻る。ステップ
S4657で“NO”が判断されると、次の3つのステ
ップS4658,S4659およびS4660におい
て、ステップS4604で計算した空白の大きさxsと各
変数cut-size,edge-size およびspace-max とを比較
し、先に検出した空白部分が、手書き宛先情報の各文字
と他の文字との区切り,原稿のエッジ,および文字間ス
ペースのいずれに該当するかを判断する。そして、ステ
ップS4660において“YES”と判断されると、ス
テップS4661において、第2文字切り出しバッファ
44に文字間スペースとして「−1」を書き込む。した
がって、第2文字切り出しバッファ44には、宛先情報
の各文字の切り出し位置および文字間スペースが書き込
まれる。そして、ステップS4662においてYカウン
タYCNTのカウント値jをインクリメントした後、ステッ
プS4609(図28)に戻る。In the next step S4657 of FIG. 29, C
The PU 26 determines whether or not the count value i of the X counter XCNT has reached the set number of characters no. Where "Y
If "ES" is determined, the process returns to the previous step S4609 as in the case after the previous step S4614. If "NO" is determined in the step S4657, in the next three steps S4658, S4659 and S4660, The blank size xs calculated in step S4604 is compared with each variable cut-size, edge-size and space-max, and the previously detected blank portion is a delimiter between each character of the handwriting destination information and another character. Then, it is determined which of the document edge and the space between characters corresponds to, and if “YES” is determined in step S4660, in step S4661, the second character cut-out buffer 44 stores “- Write 1 ”. Therefore, the cut-out position and inter-character space of each character of the destination information are written in the second character cut-out buffer 44. Then, after incrementing the count value j of the Y counter YCNT in step S4662, the process returns to step S4609 (FIG. 28).
【0092】ただし、ステップS4659において空白
部分の大きさxsがエッジの判定基準edge-size を超えた
場合には、ステップS4663において、そのエッジが
前すなわち原稿の左側にあるのか、後すなわち原稿の右
側にあるのかを判定する。エッジが原稿の左側にあれ
ば、このステップS4663において“YES”が判断
され、その場合には、次のステップS4664において
YカウンタYCNTのカウント値jをクリアした後、ステッ
プS4609へ進む。また、エッジが原稿の右側にある
ときは、ステップS4663から先のステップS461
2に進む。However, if the size xs of the blank portion exceeds the edge judgment criterion edge-size in step S4659, it is determined in step S4663 whether the edge is on the front, that is, on the left side of the document, or on the back, that is, on the right side of the document. To determine if it is. If the edge is on the left side of the original, "YES" is determined in this step S4663. In that case, the count value j of the Y counter YCNT is cleared in the next step S4664, and the process proceeds to step S4609. If the edge is on the right side of the document, step S461 is followed by step S461.
Proceed to 2.
【0093】次に、図34を参照して、重なり文字の処
理方法について簡単に説明する。図15(A)の原稿の
ように、たとえば「57」がX方向からみて重なった状
態で記入されたとき、図14のステップS42で作成し
たヒストグラムバッファ40を参照して概略X位置およ
び概略Y位置が求められると、図34(A)に示すよう
にdx>dy*2である横長の長方形が形成される。すなわ
ち、切り出しエラーが発生したと判断される。このと
き、図34(B)に示すように、該当部分についての
み、互いに異なる5つの方向(図7)において、ヒスト
グラムバッファ40を作成する。そして、その5つのヒ
ストグラムバッファを参照して、個別に概略X位置およ
び文字数noを求める。そして、5方向のうちで文字数の
最も多い方向を選択する。図34(C)の実施例では、
傾き番号n =1またはn =3において文字数no=2とな
り、文字数no=1である他の方向より文字数が多い。し
たがって、この段階では、たとえば傾き番号n =1のヒ
ストグラムに基づいて概略X位置を求める。そして、す
べての概略X位置について、先に説明したステップS4
6(図14)を実行することによって、詳細切り出し位
置を求める。Next, a method of processing overlapping characters will be briefly described with reference to FIG. When, for example, "57" is written in the state of being overlapped as seen from the X direction, as in the case of the original document of FIG. When the position is obtained, a horizontally long rectangle with dx> dy * 2 is formed as shown in FIG. That is, it is determined that a cutout error has occurred. At this time, as shown in FIG. 34B, the histogram buffer 40 is created only in the corresponding portion in five different directions (FIG. 7). Then, the approximate X position and the number of characters no are individually obtained by referring to the five histogram buffers. Then, the direction with the largest number of characters is selected from the five directions. In the example of FIG. 34 (C),
The number of characters is no = 2 when the inclination number is n = 1 or n = 3, and the number of characters is larger than in other directions where the number of characters is no = 1. Therefore, at this stage, for example, the approximate X position is obtained based on the histogram of the inclination number n = 1. Then, for all the approximate X positions, step S4 described above is performed.
The detailed cut-out position is obtained by executing 6 (FIG. 14).
【0094】図35の最初のステップS4665では、
CPU26は、文字数カウンタMCNTをクリアする。続い
て、次のステップS4666において、CPU26は、
先のステップS4602(図28)と同様にして、切り
出し領域x1,x2,y1およびy2を設定する。そし
て、次のステップS4667において、ヒストグラムバ
ッファ40をクリアする。In the first step S4665 of FIG. 35,
The CPU 26 clears the character number counter MCNT. Then, in the next step S4666, the CPU 26
Similar to step S4602 (FIG. 28), the cutout areas x1, x2, y1 and y2 are set. Then, in the next step S4667, the histogram buffer 40 is cleared.
【0095】次のステップS4668において、CPU
26は、先のステップS42(図14)すなわち、図1
7のルーチンを実行して、図7に示す5つの方向のそれ
ぞれについてヒストグラムバッファを作成する。この5
つの方向のヒストグラムバッファを参照して、次のステ
ップS4669において、ステップS43(図14)す
なわち、図20のルーチンを実行して、5つの方向のす
べてについて概略X位置を求める。このとき、5方向の
概略X方向位置は、その文字数とともに、重なり文字切
り出しバッファ46に格納される。また、ステップS4
670において、ステップS44(図14)すなわち、
図22のルーチンを実行して、概略Y位置を求める。そ
して、レジスタ領域36aの文字数noとして重なり文字
切り出しバッファ46に格納されているイメージデータ
の文字数を設定する。In next step S4668, CPU
26 is the previous step S42 (FIG. 14), that is, FIG.
7 routine is executed to create a histogram buffer for each of the five directions shown in FIG. This 5
Referring to the histogram buffer in one direction, in the next step S4669, step S43 (FIG. 14), that is, the routine in FIG. 20 is executed to obtain the approximate X position in all five directions. At this time, the positions in the approximate X direction in the five directions are stored in the overlapping character cutout buffer 46 together with the number of characters. Also, step S4
At 670, step S44 (FIG. 14), that is,
The routine of FIG. 22 is executed to obtain the approximate Y position. Then, the number of characters of the image data stored in the overlapping character cutout buffer 46 is set as the number of characters no in the register area 36a.
【0096】次のステップS4672では、CPU26
は、ラインカウンタLCNTのカウント値が「5」より小さ
いかどうかを判断する。そして、ラインカウンタLCNTの
カウント値が「5」より小さいときには、ステップS4
673でラインカウンタLCNTをインクリメントした後、
先のステップS4667に戻る。ラインカウンタLCNTの
カウント値が「5」より小さくないとき、CPU26
は、次のステップS4674において、ステップS46
79で求めた概略X位置のデータ(重なり文字切り出し
バッファ46)を参照して、文字数の最も多い方向の文
字数を文字数レジスタnoに設定する。それとともに、ス
テップS4675で、CPU26は、文字数カウンタMC
NTのカウント値k(MCNT)をクリアする。In the next step S4672, the CPU 26
Determines whether the count value of the line counter LCNT is smaller than "5". When the count value of the line counter LCNT is smaller than "5", step S4
After incrementing the line counter LCNT at 673,
It returns to the previous step S4667. When the count value of the line counter LCNT is not smaller than "5", the CPU 26
In the next step S4674, step S46
The number of characters in the direction having the largest number of characters is set in the number-of-characters register no with reference to the data at the approximate X position (overlapping character cutout buffer 46) obtained at 79. At the same time, in step S4675, CPU 26 causes character number counter MC
Clear the NT count value k (MCNT).
【0097】その状態で、ステップS4676におい
て、先のステップS46かつしたがってS4615すな
わち、図30〜図33のルーチンを実行して、詳細な切
り出し位置を求める。その後、ステップS4677にお
いて、上で求めた切り出し位置を第2文字切り出しバッ
ファ44に格納する。そして、図36のステップS46
78に進み、文字数カウンタMCNTのカウント値kが設定
した文字数noに達したかどうかを判断する。文字数カウ
ンタMCNTのカウント値kが設定文字数noに達していれ
ば、すなわち、ステップS4678で“YES”が判断
されれば、ステップS4679において、そのときのY
カウンタYCNTのカウント値jをステップS4609(図
28)に返す。ただし、ステップS4678で“NO”
と判断されたときには、ステップS4680で文字数カ
ウンタMCNTおよびYカウンタYCNTをそれぞれインクリメ
ントし、次のステップS4681でYカウンタYCNTのカ
ウント値jが「32」なるまで、ステップS4676〜
ステップS4680を繰り返し実行する。In this state, in step S4676, the detailed cutting-out position is obtained by executing the previous step S46 and therefore S4615, that is, the routines shown in FIGS. Then, in step S4677, the cutout position obtained above is stored in the second character cutout buffer 44. Then, step S46 in FIG.
In step 78, it is determined whether the count value k of the character number counter MCNT has reached the set character number no. If the count value k of the character number counter MCNT has reached the set number of characters no, that is, if “YES” is determined in step S4678, in step S4679, Y at that time is determined.
The count value j of the counter YCNT is returned to step S4609 (FIG. 28). However, “NO” in step S4678
If it is determined that the number of characters counter MCNT and the Y counter YCNT are incremented in step S4680, and the count value j of the Y counter YCNT becomes "32" in the next step S4681, steps S4676 to
Step S4680 is repeatedly executed.
【0098】なお、上述の実施例ではステップS43に
おいてヒストグラムバッファ40を参照して概略X方向
位置を求め、ステップS44においてイメージバッファ
38を参照して概略Y方向位置を求めるようにした。し
かしながら、概略X方向位置を求めた後、ラインバッフ
ァ34を参照して図9の外接長方形の各位置を求めるよ
うにしてもよいことは勿論である。In the above embodiment, the approximate position in the X direction is obtained by referring to the histogram buffer 40 in step S43, and the position in the approximate Y direction is obtained by referring to the image buffer 38 in step S44. However, it is needless to say that the position of the circumscribed rectangle in FIG. 9 may be calculated with reference to the line buffer 34 after the position in the approximate X direction is calculated.
【0099】さらに、上述の実施例では、重なり文字を
検出する場合、図35のステップS4674に示すよう
に、5方向のヒストグラムを作成し、そのうちで文字数
の最も多い方向を検出し、その方向のヒストグラムの文
字位置を概略切り出し位置として設定した。しかしなが
ら、実際の重なり文字の部分には種々の方向の文字が含
まれていることが多く、上述の実施例では重なり文字の
切り出しが必ずしも正確でないこともあった。そこで、
以下に述べる実施例は、重なり文字の文字を確定する場
合に、文字数の最も多い方向を選択するのではなく、各
方向の文字幅を重なり文字部分の全長の最大値で正規化
し、その結果最小の文字幅となる方向を選択するように
して、重なり文字を正確に検出しようとするものであ
る。Furthermore, in the above embodiment, when detecting overlapping characters, a histogram of 5 directions is created as shown in step S4674 of FIG. 35, and the direction with the largest number of characters is detected and the direction of that direction is detected. The character position of the histogram was set as the rough cutout position. However, the actual overlapping character portion often contains characters in various directions, and in the above-described embodiment, the cutting out of the overlapping character is not always accurate. Therefore,
In the embodiments described below, when determining the characters of overlapping characters, the direction in which the number of characters is the largest is not selected, but the character width in each direction is normalized by the maximum value of the total length of the overlapping characters, and as a result, It is intended to accurately detect the overlapping character by selecting the direction having the character width of.
【0100】そのため、この実施例では、SRAM36
にカウンタ領域に図37で示す重なり文字切り出しバッ
ファカレント80を形成するとともに、バッファ領域に
重なり文字切り出しバッファ46(図6)を利用する。
前者はたとえば14バイトであり、重なり文字の概略切
り出し位置のカレントを保持し、変数としては「cut-po
s-cur 」が用いられる。後者は、カレントの概略切り出
し位置を保持する32文字×5方向分の5×14×32
バイトで構成され、変数として「cut-pos-d 」が用いら
れる。そして、重なり文字部分の全長は変数len で示さ
れ、その最大値は変数len-max で与えられ、いずれも正
規化に利用される。Therefore, in this embodiment, the SRAM 36
The overlapping character cutout buffer current 80 shown in FIG. 37 is formed in the counter area, and the overlapping character cutout buffer 46 (FIG. 6) is used in the buffer area.
The former is, for example, 14 bytes, holds the current of the outline cut-out position of overlapping characters, and uses "cut-po
s-cur "is used. The latter is 32 characters x 5 direction x 5 x 14 x 32 for holding the current rough cut-out position.
It is composed of bytes, and "cut-pos-d" is used as a variable. The total length of the overlapping characters is indicated by the variable len, and the maximum value is given by the variable len-max, both of which are used for normalization.
【0101】ここで、図38および図40を参照して、
図35および図36で示す重なり文字切り出しルーチン
を変更したこの発明の他の実施例について説明する。図
38に示すルーチンにおいて、ステップS4665〜S
4673は図35のステップS4665〜S4673と
同様であり、ここでは重複する説明は省略する。そし
て、図38に示すステップS4682以降が図35のス
テップS4674以降と置き換えられる。Now, referring to FIGS. 38 and 40,
Another embodiment of the present invention in which the overlapping character cutting routine shown in FIGS. 35 and 36 is modified will be described. In the routine shown in FIG. 38, steps S4665-S
Step 4673 is the same as steps S4665-S4673 in FIG. 35, and redundant description will be omitted here. Then, step S4682 and subsequent steps shown in FIG. 38 are replaced with step S4674 and subsequent steps in FIG.
【0102】図38のステップS4682では、CPU
26は、重なり文字部分の全長の最大値を求める。具体
的には、このステップS4682は、図40で示すサブ
ルーチンで達成される。図40のステップS4683で
は、CPU26は、ラインカウンタLCNTをクリアし、ス
テップS4684で重なり文字全長の最大値len-max を
クリアする。次いで、ステップ4685において、CP
U26は、重なり文字部分の全長len を求める。すなわ
ち、このステップS4685では、CPU26は、重な
り文字切り出しバッファ46を参照して、ラインカウン
タLCNTで指定される5方向の内の1つの方向のヒストグ
ラムから重なり文字部分の全長(重なり文字部分の右端
x2から左端x1の1つ右のカラムまで)を求める。In step S4682 of FIG. 38, the CPU
At 26, the maximum value of the total length of the overlapping character portion is obtained. Specifically, this step S4682 is achieved by the subroutine shown in FIG. In step S4683 of FIG. 40, the CPU 26 clears the line counter LCNT, and in step S4684, clears the maximum value len-max of the overlapping character total length. Then, in step 4685, the CP
U26 calculates the total length len of the overlapping character portion. That is, in this step S4685, the CPU 26 refers to the overlapping character cutout buffer 46, and determines from the histogram of one of the five directions specified by the line counter LCNT the entire length of the overlapping character portion (the right end of the overlapping character portion).
From x2 to the column to the right of the left end x1).
【0103】次のステップS4686では、CPU26
は、全長最大値len-max が先に求めた全長len より短い
かどうか判断する。このステップS4686で“YE
S”が判断されると、CPU26は、続くステップS4
687において、全長len を全長最大値len-max として
設定する。このステップS4687に続いて、ステップ
S4686において“NO”が判断されたときと同様
に、次のステップS4688において、CPU26は、
ラインカウンタLCNTのカウント値iが「5」を超えない
かどうか判断する。これは、ヒストグラムの方向が
「5」であるからである。そして、ステップS4689
において、ラインカウンタLCNTをインクリメントし、再
び、ステップS4683に戻る。つまり、ステップS4
684〜S4689を繰り返し実行し、5方向のヒスト
グラムの重なり文字部分の全長最大値len-max を求め、
それをステップS4690において、先のステップS4
682(図38)に返す。In the next step S4686, the CPU 26
Determines whether the maximum total length len-max is shorter than the total length len previously obtained. In step S4686, "YE
If "S" is determined, the CPU 26 proceeds to the subsequent step S4.
At 687, the total length len is set as the maximum total length len-max. Following step S4687, as in the case where "NO" is determined in step S4686, in the next step S4688 the CPU 26
It is determined whether the count value i of the line counter LCNT does not exceed "5". This is because the direction of the histogram is "5". Then, step S4689
In, the line counter LCNT is incremented, and the process returns to step S4683 again. That is, step S4
684 to S4689 are repeatedly executed to obtain the maximum total length len-max of the overlapping character portions of the histograms in the five directions,
In step S4690, the above step S4
Return to 682 (FIG. 38).
【0104】図38の続くステップS4691におい
て、CPU26は、重なり文字切り出しバッファ46を
クリアする。次いで、ステップS4692において、C
PU26は、最小幅の文字位置を求める。このステップ
S4692は、具体的には、図41のサブルーチンによ
って処理される。In the subsequent step S4691 of FIG. 38, the CPU 26 clears the overlapping character cutout buffer 46. Then, in Step S4692, C
The PU 26 finds the character position having the minimum width. This step S4692 is specifically processed by the subroutine of FIG.
【0105】すなわち、図41の最初のステップS46
93では、CPU26は、文字切り出しバッファカレン
ト80を初期設定する。すなわち、文字切り出しバッフ
ァカレント80の左端値として「0」を設定し、右端値
としてX方向の最大値を設定し、傾きn として「ff」
を設定する。次のステップS4694では、CPU26
は終了フラグをセットし、ステップS4695では、ラ
インカウンタLCNTをクリアする。That is, the first step S46 in FIG.
At 93, the CPU 26 initializes the character cutout buffer current 80. That is, "0" is set as the left end value of the character cutout buffer current 80, the maximum value in the X direction is set as the right end value, and "ff" is set as the slope n.
Set. In the next step S4694, the CPU 26
Sets an end flag, and in step S4695, the line counter LCNT is cleared.
【0106】次のステップS4696では、CPU26
は、ラインカウンタLCNTで指定されるラインの文字数が
文字位置より大きいかどうか判断する。このステップS
4696で“YES”が判断されると、続くステップS
4697において、CPU26は、正規化した左右端を
求め、それをカレントの幅と比較する。ステップS46
97は、具体的には、図42に示すサブルーチンに従っ
て処理される。In the next step S4696, the CPU 26
Determines whether the number of characters in the line designated by the line counter LCNT is larger than the character position. This step S
If “YES” is determined in 4696, the following step S
At 4697, the CPU 26 finds the normalized left and right edges and compares them with the current width. Step S46
Specifically, 97 is processed according to the subroutine shown in FIG.
【0107】図42の最初のステップS4698では、
正規化した左右端を求める。すなわち、正規化した左端
x1として、重なり文字切り出しバッファ46のステップ
S4692のラインカウンタLCNTのカウント値iで指定
されるヒストグラム方向の左端cut-pos-d.nx1 が設定さ
れ、正規化した右端x2として、重なり文字切り出しバッ
ファ46のステップS4692のラインカウンタLCNTの
カウント値iで指定されるヒストグラム方向の右端cut-
pos-d.nx2 が設定される。In the first step S4698 in FIG. 42,
Find the normalized left and right edges. That is, the normalized left edge
The left end cut-pos-d.nx1 in the histogram direction specified by the count value i of the line counter LCNT in step S4692 of the overlapping character clipping buffer 46 is set as x1, and the overlapping character clipping buffer 46 is normalized as the right end x2. Right edge cut-in the histogram direction designated by the count value i of the line counter LCNT in step S4692 of
pos-d.nx2 is set.
【0108】そして、ステップS4699において、C
PU26は、カレントの左端cut-pos-cur.nx1 より正規
化右端cut-pos-d.nx2 が左にあるかどうか判断する。も
し、みステップS4699において“YES”が判断さ
れると、次のステップS4700において、CPU26
は、文字数カウンタMCNTのカウント値iが設定文字数no
に達したか否かを判断する。このステップS4700で
“NO”が判断されると、次のステップS4701にお
いて文字数カウンタMCNTがインクリメントされたのち、
再び、ステップS4698が実行される。ただし、ステ
ップS4700で“NO”が判断されると、ステップS
4702で終了を返し、リターンする。Then, in step S4699, C
The PU 26 determines whether the normalized right edge cut-pos-d.nx2 is on the left side of the current left edge cut-pos-cur.nx1. If "YES" is determined in the step S4699, the CPU 26 is determined in the next step S4700.
Indicates that the count value i of the character number counter MCNT is the set number of characters no
To determine whether or not. If “NO” is determined in this step S4700, the character number counter MCNT is incremented in the next step S4701,
Step S4698 is executed again. However, if "NO" is determined in the step S4700, the step S4700
The end is returned at 4702 and the process returns.
【0109】そして、ステップS4699において“N
O”が判断されるときには、CPU26は、次のステッ
プS4703において、カレント幅cur-xnとその幅xnと
を比較し、前者が後者より大きいかどうか判断する。も
し“YES”なら、次のステップS4704において
「カレント大」を、もし“NO”なら、ステップS47
04で「カレント小」を、それぞれ、図41のステップ
S4697に返し、リターンする。Then, in step S4699, "N"
When "O" is determined, the CPU 26 compares the current width cur-xn with the width xn in the next step S4703 and determines whether the former is larger than the latter. If "YES", the next step If "NO" in step S4704, "current large", step S47
In "04,""currentsmall" is returned to step S4697 in FIG. 41, and the process returns.
【0110】したがって、図41のステップS4706
では、図42から返送された結果に従ってカレント幅cu
r-xnがその文字幅xnより大きいかどうか判断する。この
ステップS4706において“YES”が判断される
と、次のステップS4707において、文字数カウンタ
MCNTをインクリメントしてカレントのラインを次の文字
に設定する。続くステップS4708において、カレン
トがその設定された文字に変更される。そして、ステッ
プS4709で「まだ」フラグをセットする。Therefore, step S4706 in FIG.
Then, according to the result returned from Fig. 42, the current width cu
Determine if r-xn is greater than its character width xn. If "YES" is determined in this step S4706, in the next step S4707, the character number counter
Increment MCNT to set the current line to the next character. In subsequent step S4708, the current is changed to the set character. Then, in step S4709, the "still" flag is set.
【0111】他方、図41のステップS4706で“N
O”が判断されると、次のステップS4710におい
て、文字数カウンタMCNTをインクリメントしてそのライ
ンを次の文字に設定する。ステップS4709またはS
4710の後、先のステップS4693において“N
O”、すなわち指定ラインの文字数が文字位置を超えた
と判断されたときと同様に、次のステップS4711に
おいて、CPU26は、ラインカウンタLCNTのカウント
値iが「5」より小さいかどうか判断する。このステッ
プS4710において“YES”が判断されると、ステ
ップS4712でラインカウンタLCNTがインクリメント
された後、再び、ステップS4693に戻る。つまり、
全てのヒストグラム方向の全ての文字位置についてカレ
ント幅と文字幅とを比較する。On the other hand, in step S4706 of FIG. 41, "N"
If "O" is determined, in the next step S4710, the character number counter MCNT is incremented to set the line to the next character. Step S4709 or S4709
After 4710, in the previous step S4693, "N
O ", that is, the CPU 26 determines whether the count value i of the line counter LCNT is smaller than" 5 "in the next step S4711, similarly to the case where it is determined that the number of characters of the designated line exceeds the character position. If "YES" is determined in this step S4710, the line counter LCNT is incremented in a step S4712, and then the process returns to the step S4693. That is,
The current width and character width are compared for all character positions in all histogram directions.
【0112】ステップS4711において“NO”が判
断されたとき、ステップS4713において、終了フラ
グがセットされているか否かを判断し、このステップS
4713において“NO”なら、次のステップS471
4においてカレントのラインを次の文字に設定する。つ
まり、文字位置をインクリメントし、「まだ」を返す。
ただし、ステップS4713で“YES”なら、そのま
ま、「終了」を返す。When "NO" is determined in the step S4711, it is determined whether or not the end flag is set in the step S4713, and this step S4713 is executed.
If “NO” in 4713, the next step S471.
At 4, the current line is set to the next character. That is, the character position is incremented and "yet" is returned.
However, if "YES" in step S4713, "end" is returned as it is.
【0113】このようにして、図38のステップS46
92において最小幅の文字位置を求め、続いて、ステッ
プS4715を経て、ステップS4716において、第
2文字切り出しテーブル44に重なり文字切り出しバッ
ファカレント80を参照して、詳細文字位置を設定す
る。そして、次のステップS4717において文字数カ
ウンタMCNTをインクリメント(j+1)して、次のステ
ップS4718でそのカウント値jが「32」より小さ
いかどうか判断する。したがって、ステップS4718
で“YES”が判断されると、先のステップS4683
に戻り、上述の処理を繰り返し実行する。ただし、ステ
ップS4718で“NO”なら、ステップS4719で
文字数jを図28のステップS4609に返し、リター
ンする。In this way, step S46 in FIG.
In 92, the minimum width character position is obtained, and then in step S4715, in step S4716, the detailed character position is set by referring to the overlapping character cutout buffer current 80 in the second character cutout table 44. Then, in the next step S4717, the character number counter MCNT is incremented (j + 1), and it is determined in the next step S4718 whether the count value j is smaller than "32". Therefore, step S4718
If "YES" is determined in step S4683,
And the above processing is repeatedly executed. However, if “NO” in the step S4718, the number of characters j is returned to the step S4609 of FIG. 28 in the step S4719, and the process returns.
【0114】この実施例によれば、重なり文字を一層正
確に切り出すことができる。According to this embodiment, the overlapping character can be cut out more accurately.
【図1】この発明の一実施例を示す斜視図である。FIG. 1 is a perspective view showing an embodiment of the present invention.
【図2】図1実施例の全体構成を示すブロック図であ
る。FIG. 2 is a block diagram showing an overall configuration of the embodiment in FIG. 1;
【図3】図2に示すROMの記憶領域を示す図解図であ
る。FIG. 3 is an illustrative view showing a storage area of a ROM shown in FIG.
【図4】図3の認識用辞書領域に含まれるビット検出テ
ーブルを示す図解図である。4 is an illustrative view showing a bit detection table included in the recognition dictionary area of FIG. 3. FIG.
【図5】図2に示すVRAMに含まれるラインバッファ
を示す図解図である。5 is an illustrative view showing a line buffer included in the VRAM shown in FIG. 2. FIG.
【図6】図2に示すSRAMの記憶領域を示す図解図で
ある。FIG. 6 is an illustrative view showing a storage area of the SRAM shown in FIG.
【図7】ヒストグラム作成のための互いに異なる5方向
を示す図解図である。FIG. 7 is an illustrative view showing five different directions for creating a histogram.
【図8】図6に示す第1文字切り出しバッファ(第2文
字切り出しバッファ)を示す図解図である。FIG. 8 is an illustrative view showing a first character cutout buffer (second character cutout buffer) shown in FIG. 6;
【図9】ラインバッファ内のイメージデータの各位置
(領域)を示す図解図である。FIG. 9 is an illustrative view showing each position (area) of image data in a line buffer.
【図10】図1実施例において原稿がCISによって読
み取られることを示す図解図である。FIG. 10 is an illustrative view showing that a document is read by CIS in the embodiment of FIG.
【図11】実施例の全体動作を示す概略フロー図であ
る。FIG. 11 is a schematic flowchart showing the overall operation of the embodiment.
【図12】図11における宛先情報の有無チェックおよ
び宛先情報のイメージデータの取り込み動作を示すフロ
ー図である。12 is a flowchart showing the operation of checking the presence / absence of destination information and fetching the image data of the destination information in FIG.
【図13】図12に続く動作を示すフロー図である。FIG. 13 is a flowchart showing the operation following FIG.
【図14】図11の文字切り出し処理の概略動作を示す
フロー図である。FIG. 14 is a flowchart showing a schematic operation of the character cutting processing of FIG.
【図15】ヒストグラムに基づいて概略水平位置を求め
る動作を示す図解図である。FIG. 15 is an illustrative view showing an operation for obtaining a rough horizontal position based on a histogram.
【図16】図14のイメージバッファ作成動作を示すフ
ロー図である。16 is a flowchart showing the image buffer creating operation of FIG.
【図17】図14のヒストグラムバッファ作成動作を示
すフロー図である。17 is a flowchart showing the operation of creating the histogram buffer in FIG.
【図18】ラインバッファ中のドット数を調べる動作を
示すフロー図である。FIG. 18 is a flowchart showing an operation for checking the number of dots in the line buffer.
【図19】ラインバッファ中の黒ドットまたは白ドット
を調べる動作を示すフロー図である。FIG. 19 is a flowchart showing an operation for checking a black dot or a white dot in a line buffer.
【図20】概略X位置を求める動作を示すフロー図であ
る。FIG. 20 is a flowchart showing an operation for obtaining a rough X position.
【図21】図20においてX方向文字位置を求める動作
を示すフロー図である。FIG. 21 is a flowchart showing the operation of obtaining the X-direction character position in FIG. 20.
【図22】概略Y位置を求める動作を示すフロー図であ
る。FIG. 22 is a flowchart showing the operation for obtaining the approximate Y position.
【図23】図20においてX方向文字位置を求める動作
を示すフロー図である。23 is a flowchart showing the operation of obtaining the X-direction character position in FIG. 20.
【図24】図23に続く動作を示すフロー図である。FIG. 24 is a flowchart showing an operation following FIG. 23.
【図25】図23および図24においてイメージバッフ
ァのドット数を調べる動作を示すフロー図である。FIG. 25 is a flowchart showing the operation of checking the number of dots in the image buffer in FIGS. 23 and 24.
【図26】Y方向位置の傾きのX成分を求める動作を示
すフロー図である。FIG. 26 is a flowchart showing the operation of obtaining the X component of the tilt of the Y-direction position.
【図27】各種条件値を設定する動作を示すフロー図で
ある。FIG. 27 is a flowchart showing an operation of setting various condition values.
【図28】切り出し位置を設定する動作を示すフロー図
である。FIG. 28 is a flowchart showing an operation of setting a cutout position.
【図29】図27に続く動作を示すフロー図である。FIG. 29 is a flowchart showing an operation following FIG. 27.
【図30】詳細切り出し位置を求める動作を示すフロー
図である。FIG. 30 is a flowchart showing an operation for obtaining a detailed cutout position.
【図31】図29に続く動作を示すフロー図である。31 is a flowchart showing an operation following FIG. 29. FIG.
【図32】図30に続く動作を示すフロー図である。FIG. 32 is a flowchart showing an operation following FIG. 30.
【図33】図31に続く動作を示すフロー図である。FIG. 33 is a flowchart showing an operation following that of FIG. 31.
【図34】重なり文字を切り出す動作を示す図解図であ
る。FIG. 34 is an illustrative view showing an operation of cutting out overlapping characters.
【図35】重なり文字の切り出しの動作を示すフロー図
である。FIG. 35 is a flowchart showing an operation of cutting out overlapping characters.
【図36】図35に続く動作を示すフロー図である。FIG. 36 is a flowchart showing an operation following FIG. 35.
【図37】この発明の他の実施例に用いられる重なり文
字切り出しバッファカレントを示す図解図である。FIG. 37 is an illustrative view showing an overlapping character cutout buffer current used in another embodiment of the present invention.
【図38】他の実施例の重なり文字切り出し動作を示す
フロー図である。FIG. 38 is a flowchart showing an overlapping character cutout operation of another embodiment.
【図39】図38に続く動作を記すフロー図である。39 is a flowchart showing the operation following FIG. 38. FIG.
【図40】重なり文字文字切り出し動作において重なり
文字部分の全長最大値を求める動作を示すフロー図であ
る。FIG. 40 is a flowchart showing an operation of obtaining the maximum total length value of overlapping character portions in the overlapping character character cutting operation.
【図41】重なり文字文字切り出し動作において最小幅
の文字位置を求める動作を示すフロー図である。FIG. 41 is a flowchart showing an operation of obtaining a character position having a minimum width in the overlapping character character cutting operation.
【図42】図41の正規化した左右端を求めてカレント
との幅を比較する動作を示すフロー図である。42 is a flowchart showing the operation of obtaining the normalized left and right ends of FIG. 41 and comparing the width with the current.
10 …ファクシミリ装置 14 …操作パネル 16 …テンキー 18 …LCD 26 …CPU 30 …ROM 32 …VRAM 34 …ラインバッファ 36 …SRAM 38 …イメージバッファ 40 …ヒストグラムバッファ 42 …第1文字切り出しバッファ 44 …第2文字切り出しバッファ 46 …重なり文字切り出しバッファ 66 …CIS 10 ... Facsimile device 14 ... Operation panel 16 ... Numeric keypad 18 ... LCD 26 ... CPU 30 ... ROM 32 ... VRAM 34 ... Line buffer 36 ... SRAM 38 ... Image buffer 40 ... Histogram buffer 42 ... First character cut-out buffer 44 ... Second character Cutout buffer 46 ... Overlap character cutout buffer 66 ... CIS
───────────────────────────────────────────────────── フロントページの続き (72)発明者 吉川 隆敏 大阪府守口市京阪本通2丁目5番5号 三 洋電機株式会社内 ─────────────────────────────────────────────────── ─── Continuation of the front page (72) Inventor Takatoshi Yoshikawa 2-5-5 Keihan Hondori, Moriguchi City, Osaka Sanyo Electric Co., Ltd.
Claims (11)
ら各手書き文字を認識する手書き文字認識装置であっ
て、 前記イメージデータをストアするラインバッファメモリ
手段(34)、 前記ラインバッファメモリ手段のイメージデータを所定
ビット数毎にまとめた粗イメージデータをストアするイ
メージバッファ手段(38)、 前記ラインバッファメモリ手段のイメージデータに基づ
いて求められた1方向のヒストグラムをストアするヒス
トグラムバッファ手段(40)、 前記ヒストグラムに基づいて前記手書き文字の概略水平
方向位置を求める第1手段(S43) 、 前記粗イメージデータに基づいて前記手書き文字の概略
垂直方向位置を求める第2手段(S44) 、および前記概略
水平方向位置および前記概略垂直方向位置に基づいて前
記ラインバッファ手段を参照して前記手書き文字の切り
出し位置を求める第3手段(S46) を備える、手書き文字
認識装置。1. A handwritten character recognition device for recognizing each handwritten character from image data obtained by reading handwritten characters, wherein line buffer memory means (34) for storing the image data, and image data in the line buffer memory means Image buffer means (38) for storing rough image data collected for each predetermined number of bits, histogram buffer means (40) for storing a one-way histogram obtained based on the image data of the line buffer memory means, the histogram First means (S43) for determining the approximate horizontal position of the handwritten character based on the above, second means (S44) for determining the approximate vertical position of the handwritten character based on the rough image data, and the approximate horizontal position And refer to the line buffer means based on the generally vertical position A third means (S46) for determining the cut-out position of the handwritten character Te, handwriting recognition device.
方向位置に基づいて前記手書き文字の重なりの有無を検
出する重なり検出手段(S4614) 、および前記重なりがあ
るとき前記ラインバッファ手段のイメージデータに基づ
いて互いに異なる少なくとも2方向のヒストグラムを作
成をするヒストグラム作成手段(S4668) を備え、 前記第1手段は前記少なくとも2方向のヒストグラムに
基づいて前記概略水平方向位置を求める、請求項1記載
の手書き文字認識装置。2. Overlap detection means (S4614) for detecting the presence or absence of an overlap of the handwritten characters based on the general horizontal direction position and the general vertical direction position, and the image data of the line buffer means when the overlap exists. The handwriting according to claim 1, further comprising: a histogram creating unit (S4668) for creating histograms in at least two directions different from each other based on the histograms in the at least two directions. Character recognizer.
ヒストグラムに基づいて前記少なくとも2方向のそれぞ
れの文字数を求める手段(S4669) 、および前記文字数が
最も多い前記少なくとも2方向のいずれか1つの方向を
選択する手段(S4674) を含み、選択された方向のヒスト
グラムに基づいて前記概略位置を求める、請求項2記載
の手書き文字認識装置。3. The means for obtaining the number of characters in each of the at least two directions based on the histograms in the at least two directions (S4669), and the at least two directions having the largest number of characters. 3. The handwritten character recognition device according to claim 2, further comprising means for selecting a direction (S4674), wherein the rough position is obtained based on a histogram of the selected direction.
ヒストグラムに基づいてそれぞれ文字幅を求める手段、
および前記文字幅が最小となる1つの方向を選択する手
段を含み、選択された方向のヒストグラムに基づいて前
記概略位置を求める、請求項2記載の手書き文字認識装
置。4. The means for determining the character width based on the histograms in at least two directions,
3. The handwritten character recognition device according to claim 2, further comprising means for selecting one direction in which the character width is the smallest, and determining the rough position based on a histogram of the selected direction.
づいて前記粗イメージデータを作成して前記イメージバ
ッファ手段にストアする粗イメージデータ作成手段(S4
1,S411-S419) を備える、請求項1ないし4のいずれか
に記載の手書き文字認識装置。5. A rough image data creating means (S4) for creating the rough image data based on the image data of the line buffer and storing it in the image buffer means.
1, S411-S419), The handwritten character recognition device according to any one of claims 1 to 4.
れる第1論理状態のビット数とを対照するビット数テー
ブルをさらに備え、 前記粗イメージデータ作成手段は前記ビット数テーブル
を参照して前記ラインバッファのイメージデータの前記
第1論理状態のビット数を検出する、請求項5記載の手
書き文字認識装置。6. A bit number table for comparing a binary number of a predetermined number of bits and a bit number of a first logic state included in the binary number, the coarse image data creating means referring to the bit number table. 6. The handwritten character recognition device according to claim 5, wherein the number of bits in the first logic state of the image data in the line buffer is detected.
き文字認識装置を利用して送信原稿上に手書きされた宛
先情報の各文字を認識する、ファクシミリ装置。7. A facsimile device for recognizing each character of destination information handwritten on a transmission original by using the handwritten character recognition device according to any one of claims 1 to 6.
ら各手書き文字を認識する手書き文字認識方法であっ
て、 (a) 前記イメージデータに基づいて1方向のヒストグラ
ムを求め(S42) 、 (b) 前記ヒストグラムに基づいて前記手書き文字の概略
位置を求め(S43,S44)、 (c) 前記概略位置に基づいて前記手書き文字の前記1方
向の重なり検出し(S4614) 、 (d) 重なりがあるとき前記ラインバッファ手段のイメー
ジデータに基づいて互いに異なる少なくとも2方向のヒ
ストグラムを作成し(S4668) 、そして (e) 前記少なくとも2方向のヒストグラムに基づいて前
記概略位置を求める(S4669,S4470) 、手書き文字認識方
法。8. A handwritten character recognition method for recognizing each handwritten character from image data obtained by reading handwritten characters, comprising: (a) obtaining a one-way histogram based on the image data (S42), (b) The approximate position of the handwritten character is obtained based on the histogram (S43, S44), (c) Overlap detection of the handwritten character in the one direction is detected based on the approximate position (S4614), (d) When there is an overlap, the Histograms of at least two directions different from each other are created based on the image data of the line buffer means (S4668), and (e) The rough position is obtained based on the histograms of the at least two directions (S4669, S4470), and handwritten character recognition. Method.
2方向のヒストグラムに基づいて前記少なくとも2方向
のそれぞれの文字数を求め、(e2)前記文字数が最も多い
前記少なくとも2方向のいずれか1つの方向を選択し、
そして(e3)選択された方向のヒストグラムに基づいて前
記概略位置を求める、請求項7記載の手書き文字認識方
法。9. The step (e) includes: (e1) obtaining the number of characters in each of the at least two directions based on the histogram in the at least two directions, and (e2) selecting one of the at least two directions having the largest number of characters. Choose one direction,
8. The handwritten character recognition method according to claim 7, wherein (e3) the approximate position is obtained based on the histogram of the selected direction.
も2方向のヒストグラムに基づいてそれぞれ文字幅を求
め、(e2)前記文字幅が最小となる1つの方向を選択し、
そして(e3)選択された方向のヒストグラムに基づいて前
記概略位置を求める、請求項8記載の手書き文字認識装
置。10. The step (e) comprises: (e1) obtaining character widths based on the at least two-direction histograms, and (e2) selecting one direction in which the character width is minimum,
9. The handwritten character recognition device according to claim 8, wherein (e3) the rough position is obtained based on the histogram of the selected direction.
手書き文字認識方法によって送信原稿上に手書きされた
宛先情報の各文字を認識する、ファクシミリ装置。11. A facsimile apparatus for recognizing each character of destination information handwritten on a transmission original by the handwritten character recognition method according to any one of claims 8 to 10.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7299610A JPH0934994A (en) | 1995-05-15 | 1995-11-17 | Handwritten character recognizing device and facsimile equipment |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14125695 | 1995-05-15 | ||
JP7-141256 | 1995-05-15 | ||
JP7299610A JPH0934994A (en) | 1995-05-15 | 1995-11-17 | Handwritten character recognizing device and facsimile equipment |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0934994A true JPH0934994A (en) | 1997-02-07 |
Family
ID=26473526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7299610A Pending JPH0934994A (en) | 1995-05-15 | 1995-11-17 | Handwritten character recognizing device and facsimile equipment |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0934994A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102663388A (en) * | 2012-03-27 | 2012-09-12 | 复旦大学 | Method for segmenting handwritten character from background image |
-
1995
- 1995-11-17 JP JP7299610A patent/JPH0934994A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102663388A (en) * | 2012-03-27 | 2012-09-12 | 复旦大学 | Method for segmenting handwritten character from background image |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7194144B1 (en) | Document image processing device, document image merging method, and storage medium recording a document image merging program | |
EP0081767B1 (en) | Character and image processing apparatus | |
US5025484A (en) | Character reader device | |
JP2001351066A (en) | Device and method for document recognition processing and recording medium | |
US20020048032A1 (en) | Image processing with recognized character codes | |
US6493470B1 (en) | Image processing method and apparatus for detecting the tilt amount of input image data | |
JPH1127545A (en) | Image processing unit and image processing method | |
JPH0934994A (en) | Handwritten character recognizing device and facsimile equipment | |
JPH0934993A (en) | Handwritten character recognizing device and facsimile equipment | |
JP3443141B2 (en) | Image tilt detection method and table processing method | |
JP3086653B2 (en) | Character recognition method and character recognition device | |
EP0767941B1 (en) | Automatic determination of landscape scan in binary images | |
JP2963042B2 (en) | Character recognition result display method and character recognition device | |
JPH0490083A (en) | Character recognizing device | |
JPH09311908A (en) | Handwritten character recognition device and facsimile equipment | |
JP3422567B2 (en) | Image forming device | |
JP2009049788A (en) | Image information processing program, computer readable recording medium recording same, and document reader | |
JPH0795384A (en) | Facsimile equipment | |
JP3587586B2 (en) | Image processing device | |
KR100420065B1 (en) | Method for distinguishing letter area from picture area in heterogenous mixed images | |
JP2734628B2 (en) | Character recognition device | |
JP3291430B2 (en) | Communication terminal device | |
JP3469674B2 (en) | Facsimile machine | |
JP3268970B2 (en) | Communication terminal device | |
JP3490794B2 (en) | Facsimile machine |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20010904 |