JPH032058A - Processing method for font pattern - Google Patents
Processing method for font patternInfo
- Publication number
- JPH032058A JPH032058A JP1137617A JP13761789A JPH032058A JP H032058 A JPH032058 A JP H032058A JP 1137617 A JP1137617 A JP 1137617A JP 13761789 A JP13761789 A JP 13761789A JP H032058 A JPH032058 A JP H032058A
- Authority
- JP
- Japan
- Prior art keywords
- stroke
- font pattern
- contour
- line
- font
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims description 4
- 238000000034 method Methods 0.000 claims description 3
- 208000006011 Stroke Diseases 0.000 description 128
- 238000010586 diagram Methods 0.000 description 13
- 238000000605 extraction Methods 0.000 description 13
- 238000006243 chemical reaction Methods 0.000 description 8
- 239000000284 extract Substances 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000000875 corresponding effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004615 ingredient Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Landscapes
- Dot-Matrix Printers And Others (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、フォントパターン処理に係り、特にフォント
パターンのストローク抽出、細線化、太字化等の処理に
関する。DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to font pattern processing, and particularly to processing such as stroke extraction, thinning, and bolding of font patterns.
〔従来の技術及び発明が解決しようとする課題〕パソコ
ン、レーザプリンタ等による文書作成システムにおいて
、フォントの多様性が一層求められるようになっている
。[Prior Art and Problems to be Solved by the Invention] In document creation systems using personal computers, laser printers, etc., there is an increasing demand for greater diversity in fonts.
この要求に応えるためのフォントの加工に関して、リニ
アなサイズ変換、斜体化、回転等のアフィン変換は、ビ
ットマツプやベクトルフォントを問わず比較的容易であ
る。しかし、より重要で有効なフォント加工である文字
の線径変換、すなわち細線化および太字化は、ノンリニ
ア変換で実現が困難であったため、従来は、異なる線径
の文字は別々のフォントとして準備するのが一般的であ
り、フォントメモリが増大するという問題があった。Regarding font processing to meet this demand, affine transformations such as linear size conversion, italicization, and rotation are relatively easy regardless of whether the font is a bitmap or a vector font. However, the more important and effective font processing, character line diameter conversion, i.e., thinning and bolding, has been difficult to achieve with nonlinear conversion, so conventionally, characters with different line diameters were prepared as separate fonts. This is common, and there is a problem that the font memory increases.
また、フォントパターンは基本的に、ストローク(筆の
動き)に沿った2本の輪郭線による閉ループより構成さ
れる。フォントの各種加工においては、このストローク
成分の抽出が必要になることが多い。従来、このような
ストローク抽出は、フォントパターンの1画素を1ビツ
トで表現したビットマツプ上において、輪郭追跡により
行われることが多い。しかし、ソフトウェアによる処理
の効率が悪く、またストロークの交差、接触の検出や、
ストロークに沿った2本の輪郭線の対応付けが幾何学的
には極めて難しいという問題があった。Furthermore, a font pattern basically consists of a closed loop of two contour lines along the stroke (movement of the brush). In various types of font processing, it is often necessary to extract these stroke components. Conventionally, such stroke extraction is often performed by contour tracing on a bitmap in which one pixel of a font pattern is represented by one bit. However, the efficiency of software processing is low, and the detection of stroke intersections and contacts is difficult.
There has been a problem in that it is geometrically extremely difficult to match two contour lines along a stroke.
よって本発明の目的は、フォントパターンのストローク
抽出、細線化、ノンリニアな線径可変フォーマット変換
等のための、改良したフォントパターン処理方法を提供
することにある。SUMMARY OF THE INVENTION Therefore, an object of the present invention is to provide an improved font pattern processing method for stroke extraction, thinning, nonlinear variable diameter format conversion, etc. of font patterns.
〔課題を解決するための手段及び作用〕本発明によれば
、フォントパターンのビットマツプ上ではなく、バイト
マツプ上で処理を行う。[Means and operations for solving the problem] According to the present invention, processing is performed not on a bitmap of a font pattern but on a bytemap.
このバイトマツプは、ビットマツプ上のフォントパター
ンの各黒点について近傍ビットにより演算した値に、所
定のバイトコードを割り付けたマツプである。This byte map is a map in which a predetermined byte code is assigned to a value calculated using neighboring bits for each black point of a font pattern on the bit map.
このようなバイトマツプ上において、ストロークの種別
に対応した固有のコード配列を見つけ、このコード配列
の位置を起点として輪郭追跡し、ストロークの端点(始
点および終点)を検出することによって、フォントパタ
ーンのストローク成分を抽出する。On such a byte map, by finding a unique code sequence corresponding to the type of stroke, tracing the contour using the position of this code sequence as a starting point, and detecting the end points (start and end points) of the stroke, the stroke of the font pattern can be determined. Extract the ingredients.
バイトマツプ上の各コードは、パターンの幾何学的およ
びトポロジカル的特性を記号的に表現しているので、コ
ードによってス1ヘローク種類の分類、ストロークを構
成する2本の輪郭線の対応つけ、輪郭の方向性の確認が
容易でストローク抽出を効率的に行うことができ、また
、ストロークの交差、接触等のストローク間干渉であっ
ても、容易かつ確実なストローク分解が可能である。Each code on the bitemap symbolically expresses the geometric and topological characteristics of the pattern, so the code can be used to classify the types of strokes, match the two contour lines that make up a stroke, and distinguish the contours. Directionality can be easily confirmed, strokes can be extracted efficiently, and strokes can be easily and reliably decomposed even if there is interference between strokes such as stroke intersection or contact.
さて、ストロークは2本の輪郭線の閉ループであり、ス
トローク中心線が2本の輪郭線の中間に存在すると考え
てよいが、これを幾何学的に求めることは無意味である
。例えば明朝体のセリフは、ストローク中心線とは無関
係であるからである。Now, a stroke is a closed loop of two contour lines, and it can be considered that the stroke center line exists between the two contour lines, but it is meaningless to determine this geometrically. This is because, for example, serifs in Mincho fonts are unrelated to the stroke center line.
そして、このような仮想的なストローク中心線を抽出し
ても、セリフを含むストロークパターンの再現は不可能
である。Even if such a virtual stroke center line is extracted, it is impossible to reproduce a stroke pattern including serifs.
そこで、本発明にあっては、前記のように輪郭追跡によ
って抽出したストローク成分を、その両端点を境界とし
て二つの輪郭線に分割し、その−方の輪郭線だけをスト
ローク成分として抽出する。Therefore, in the present invention, the stroke component extracted by contour tracing as described above is divided into two contour lines using both end points as boundaries, and only the second contour is extracted as a stroke component.
これによれば、ストロークの二つの輪郭線のデータを抽
出保存する方式に比べ、メモリ址が半減する。さらに、
ストロークの種類によってセリフが付加される輪郭線は
決まっているので、ストロークの種別に応じて、セリフ
が付かない一方の輪郭線を抽出すべきストローク成分に
選べば、それをストロークベクトルとして用いて他方の
輪郭線をセリフを含めて派生することが可能である。According to this, the memory space is halved compared to the method of extracting and saving data of two outlines of a stroke. moreover,
The contour lines to which serifs are added are determined depending on the stroke type, so depending on the stroke type, you can select one contour line without serifs as the stroke component to be extracted, and use it as a stroke vector to extract the other contour line. It is possible to derive the contour line including serifs.
パターンのサイズや線径はフォントの重要なデザイン要
素であり、これらの要素の異なるフォントは、別個のフ
ォントしてデザインされている。Pattern size and line diameter are important design elements of fonts, and fonts that differ in these elements are designed as separate fonts.
しかし、一般に文字の基本デザイン(ストローク)はサ
イズや線径に関係なくほぼ同一(類似)と考えられる。However, in general, the basic design (stroke) of characters is considered to be almost the same (similar) regardless of size or wire diameter.
他方、フォントの太字化において、線径は全ストローク
について均一にしたのでは自然なパターンを得られない
。例えば明朝体の場合、縦ストロークをより太くし、横
ストロークをそれほど線径を増加させないようにすると
、自然なパターンが得られる。On the other hand, when making a font bold, a natural pattern cannot be obtained by making the line diameter uniform for all strokes. For example, in the case of a Mincho font, a natural pattern can be obtained by making the vertical strokes thicker and making the horizontal strokes have a smaller diameter.
そこで本発明においては、ストローク成分とし抽出され
た輪郭線より、それとともにストロークを構成する輪郭
線を派生し、その際にストロークの種別に応じて異なる
線径拡大率を適用することにより、共通のフォントから
サイズや線径が様々な、かつ字形が自然なフォントパタ
ーンを生成することを可能とする。Therefore, in the present invention, contour lines constituting a stroke are derived from the contour lines extracted as stroke components, and at that time, different wire diameter enlargement ratios are applied depending on the type of stroke, so that a common To make it possible to generate font patterns of various sizes and line diameters and natural character shapes from fonts.
以下、図面を用い本発明の一実施例を詳細に説明する。 Hereinafter, one embodiment of the present invention will be described in detail using the drawings.
本発明によるフォントパターン処理を実行するための装
置構成の一例を第1図に示す。■はフォントパターンの
ビットマツプを格納するためのビットマツプメモリであ
る。このビットマツプ上ではフォントパターンの1画素
は1ビツトで表現され、各ビットの値は黒点が1、白点
がOとなっている。FIG. 1 shows an example of an apparatus configuration for executing font pattern processing according to the present invention. 2 is a bitmap memory for storing a bitmap of a font pattern. On this bitmap, one pixel of the font pattern is represented by one bit, and the value of each bit is 1 for a black point and 0 for a white point.
2はフォントパターンのバイトマツプを格納するための
バイトマツプメモリである。このバイトマツプ上では、
フォントパターンの1画素は1バイトのコードで表現さ
れる。なお、ビットマツプメモリ1とバイトマツプメモ
リ2を共通のメモリとすることも可能である。2 is a byte map memory for storing a font pattern byte map. On this bytemap,
One pixel of the font pattern is expressed by a one-byte code. Note that it is also possible to use a common memory as the bitmap memory 1 and the bytemap memory 2.
3は処理を実行するCPUである。4はCPU3の処理
のためのプログラムを格納したプログラムメモリである
。5はCPU3による処理の中間データや結果データ等
を一時的に格納するためのデータメモリである。3 is a CPU that executes processing. A program memory 4 stores programs for processing by the CPU 3. Reference numeral 5 denotes a data memory for temporarily storing intermediate data, result data, etc. of processing by the CPU 3.
第2図は本発明の一実施例における処理全体のフローを
示している。以下、第2図中の各処理ブロック毎に処理
内容を説明する。FIG. 2 shows the overall processing flow in one embodiment of the present invention. The processing contents of each processing block in FIG. 2 will be explained below.
処理ブロック■
この処理ブロックでは、ビットマツプからバイトマツプ
への変換を行う。Processing Block ■ This processing block converts a bitmap to a bytemap.
この変換は、ビットマツプ上のフォントパターンの各点
について、その近傍ビットの値(白/黒)を用いた特定
の演算の結果に応じて所定のバイトコードを割り付ける
ことによって行う。この変換の際に参照される近傍の範
囲は、8近傍(縦、横。This conversion is performed by assigning a predetermined byte code to each point of the font pattern on the bitmap in accordance with the result of a specific operation using the values (white/black) of neighboring bits. The range of neighborhoods referenced during this conversion is 8 neighborhoods (vertical, horizontal).
斜め)または4近傍(縦、横)であるが、フォントパタ
ーンの処理の場合には、4近傍を参照すれば十分である
。(diagonal) or 4 neighborhoods (vertical, horizontal); however, in the case of font pattern processing, it is sufficient to refer to 4 neighborhoods.
本実施例においても4近傍を選び、フォントパターンの
注目点(x、y)について、その4近傍の各ビットCx
t y−i)+ (x+ y+i)、(x−1t y
)t (x+1.y)にバイナリ・ウェイト(8,4
,2,1)をかけてコート化する。In this embodiment as well, four neighborhoods are selected, and for each point of interest (x, y) in the font pattern, each bit Cx in the four neighborhoods is selected.
ty-i)+ (x+ y+i), (x-1ty
)t (x+1.y) with binary weights (8, 4
, 2, 1) to form a coat.
すなわち、各点(x、y)について次式の演算を行う。That is, the following equation is calculated for each point (x, y).
V(x、 y)=8 X B (x + y 1)
+ 4 X B (x * y + 1 )+2XB(
x−1)+B(x+1. y) −(1)ただし、
B (a、b)は近傍ビット(a、b)が黒なら1、白
から0である。また上式は注目点(x、y)が黒の場合
に適用されるもので、注目点が白の場合はV (x F
y)を−i (=OXFF)とする。したがって、V
(x+ y)は−1から+15までの整数となる。V (x, y) = 8 X B (x + y 1)
+ 4 X B (x * y + 1) + 2XB (
x-1)+B(x+1.y)-(1)However,
B (a, b) is 1 if the neighboring bits (a, b) are black, and 0 if they are white. Furthermore, the above formula is applied when the point of interest (x, y) is black, and when the point of interest is white, V (x F
y) is set to -i (=OXFF). Therefore, V
(x+y) is an integer from -1 to +15.
そして、このような演算値V (X * y)に第1表
に示すようなバイトコードを割り付ける。ただし本実施
例においては、コード″F”は孤立点に対応し処理上熱
意味なノイズとみなしてよいので、″ブランク″に置換
するものとする。Then, a byte code as shown in Table 1 is assigned to such arithmetic value V (X*y). However, in this embodiment, since the code "F" corresponds to an isolated point and can be regarded as thermally meaningful noise in processing, it is replaced with "blank".
以下余白 第1表 第3図から第5図に、漢字のバイトマツプの例を示す。Margin below Table 1 FIGS. 3 to 5 show examples of byte maps for kanji.
処理ブロック■
この処理ブロックでは、バイトマツプ上でフォントパタ
ーンのストローク(筆の動き)への分解あるいはストロ
ーク抽出を行う。ここでは、ストロークとして第2表に
示すような4種類を定義する。Processing Block ■ This processing block decomposes the font pattern into strokes (brush movements) or extracts the strokes on the bite map. Here, four types of strokes as shown in Table 2 are defined.
第2表
本実施例では、第6図に示すように、この4種のストロ
ークの抽出を順番に行う。Table 2 In this embodiment, these four types of strokes are extracted in order, as shown in FIG.
各種類のストロークの抽出は、バイトマツプを左上角よ
りラスター走査して、注目のストローク種類に固有のコ
ード配列(第7図)を捜し、この固有のコード配列が見
つかると、その位置から両方向へ輪郭追跡を行って端点
を捜すことによって行う。したがって、バイトマツプは
合計4回走査されることになる。一般に一つのフォント
パターン中に複数のストロークが存在する。例えば第3
図に示す「講」のバイトマツプ上には、縦線はVTL
〜VT7(7)7個、横線はHR1〜HRLI(1)1
1個がある。第4図および第5図のバイトマツプも同様
である。ここで各ストロークの略号に付加された数字は
、種類別のストロークの個数のカウンタである。To extract each type of stroke, raster scan the byte map from the upper left corner to search for a code sequence (Figure 7) specific to the stroke type of interest. When this unique code sequence is found, the outline is drawn in both directions from that position. This is done by tracking and searching for endpoints. Therefore, the bytemap will be scanned a total of four times. Generally, there are multiple strokes in one font pattern. For example, the third
On the bytemap of "Ko" shown in the figure, the vertical line is the VTL
~VT7 (7) 7 pieces, horizontal line is HR1 ~ HRLI (1) 1
There is one. The same applies to the bite maps shown in FIGS. 4 and 5. Here, the number added to the abbreviation of each stroke is a counter of the number of strokes for each type.
なお、ストロークの固有コード配列は無数に存在するよ
うに見えるが、実際には、バイトマツプをスキャナして
最初に遭遇した固有コード配列を起点に輪郭追跡を行い
1通過したコードを抹消するので、1個のストロークに
1個の固有コード配列という対応が原則的に成立する。Although it seems that there are an infinite number of stroke unique code sequences, in reality, the contour is traced starting from the first unique code sequence encountered by scanning the byte map, and the code that has passed once is deleted. In principle, there is a correspondence between each stroke and one unique code sequence.
第8図は、このようなストローク抽出処理のフローチャ
ートである。処理ブロック111において、変数x、y
、cを初期化(クリア)する。X。FIG. 8 is a flowchart of such stroke extraction processing. In processing block 111, variables x, y
, c is initialized (cleared). X.
yはバイトマツプを走査するためのポインタ、Cは前記
ストロークのカウンタで、ストロークデータのインデッ
クスとなる。処理ブロック12は。y is a pointer for scanning the byte map, and C is the stroke counter, which is an index of stroke data. Processing block 12 is.
固有コードを検出し、その位置からストロークの端点(
始点、終点)が見つかるまで輪郭追跡を行い、一つのス
トロークを抽出する度にカウンタCの値に1を加える。Detects the unique code and extracts the end point of the stroke from that position (
The contour is traced until the starting point and ending point are found, and each time a stroke is extracted, 1 is added to the value of the counter C.
なお、この処理詳細については後述する。処理ブロック
13はバイトマツプの走査の終了チエツクのためにバイ
トマツプで右下角の座41 (Xmax、 Ymax)
とポインタXとyの比較判定を行う。処理ステップ14
はポインタ、yのインクリメントを行う。Note that details of this processing will be described later. Processing block 13 checks the end of bytemap scanning by checking the position 41 (Xmax, Ymax) at the lower right corner of the bytemap.
Compare and judge pointers X and y. Processing step 14
increments the pointer y.
ここで、抽出されるストロークのイメージを第9図に示
す。ストロークの輪郭を端点P1tP2で二つの輪郭線
に分割する。ストロークデータとして保存されるのは、
実線で表された片方の輪郭線だけである。すなわち、実
線が単線化されたストロークである。破線で示された輪
郭線は、実線の輪郭線の関数として派生されるもので、
セリフも一意的に含まれる。斜線ストロークのp3は、
U斜線″として属性パラメータで特定のパターンを呼び
出させるので、必ずしも必要でない。した要って、本実
施例においては、ストロークの種別と、端点P1+P2
の座標だけがストロークデータとして第10図のような
フォーマットで保存される。故に、一つのストロークの
データの保存に必要なメモリ容量は5バイトと極めて少
ない。FIG. 9 shows an image of the extracted strokes. The outline of the stroke is divided into two outlines at the end points P1tP2. What is saved as stroke data is
Only one outline is represented by a solid line. In other words, the solid line is a single stroke. The dashed contour is derived as a function of the solid contour;
Serifs are also uniquely included. The diagonal stroke p3 is
Since a specific pattern is called as "U diagonal line" by the attribute parameter, it is not necessarily necessary.In short, in this embodiment, the stroke type and the end points P1+P2
Only the coordinates of are saved as stroke data in the format shown in FIG. Therefore, the memory capacity required to store the data of one stroke is extremely small, 5 bytes.
一般的にストロークは他のストロークとの干渉(連続、
接触、交差)があるが、ここでは、ストロークの干渉が
ないとして、輪郭追連と端点検出を説明する9
ストロークの固有コード配列は必ずストロークの中間に
あるので、その位置から両方向(縦線なら垂直上方と垂
直下方)に輪郭点を追跡すると。In general, strokes are caused by interference with other strokes (continuous,
However, here we will explain contour addition and end point detection assuming that there is no stroke interference.9 Since the unique code array of a stroke is always in the middle of the stroke, it can be used in both directions from that position (for vertical lines, by tracing contour points vertically upward and vertically downward.
ストロークの端点(pi、p2)を示すコードまたはコ
ード配列が見つかる。第11図に、このような輪郭追跡
の様子をストローク種別毎に示す。A code or code sequence is found that indicates the endpoint of the stroke (pi, p2). FIG. 11 shows how such contour tracking is performed for each stroke type.
また、端点のコードまたはコード配列を第12図に示す
。そして、このような端点のコードまたはコード配列の
一実施例をストロークの端点PlyP2として保存する
ことになる。Further, the code or code arrangement of the end points is shown in FIG. An example of such an end point code or code arrangement is then saved as the stroke end point PlyP2.
さて、実際のフォントパターンにおいては、ストローク
間の干渉が頻繁に出現する。ここで各干渉は次のように
定義する。Now, in actual font patterns, interference between strokes frequently appears. Here, each interference is defined as follows.
″1連続(C)”:カギ(フッ)のように異なった種類
のストロークが連続して一
つのストロークを形成する。``One continuous (C)'': Different types of strokes consecutively form one stroke like a key.
゛接触(T)”:T字路、ト字路のようにストロークの
端部が他のストロークに
含まれる。"Contact (T)": The end of a stroke is included in another stroke, such as a T-junction or a T-junction.
゛′交差(X)”:十字路、X字路のようにストローク
が途中で他のストロークを
突き抜ける。``Intersection (X)'': A stroke passes through another stroke midway, as in a crossroads or an X-junction.
このようなストローク干渉の例を第13図に示す。An example of such stroke interference is shown in FIG.
次にストローク干渉がある場合のストローク抽出処理(
第8図の処理ブロック12)について説明する。ストロ
ーク干渉がある場合、第12図に示した端部のコードま
たはコード配列を単純にストロークの端点とすることは
できず、干渉の種類によって端点検出の方法を変える必
要がある。Next, stroke extraction processing when there is stroke interference (
Processing block 12) in FIG. 8 will be explained. If there is stroke interference, the code or code arrangement at the end shown in FIG. 12 cannot simply be used as the end point of the stroke, and it is necessary to change the method of detecting the end point depending on the type of interference.
例えば、第14図に示すような横線と交差した縦線の輪
郭追跡の場合、下方追跡において、2+1″のコード配
列が第7行まで連続するが、第8行の左右の輪郭線とも
にコードdi 8 IIに遭遇する。この左右に広がる
コード1181)の下のコードは“4”であり、これは
第7回に示した横線に固有のコード配列である。したが
って、注目する縦線と横線との干渉が分かるので、次に
干渉の種類を判断する。第7行のコード配列” 2 +
1 ”の直下の行のコード配列は+++”で、このコ
ードII + Itは輪郭線内部の点を意味するので、
縦線ストロークの輪郭追跡を進める。第9行も同様であ
る。第10行まで追跡を進めると、ここでコード配列“
2 + 1 ”が再度出現する。これは縦線が横線を突
き抜けたということで、干渉は交差であると判断できる
。このような交差の場合、交差部以外で端部のコードま
たはコード配列が見つかった位置を端点とする。For example, in the case of contour tracing of a vertical line that intersects a horizontal line as shown in FIG. 8 II. The code below this code 1181) that spreads left and right is "4", which is a code arrangement specific to the horizontal line shown in Part 7. Therefore, the vertical line and horizontal line of interest Now that we know the interference of
The code arrangement in the line immediately below 1 is +++, and this code II + It means a point inside the contour line, so
Proceed with contour tracing of vertical line strokes. The same applies to the 9th line. If we continue tracing up to line 10, here we see the code sequence “
2 + 1'' appears again. This means that the vertical line has passed through the horizontal line, and the interference can be determined to be an intersection. In the case of such an intersection, the code or code arrangement at the end is different from the intersection. The found position is taken as the end point.
第15図は″接触″の例である。縦線の下方追跡におい
て、第8行の横線のコード配列が出現するが、第9行の
コード配列” 444 ”と遭遇する。FIG. 15 is an example of "contact". In tracing down the vertical line, the code arrangement of the horizontal line in the 8th line appears, but the code arrangement "444" in the 9th line is encountered.
このコード配列は輪郭線であるので、縦線の下方進行が
妨げられる。すなわち、第9行を縦線の下端と判断する
。Since this chord arrangement is a contour line, the downward progression of the vertical line is prevented. That is, the ninth row is determined to be the lower end of the vertical line.
第16図は“連続″の例である。縦線ストロークの上方
進行は、コード配列” 2 + 1”が連続する第10
行へ進む。次の第9行でコード列″2+5”が現れるが
、このコード配列は第7図に示す4種のストロークの固
有コード配列のいずれかにも該当しないので、他のスト
ロークとの“交差″でも″接触″でもないため、″連続
″であることが分かる。この場合、第8行で左輪郭線側
で横線のコード配列と遭遇するので、この縦線は横線に
連続していると判断し、輪郭追跡を進めることによって
端点を捜す。FIG. 16 is an example of "continuous". The upward progression of the vertical line stroke is the 10th consecutive chord sequence "2 + 1".
Proceed to line. The code sequence "2+5" appears in the next 9th line, but since this code sequence does not correspond to any of the unique code sequences of the four types of strokes shown in Figure 7, even if it is an "intersection" with other strokes, Since it is not "contact", it can be seen that it is "continuous". In this case, since a horizontal line code arrangement is encountered on the left contour line side in the 8th line, it is determined that this vertical line is continuous with the horizontal line, and the end point is searched for by proceeding with contour tracing.
なお、明朝体の場合、カギ(コ)の曲がり角にカギ固有
のセリフがある。この例では、右輸部線(“1″の連続
)の経路(1,5,D、9,9゜B、Aのコードの連続
)が、カギ固有のセリフのコード配列であり、これは予
めパターン化が可能である。In addition, in the case of the Mincho typeface, there is a serif unique to the key at the corner of the key. In this example, the path of the right-hand side line (a series of "1"s) (a series of codes 1, 5, D, 9, 9 degrees B, A) is a serif code arrangement unique to the key, and this is It can be patterned in advance.
このようなストロークの干渉を考慮したストローク抽出
のフローチャートを第17図に示す。処理ブロック21
はストローク種類に固有のコード配列を検出するブロッ
クであり、この固有コード配列の位置を起点として両方
向へ輪郭追跡が開始する。処理ブロック22は、追跡途
中において他のストロークとの干渉の検出、端点の検出
、および干渉の種類の判別を行うブロックである。FIG. 17 shows a flowchart of stroke extraction in consideration of such stroke interference. Processing block 21
is a block that detects a code sequence unique to a stroke type, and contour tracking starts in both directions from the position of this unique code sequence as a starting point. The processing block 22 is a block that detects interference with other strokes, detects end points, and determines the type of interference during tracking.
干渉が検出されないときは、単にストロークを進行させ
る(処理ブロック23)。端点すなわち前記端部のコー
ドまたはコード配列が検出されたときは、端点の位置を
保存し、その方向の追跡を終了する(処理ブロック24
)。If no interference is detected, the stroke is simply advanced (processing block 23). When an endpoint, i.e., a code or code arrangement of said endpoint, is detected, the position of the endpoint is saved and tracking in its direction is terminated (processing block 24
).
“接触”が検出されたときは処理ブロック25で処理す
る。′接触″は、注目ストローク自体の端点または接触
相手の端点を意味する。接触相手のストロークの端点の
場合は、注目ストローク(2本の輪郭線からなる)の一
方の輪郭線のみが干渉を受け、注目ストローク自体の端
点の場合には、両方の輪郭線の進行が妨げられるので、
その区別が可能である。そこで、″干渉″の位置が注目
ストローク自体の場合には、相手の輪郭線の位置を端点
として保存し、その方向の追跡を終了する。When "contact" is detected, processing is performed in processing block 25. 'Contact' means the end point of the stroke of interest itself or the end point of the stroke of the contact partner.In the case of the end point of the stroke of the contact partner, only one contour line of the stroke of interest (consisting of two contour lines) is interfered with. , in the case of the endpoint of the stroke of interest itself, the progression of both contours is blocked, so
The distinction is possible. Therefore, if the position of the "interference" is the stroke of interest itself, the position of the opponent's contour line is saved as an end point, and tracking in that direction is ended.
゛′交差″が検出されたときは、ストローク進行方向に
1′+”コードが現れる。もし、この11+”コードを
スキップした先に再び、注目ストロークに固有のコード
配列が現れた場合には、そのままストロークを進行させ
る(処理ブロック26)。When a ``cross'' is detected, a 1'+'' code appears in the direction of stroke progression. If a chord sequence specific to the stroke of interest appears again after skipping this 11+'' chord, the stroke is allowed to proceed as is (processing block 26).
″干渉″′が″接触″′でも″交差″でもなければ″連
続″であり、具体的にはカギ())のように二つのスト
ローク(カギでは横線と斜め線)が連続する場合である
。この場合、前記のように屈曲部を検出して相手ストロ
ークと連続し、追跡を進める(処理ブロック27)。If "interference" is neither "contact" nor "intersection", it is "continuous", and specifically, it is a case where two strokes (horizontal line and diagonal line in the case of a key) are continuous, as in the case of a key ()). . In this case, as described above, the curved portion is detected and continued with the opponent's stroke, and tracking is advanced (processing block 27).
第18図から第20図は、それぞれ第3図から第5図に
示したバイトマツプから抽出された単線ストロークのイ
メージすなわちフォントパターンの細線化イメージであ
る。FIGS. 18 to 20 are images of single-line strokes extracted from the bite maps shown in FIGS. 3 to 5, respectively, or thinned images of font patterns.
処咀スpノー佑■1
処理ブロック■で抽出されたフォントパターンのストロ
ークより、様々なサイズの線径のフォントパターンを生
成する処理ブロックである。Processing block ■1 This is a processing block that generates font patterns of various sizes and line diameters from the strokes of the font pattern extracted in processing block ■.
抽出されたストロークは、第9図に実線で示したような
基準となる一方の輪郭線である。そこで、フォントのサ
イズに応じてストロークの長さおよび位置を調整し、ま
た、このストロークの元に必要な線形となるような残り
の輪郭線(第9図の破線)を派生させる。この際に、自
然なパターンが得られるように、ストロークの種類に応
して線径拡大率を変える。そして、必要に応じてストロ
ークの内部を塗り潰す。The extracted stroke is one of the reference outlines as shown by the solid line in FIG. Therefore, the length and position of the stroke are adjusted according to the font size, and the remaining contour line (broken line in FIG. 9) that forms the necessary linear shape is derived from this stroke. At this time, the wire diameter expansion rate is changed depending on the type of stroke so that a natural pattern can be obtained. Then, fill in the inside of the stroke as necessary.
文字のパターン構造のパラメータはストロークであり、
輪郭すなわち線の太さはストロークから派生される副次
的な射像といえる。しかし、処理の対象となる実際の文
字は、ある太さをもつ線で描かれ、その輪郭は線の交差
、接触等を含むので、ビットマツプ上でス1−ロークを
輪郭線から幾何学的に抽出することは極めて困難である
。The parameter of the character pattern structure is the stroke,
The contour, that is, the thickness of the line, can be said to be a secondary projection derived from the stroke. However, the actual characters to be processed are drawn with lines of a certain thickness, and their outlines include line intersections, contacts, etc., so one stroke on a bitmap can be geometrically drawn from the outline. It is extremely difficult to extract.
これに対し請求項(1)に記載の本発明によれば。In contrast, according to the present invention as defined in claim (1).
パターンの幾何的ないしトポロジカル的特徴を表したバ
イトマツプ上において、ストロークに沿って特定のコー
ド配列が出現することを利用し、干渉があるストローク
も精度良く、効率的に抽出することができる。By utilizing the fact that specific code sequences appear along strokes on a bytemap representing the geometrical or topological features of a pattern, even strokes with interference can be extracted accurately and efficiently.
またストロークは二つの端点間を2本の輪郭線で結んだ
1個の閉ループである。この2本の輪郭線は線の太さを
表すものであり、極めて相関が高く、相互に関数的であ
り、一方の輪郭線より他方の輪郭線を関数的に派生させ
ることが可能である。A stroke is a closed loop connecting two end points with two contour lines. These two contour lines represent the thickness of the line, and are highly correlated and functional with each other, and it is possible to functionally derive one contour line from the other contour line.
請求項(2)記載の本発明によれば、ストロークの一方
の輪郭線だけを抽出するので、両方の輪郭線を抽出し保
存する場合に比べ、ストロークデータの保存用メモリの
容量を削減できる。また、ストロークの端点は水平、垂
直方向の極値であるので、2本の輪郭線に塗り始めと塗
り終りの属性を与えることにより、ストローク内部の高
速塗り潰しが可能になる。According to the present invention as set forth in claim (2), since only one contour of a stroke is extracted, the capacity of the memory for storing stroke data can be reduced compared to the case where both contours are extracted and stored. Furthermore, since the end points of the stroke are the extreme values in the horizontal and vertical directions, by giving the attributes of the start and end of filling to the two contour lines, it is possible to fill the inside of the stroke at high speed.
またストロークの種類に応じた線形変換を行うには、ス
トロークの輪郭線を2分し、一方の輪郭線を他方の1Q
郭線に括づく関数として表す必要がある。請求項(3)
に記載の本発明によれば、このような線径のノンリニア
変換を容易に行うことができるため、共通のフォントに
対するノンリニアな線径可変フォント変換によって、サ
イズおよび線径が異なる多種のフォントパターンを生成
することが可能となる。In addition, in order to perform linear transformation according to the type of stroke, divide the stroke outline into two, and divide one outline into 1Q of the other.
It is necessary to express it as a function bounded by a contour line. Claim (3)
According to the present invention described in , it is possible to easily perform such non-linear conversion of the wire diameter, so it is possible to convert various font patterns with different sizes and wire diameters by non-linear variable wire diameter font conversion for a common font. It becomes possible to generate.
第1図は本発明を実施するための装置構成の一例を示す
ブロック図、第2図は本発明の一実施例の全体処理を示
ずフローチャート、第3図から第5図はそれぞれバイト
マツプの例を示す図、第6図は第2図中のストローク抽
出処理ブロックの処理の流れを示すフローチャート、第
7図は各種ストロークに固有のコード配列を示す図、第
8図は第6図中の各処理ブロックの内容を示すフローチ
ャート、第9図は抽出されるストロークのイメージを示
す図、第10図はストロークのデータフォ−マットを示
す図、第11図はストローク抽出のための輪郭追跡の説
明図、第12図は端部のコードまたはコード配列を示す
図、第13図はストローク間干渉の例を示す図、第14
図は″交差″の場合のストローク抽出を説明するための
図、第15図は″接触″の場合のストローク抽出を説明
するための図、第16図は″連続″の場合のス1−ロー
ク抽出を説明するための図、第17図はストローク間干
渉を考慮したストローク抽出処理フローチャート、第1
8図から第20図はそれぞれ第3図から第5図に示した
バイトマツプより抽出されたストロークを、示す図であ
る。
1・・・ビットマツプメモリ、
2・・・バイトマツプメモリ、
3・・・CPU、 4・・・プログラムメモリ、5・
・・データメモリ。
第3
図
h!I
第2図
第6図
m、LL44俸44>
第9図
凸デ轟ヲラ
第7図
第8図
第11図
(^)季L(聚
(しン
4輔(
(C)友τ斜機
(沈)んT紐線
第12図
第17図
童溢、も。
第20図FIG. 1 is a block diagram showing an example of a device configuration for carrying out the present invention, FIG. 2 is a flowchart showing the overall processing of an embodiment of the present invention, and FIGS. 3 to 5 are examples of byte maps, respectively. FIG. 6 is a flowchart showing the processing flow of the stroke extraction processing block in FIG. 2, FIG. 7 is a diagram showing the code arrangement specific to each stroke, and FIG. Flowchart showing the contents of the processing block, FIG. 9 is a diagram showing an image of the stroke to be extracted, FIG. 10 is a diagram showing the data format of the stroke, and FIG. 11 is an explanatory diagram of contour tracking for stroke extraction. , FIG. 12 is a diagram showing the code or code arrangement at the end, FIG. 13 is a diagram showing an example of interference between strokes, and FIG. 14 is a diagram showing an example of interference between strokes.
The figure is a diagram for explaining stroke extraction in the case of "crossing", Figure 15 is a diagram for explaining stroke extraction in the case of "contact", and Figure 16 is a diagram for explaining stroke extraction in the case of "continuous". A diagram for explaining extraction, FIG. 17 is a flowchart of stroke extraction processing considering interference between strokes.
8 to 20 are diagrams showing strokes extracted from the bite maps shown in FIGS. 3 to 5, respectively. 1... Bit map memory, 2... Byte map memory, 3... CPU, 4... Program memory, 5...
...Data memory. Figure 3 h! I Fig. 2 Fig. 6 m, LL44 Salary 44> Fig. 9 Convex de Todorowora Fig. 7 Fig. 8 Fig. 11 Figure 12, figure 17, overflow, etc. Figure 20
Claims (1)
いて近傍ビットにより演算した値にバイトコードを割り
付けたバイトマップを作成し、該バイトマップ上におい
て、ストロークの種別に対応した固有のコード配列を起
点として輪郭追跡をすることによって、フォントパター
ンのストローク成分を抽出することを特徴とするフォン
トパターン処理方法。(2)請求項(1)において抽出
されたストローク成分を、その両端点を境界として二つ
の輪郭線に分割し、その一方の輪郭線だけをストローク
成分として抽出することを特徴とするフォントパターン
処理方法。 (3)請求項(2)においてストローク成分として抽出
された輪郭線より、それとともにストロークを構成する
輪郭線を派生し、その際にストロークの種別に応じて異
なる線径拡大率を適用することを特徴とするフォントパ
ターン処理方法。[Claims] (1) A byte map is created in which a byte code is assigned to a value calculated using neighboring bits for each black point of a font pattern on the bit map, and on the byte map, a unique A font pattern processing method characterized by extracting stroke components of a font pattern by tracing contours using a code sequence as a starting point. (2) Font pattern processing characterized in that the stroke component extracted in claim (1) is divided into two contour lines using both end points as boundaries, and only one of the contour lines is extracted as a stroke component. Method. (3) In claim (2), a contour line constituting a stroke is derived from the contour line extracted as a stroke component, and at that time, a different wire diameter enlargement rate is applied depending on the type of stroke. Characteristic font pattern processing method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1137617A JP2776887B2 (en) | 1989-05-31 | 1989-05-31 | Font pattern processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1137617A JP2776887B2 (en) | 1989-05-31 | 1989-05-31 | Font pattern processing method |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH032058A true JPH032058A (en) | 1991-01-08 |
JP2776887B2 JP2776887B2 (en) | 1998-07-16 |
Family
ID=15202864
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1137617A Expired - Fee Related JP2776887B2 (en) | 1989-05-31 | 1989-05-31 | Font pattern processing method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2776887B2 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5583977A (en) * | 1978-12-20 | 1980-06-24 | Fujitsu Ltd | Pattern process system |
JPS60126782A (en) * | 1983-12-13 | 1985-07-06 | Ricoh Co Ltd | Character recognizing device |
JPS60128577A (en) * | 1983-12-15 | 1985-07-09 | Ricoh Co Ltd | Character recognizing device |
-
1989
- 1989-05-31 JP JP1137617A patent/JP2776887B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5583977A (en) * | 1978-12-20 | 1980-06-24 | Fujitsu Ltd | Pattern process system |
JPS60126782A (en) * | 1983-12-13 | 1985-07-06 | Ricoh Co Ltd | Character recognizing device |
JPS60128577A (en) * | 1983-12-15 | 1985-07-09 | Ricoh Co Ltd | Character recognizing device |
Also Published As
Publication number | Publication date |
---|---|
JP2776887B2 (en) | 1998-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6470095B2 (en) | Automatic extraction of text regions and region borders for an electronic work surface | |
Song et al. | An object-oriented progressive-simplification-based vectorization system for engineering drawings: model, algorithm, and performance | |
JP5058575B2 (en) | Image processing apparatus, control method therefor, and program | |
US5515455A (en) | System for recognizing handwritten words of cursive script | |
JP4443576B2 (en) | Pattern separation / extraction program, pattern separation / extraction apparatus, and pattern separation / extraction method | |
JP2608571B2 (en) | Apparatus and method for vectorizing input scanned image data | |
EP1017011A2 (en) | Block selection of table features | |
US20020051574A1 (en) | Character recognition method, program and recording medium | |
KR910001525B1 (en) | Method of curve approximation | |
KR940006918B1 (en) | Method and system for filling contours in digital typefaces | |
JP2006227824A (en) | Drawing recognition method and device | |
JPH032058A (en) | Processing method for font pattern | |
JPH0277889A (en) | Graphic painting-out system | |
JP2022090469A (en) | Format defining device, format defining method, and program | |
US6614940B2 (en) | System, method and computer program product for generic outline font compression | |
Bai et al. | Object Boundary Encoding—a new vectorisation algorithm for engineering drawings | |
JPH03177982A (en) | Image processing method | |
KR100254659B1 (en) | Character forming apparatus | |
JP5361315B2 (en) | Information processing apparatus and information processing method | |
JP3082467B2 (en) | Outline data processing device | |
JPH0658689B2 (en) | Line figure separation device | |
Dori et al. | Object-process based segmentation and recognition of ANSI and ISO standard dimensioning texts | |
JP2771981B2 (en) | High quality character pattern generation method | |
JP2595361B2 (en) | Inside / outside judgment method for figures consisting of broken lines | |
CN112733621A (en) | Map high-precision information identification method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |