JPS63206873A - 入力走査画像データのベクトル化のための装置及び方法 - Google Patents

入力走査画像データのベクトル化のための装置及び方法

Info

Publication number
JPS63206873A
JPS63206873A JP63022678A JP2267888A JPS63206873A JP S63206873 A JPS63206873 A JP S63206873A JP 63022678 A JP63022678 A JP 63022678A JP 2267888 A JP2267888 A JP 2267888A JP S63206873 A JPS63206873 A JP S63206873A
Authority
JP
Japan
Prior art keywords
vector
shape
block
subroutine
filled
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
Application number
JP63022678A
Other languages
English (en)
Other versions
JP2608571B2 (ja
Inventor
イーリアン・ルイス・リエン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
GTX Corp
Original Assignee
GTX Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by GTX Corp filed Critical GTX Corp
Publication of JPS63206873A publication Critical patent/JPS63206873A/ja
Application granted granted Critical
Publication of JP2608571B2 publication Critical patent/JP2608571B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/20Contour coding, e.g. using detection of edges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/457Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by analysing connectivity, e.g. edge linking, connected component analysis or slices

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [産業上の利用分野コ 本発明は、文書特に線図、手書きの技術図面等を含む書
類の走査から受取った直列データをベクトル化するため
の装置および方法に関する。
[従来の技術および解決しようとする課題]当業者は、
一枚の書類が典型的な光学的走査装置により行単位に走
査することができる多数のピクセル・サイズの領域を有
することを確認している。一枚の紙にこのような領域即
ちr点」をことごとく表わすためには、6千万ビツトも
の情報を必要とし得る。走査された画像のコンピユータ
化された操作およびその電子的な伝送を可能にするため
処理され格納されねばならないデータ量を減少するため
種々の手法が提起されてきた。この目的のため、種々の
文字確認、パターン確認およびベクトル化手法が開発さ
れてきた。1つの形式の文字またはパターンの認識法は
、光学的な文字読取り装置において典型的に見出される
テンプレート・マツチングである。この試みは、走査さ
れた文字を格納された「テンプレート」に対して非常に
厳密に突合わせを行なうことを必要とする。別の試みは
、単純な形状の認識およびこれらの形状を表わすためベ
クトルを生成することを含む。別の試みは、走査された
データにおいて行なわれる複雑な統計的特徴抽出法およ
びこのような特徴を格納されたサンプルと統計的に比較
することを含む。
全ての公知の手法は、高価なピクセル操作を必要とし、
IBM社のAT型パーソナル・コンピュータの如き低コ
ストのコンピュータでは満足できる精度および速度で達
成することができない。
技術水準は、一般的には下記の文献によって示される。
M 、 OkamotoおよびH、Okamotoの論
文「ランレングス・データを用いる手書きの略図の線の
認識」は・、僅か数本の繋がった黒のピクセルを用いて
線図から画像をベクトル化する方法を開示している。(
この論文は日付けは現在では不明であり、この文献が本
発明の前のものであるかどうかは不明である。)入力ベ
クトルが垂直、水平または45°のベクトルであるかど
うかを判定するため、入力ベクトルは格納された基準値
と比較される。
連続する行における線(run)は、これらが繋がりで
ある条件を満たすならば、1つのブロックに組合される
。これらブロックが次に認識される。多数のランレング
スは集められて、長さ、ある線間の勾配および線の連結
性に従って1つのブロックを構成する。線の認識は、勾
配および形状に従って線として認識することができるブ
ロック上で行なわれる。
米国特許第4,307,377号(発明者:Pferd
等)は、コンピュータ・グラフィックス素材がラスタ・
スキャンされ、ディジタル化され、次いで類似の暗さ、
典型的には黒または白の狭い巾の領域について調べられ
るシステムを開示している。このような線は、各領域お
よび厚さを画成する最初と最後の走査線の座標を用いる
ことにより簡明に符号化されている。
米国特許第4,493,105号(発明者:Beall
等)は、2進値化された画像の縁部輪郭周囲の一義的に
画成された隅点のベクトルのXおよびY座標を決定し、
次いでこのような符号化された隅点を画像を一緒に定義
する関連リストヘー義的に繋ぐ手法を開示している。
米国特許第4,545,067号(発明者:Juvin
等)は、電子的に走査されたデータが処理されて画像の
特徴的な輪郭線の座標を決定し、各輪郭線をセグメント
化し、このセグメントを符号化し、各々にその長さおよ
び角度に関する1対の値を帰属させ。
これらの値を格納された基準輪郭と比較する自動画像認
識システムを開示している。
)i 、 )(lshiyama等の英国特許出願第2
131680八号は、認識されるべき画像の輪郭におけ
る特徴的な点と対応するデータを格納し、これらデータ
を読出し、これに拡大、縮小、回転処理等の如き拡大/
変更処理を行ない、このように処理したパターンを1次
元の時間の直列データに変換する手法を開示している。
公知のシステムはいずれも、手書きの技術図面等の如き
書類を約5分の如きできるだけ短い時間内に迅速かつ正
確にディジタル化することができる低コストの正確なス
キャナーに対する現在の要求を満たすものはない。
[課題を解決するための手段] 従って、本発明の目的は、順次走査されたランレングス
・データをベクトル化するための改善された方法および
装置の提供にある。
本発明の別の目的は、1つの画像を電子的に表わすため
に必要はデータ量を減少するランレングス・データをベ
クトル化するための改善された手法の提供にある。
本発明の他の目的は、ベクトル化されたデータから再構
成されたオリジナル対象の「コピーJの精度を実質的に
増強するためランレングス・データをベクトル化するた
めの改善された装置の提供にある。
本発明の他の目的は、電子的に走査された書類を編集す
るため必要な時間、処理およびハードウェアの量の実質
的に減少することにある。
本発明の他の目的は、コストを低減しかつ図形データを
電子的に伝送する速度を向上するための方法および装置
の提供にある。
本発明の他の目的は、走査された図形対象を正確にディ
ジタル化するため必要なメモリー量を少くすることにあ
る。
要約すれば、本発明の一実施態様によれば、本発明は、
対象を電子的に走査することにより得られたランレング
ス・データをベクトル化するための方法および装置を含
み、これにおいてはランレングス・データは対象が構成
される繋がった基本的な形状を表わすレコードに組立て
られる0本方法は、対象の第1の基本的な形状のレコー
ドを取得し、この第1の基本的形状の前後の縁部をベク
トル化し、この前後の縁部のベクトルについて演算する
ことにより、第1の基本的形状が正確に円弧のベクトル
、線のベクトルあるいは充填された形状として正確に表
わすことができるかどうかを判定し、第1の基本的形状
がそれぞれ線のベクトルかあるいは弧のベクトルにより
表わすべきものであれば、線のベクトルかあるいは弧の
ベクトルのいずれかである入力ベクトルを生成し、第1
の基本的形状が充填された形状として表わすべきもので
あれば、充填された形状を定義するデータを生成し、第
1の基本的形状が充填された形状として表わされるなら
ば、新しいエントリとして充填された形状のデータをベ
クトル・テーブルに入れ、第1の基本的形状が1つの入
力ベクトルにより表わされるならば、この入力ベクトル
が既にテーブルに格納されたベクトルと組合せることが
できるかどうかを判定し、もしこの判定が肯定ならば、
入力ベクトルおよび格納されたベクトルを含む組合され
たベクトルをテーブルに格納し、さもなければ、前記入
力ベクトルを新しいエントリとしてテーブルに入れるス
テップを含む。本発明の上記の実施態様においては、レ
コードは、対象の台形でない基本的形状における全ての
ランレングス・スライスを含む対象および滲みのレコー
ドの基本的形状である台形の4つの隅点を含む台形のレ
コードを含む、このレコードはまた、対象の収束および
(または)発散と結び付けられた基本的形状に対するポ
インタを含む収束レコードおよび発散レコードをも含む
、特定の交差カウンタと関連付けられた全ての基本的形
状は、第1の交差ではなく第2の交差と関連付けられた
基本的形状がベクトル化される前に、簡素化された充填
形状データ、円のデータあるいは弧のデータにベクトル
化即ち縮減される。形状認識サブルーチンが、第1の基
本的形状が水平であるかどうかを判定し、次いで第1の
基本的形状の前後の縁部がそれぞれ類似の長さの複数の
線のベクトルを含むかどうかを判定し、もしそうであれ
ば、第1の基本的形状は「略々」水平であるかどうかを
判定し、もしそうでなければ、弧のコードを生成し、も
し第1の基本的形状が略々水平であれば、第1の基本的
形状が凸であるかどうかを判定し、もしそうであれば、
充填された円のコードを生成し、第1の基本的形状が凸
でなければ、交差不鮮明コードを生成する。
もし第1の形状の前後の縁部が各々複数の類似の長さの
ベクトルを含まなければ、形状認識サブルーチンは、第
1の基本的形状の前後の縁部の最も長いベクトルが平行
であるかどうかを判定し、もしこれらがそうでなければ
充填された多角形コードを生成し、もしそうであれば、
垂直方向のべりトル・コードあるいは対角方向のベクト
ル・コードを生成する。前述のコードは、次に、実際の
ベクトル即ち充填された形状のコードを生成するサブル
ーチンを呼出すため用いられ乙0次いで、このベクトル
即ち充填された形状コードは、情報をベクトル・テーブ
ルに対する新しいエンティティとして入れさせるか、あ
るいはもし情報が入力ベクトルであればこれが弧のベク
トルか線のベクトルかどうかを判定するエンティティ生
成および非セグメント化サブルーチンに対し送られて、
対応する弧の非セグメント化あるいは線の非セグメント
化サブルーチンを実行する。この弧の非セグメント化サ
ブルーチンは、入力蓋ベクトルと同じ交差数を有する格
納されたベクトルが存在するかどうかを判定する。もし
存在しなければ、入力ベクトルはベクトル・テーブルに
対する新しいエントリとして加えられ、またもし存在す
るならば、弧の非セグメント化サブルーチンは、その2
つの最も近い終端点が入力蓋ベクトルを格納ベクトルと
組合せることを許容するに充分なだけ接近しているかど
うかを判定する。もしそうであれば、弧の非セグメント
化サブルーチンは、その結果得るベクトルの交差角度が
鋭であり過ぎるかどうかを判定し、もしそうでなければ
、結果として得る形状が凸であるかどうかを判定し、も
しそうであれば、入力ベクトルが格納されたベクトルと
組合されるべきことを示す「組合せ」フラッグをセット
する。
線の非セグメント化サブルーチンは、テーブルにおける
いずれかのベクトルが入力線ベクトルと同じ交差数を持
つかどうかを判定し、もしそうでなければ、入力ベクト
ルがベクトル・テーブルに対する新しいエントリとして
入れさせる。もし格納されたベクトルが入力線ベクトル
と同じ交差数を持つならば、それらの2つの最も近い終
端点間の「ずれ」およびそれらの外端点間の直線とが計
算されて、入力ベクトルが格納ベクトルと組合せること
ができるかどうかの判定が行なわれる。もしこの判定が
肯定ならば、「組合せ」フラッグがセットされる。もし
組合せフラップがセットされるならば、格納ベクトルが
入力ベクトルを含むように更新される。この全手順は、
対象の全ての基本的形状がベクトル化されてベクトル・
テーブルに格納されるまで反復されるが、このテーブル
は次にユーティリティ・プログラムにより利用すること
ができる。
[実施例コ 本発明のベクトル化法について詳細に説明する前に、こ
のベクトル化法は、手書きの技術図面の如き書類の行単
位の走査を行ない、それぞれ(1)繋がった黒のビクセ
ルのストリングにおける最後に走査された黒のビクセル
のX座標および(2)繋がった黒のビクセルのこのスト
リング即ちrスライス」の長さを表わす一連の粗ランレ
ングス形態の直列フォーマットで結果として得るデータ
を受取るコンピュータ・グラフィックス・システムにお
いて主として用いられることを最初に知るべきである。
第17図に示される如きコンピュータ・グラフィックス
・システムにおいては、オリジナルの線図501、典型
的には設計図面等が適当な画像スキャナー502によっ
て走査され、このスキャナーが直列のビクセル・データ
503を「自動図面認識システム」504に出力し、こ
のシステムはランレングス・エンコーダ505、前に触
れた係属中のKr1chの米国特許出願に記載されるウ
ィンドウ処理メモリー506、およびMotorola
社のM C68020型マイクロプロセツサの如き1つ
以上のマイクロプロセッサ・チップを含むことができる
C P U 507を含む、この自動図面認識システム
504は、以下に述べるビクセル・データを簡単にして
、509により示されるようなビクセル、ベクトル、認
識された文字および記号をワークステーション510に
対し生じ、ワークステーションはVERTICOMグラ
フィックス・ボード、高解像度グラフィックス・モニタ
ー513、キーボード514、マウス515、番号51
1で略図的に示されるフロッピー・ディスク・ドライブ
、およびハード・ディスク512を含むIBP社のPC
−AT型デスク・トップ・コンピュータを含む。ランレ
ングス・エンコーダ505は、行の信号の終りおよびペ
ージ信号の終りと共にスキャナーから直列ビクセルを受
取る比較的簡単な回路であり、前記信号は新しいゼロで
ないビクセル・コードが受取られる毎に増分されるビク
セル・カウンタに対して加えられる増分信号およびクリ
ア信号を生じる制御回路に対して送られる。この制御回
路はまた、新しいビクセル入力信号が受取られる毎に増
分される列カウンタ回路に対して加えられる増分信号お
よびクリア信号を生じる。
ビクセル・カウンタに対するクリア信号は、繋がった黒
のビクセルのストリングから白のビクセルへの変換が生
じる毎にこれをリセットし、この時ビクセル・カウンタ
の内容がFIFOバッファに対して書込まれる。ビクセ
ル・カウンタはまた、書類における対象の走査から生じ
る暗いビクセルのその時のストリング即ち「スライス」
の長さを格納する0列カウンタのクリア信号は、行信号
の終りに応答して各行の終りにおいて生成される。書込
み信号は、スライスの終りが生じるか行の終りが生じる
毎に、ビクセル・カウンタおよび列カウンタの両方の内
容をFIFOバッファに対して書込ませる。
上記の粗ランレングス・データはまた、走査される各線
の終りおよび走査される各ページの終りを示す、粗のラ
ンレングス・データは、(1)個々の簡単な部分かある
いは(2)「対象」の「滲み」のいずれかを表わす連係
リストに再構成される。
「対象」とは白のビクセルによって完全に囲まれた画像
である。
前記の連係リストは、スライス数を大幅に縮減するため
、種々のスライス間の重要でない白のビクセル間隙を取
除くためフィルタされる。これは、ある意図されたスラ
イスを意図されない1つまたは2つの白のビクセルによ
り繋がった多数の更に短いスライスへの偶発的な分割を
生じ得る小さな重要でない間隙が書類の走査中しばしば
生じる故に必要となる。
フィルタされた連係リストは、「幾何学的に」構成され
る(1)全てのコンパクトなスライス・データおよび各
「滲み」を他の滲みまたはこれと繋がった台形と関連付
けるため必要な関連するポインタを含む「滲みのレコー
ド」と、(2)台形により正確に表わすことができる対
象の形状の4つの隅点および関連する点と、他の滲みあ
るいはこれと繋がった台形に対するポインタとを含む「
台形のレコード」と、(3)後に述べる収束レコードと
、(4)後に述べる発散レコードとに組立てられる。前
掲の係属中のRoyeの米国特許出願は、これらのレコ
ードを生成する方法を詳細に記載している。本発明のベ
クトル化法は、対象を「ベクトル化」するため前述のレ
コードを利用している。
次に、本発明のベクトル化法により生じた出力ベクトル
およびデータは、オリジナル図即ち対象等の修正即ち編
集バージョンを定義する更新ファイルを生成するため倍
率により寸法を倍増し、ある特徴を削除し、ある特徴を
修正し、特徴を加えるように、コンピュータ援用設計(
CA D )システム等によりアクセスすることができ
る適当なデータ・ファイルにロードすることができる。
次いで編集されたファイルは、再び表示するかさもなけ
れば編集された書類を表わす情報を用いるため使用する
ことができる。
第1図は、本発明のベクトル化法の基本的なフローチャ
ートを示している。プログラムはラベル1において入り
、判断ブロックIAへ進む。
もし判断ブロックIAの判定が肯定ならば、このことは
、その時の対象が構成される全ての繋がった形状がベク
トル化手順の最初の段階を通過したことを意味する。も
しそうであれば、プログラムは第1A図のフローチャー
トへ進み、その時の基本的形状のベクトル化されたデー
タのどれかが円および弧を認識して、円および弧の数学
的パラメータ即ち中心、半径等の値を代入することによ
り更に簡単化できるかどうかを判定する。
その時の対象がベクトル化の最初の段階を完全に通過す
るまでは、判断ブロックIAの判定は否定となり、プロ
グラムはブロックIBへ進む。
第1図の説明を進める前に、用語「対象」、「滲み」、
「スライス」、「台形」、「交差」、「収束」および「
発散」により意味するもののある事例を提示することが
便利であろう。
第6図において、参照番号110により示される全体形
状は、境界のみが第6図において黒として示されるが、
完全に黒である「対象」である、各対象は、「滲み」あ
るいは台形と呼ばれる比較的単純な多数の繋がれた基本
的形状からなっている0台形は4辺を有する多角形であ
る。第6図においては、形状111^、 112.11
7.119およびその他が台形である。滲みは台形とし
て正確に分類できない不規則的な形状である。第6図に
おいては、形状111B、 116B、 113Bおよ
び125が滲みである。台形は、その4つの隅部の座標
によって正確に表わすことができる。滲みはその境界を
画成する全ての「スライス」により表わされる。(各ス
ライスが同一直線状の隣接する黒または白のピクセルの
ランレングスを構成することを想起されたい、)1つの
対象の各基本的形状は、対象の他の少なくとも1つの基
本的形状と繋がっている。このため、対象は白のピクセ
ルによって完全に囲まれ、これらピクセルはいずれも粗
のランレングス即ちスライス・データのいずれにも含ま
れない、第6図においては、対象110は滲み111B
、 113B、 116B、 125.126゜127
および128を含む。
対象110は、丸味のある外端部を有する単純な形状1
11.113. liBを含み、台形により正確に表わ
すことができない0例えば、単純な形状111は、台形
および滲みである上方部分111Bである下方の部分1
11^を含む、同様に、単純な形状113は台形113
^および滲み113Bを含み、単純な形状116は台形
116^および滲み116Bを含む。
対象110における各台形は、関連した「台形レコード
」を有し、各滲みは関連した「滲みレコード」を有する
。各滲みレコードは、対応する滲みの全てのスライスを
含む、各台形レコードは、台形の4つの隅点を含む。
対象110は、複数の「交差滲み」125〜128を含
む。
この交差滲みの各々は、当該滲みの全てのスライスを含
む、対象110はまた、130.131および132の
如き多数の「開放点」を含む、rM放点は、別の滲みま
たは台形と直接接合しない上方または下方の終端点であ
る。
上記の粗ランレングス・データから組立てられるレコー
ドはまた、「発散レコード」および「収束レコード」を
含む。収束とは、2つの上方のスライスが下方の1つの
スライスと少なくとも部分的に重なる次の下方の水平走
査線の1つのスライスの上方の特定の水平走査線の2つ
の同一線上のスライスとして定義される0例えば、第6
図においては、それぞれ台形111^および112の2
つの最も下方のスライス、および交差滲み125の最上
方の1つのスライスが収束を形成する。同様に、発散は
、上方の走査線の1つのスライスと少なくとも部分的に
重なる次の下方の走査線の2つの同一線上のスライスと
からなっている。対象110においては、交差滲み12
5の最下方のスライスと、台形114.115の最上方
のスライスとが、それぞれ発散を形成する。ある対象の
発散レコードおよび収束レコードが、当該対象の収束お
よび発散の全てに対するデータを格納する。
ここで、第1図のベクトル化プログラムによりアクセス
される種々のレコードについて述べることが好都合であ
ろう、要約すれば、レコードは、台形、滲み、発散およ
び収束のシーケンス間の相互の関係を説明するため必要
である。上記の台形レコード、滲みレコード、発散レコ
ードおよび収束レコードに加えて、対象ヘッダ・レコー
ドが存在する。各レコードは、このレコードを完成する
ため必要な数と同数の64バイトのメモリー領域を含む
、メモリーの各64バイトの領域の終りには、もしその
時のレコードがその時の64バイトのメモリー領域に完
全に保有できなければ別の64バイトのメモリー領域の
アドレスを指示する「リンク・ポインタ」が存在する。
対象ヘッダ・レコードを以下に示す。
対象  beg  end  beg  end  b
eg  end  beg  end  beg  e
nd  beg  end  リンクへ、ダ  ptr
  ptr  ptr  ptr  ptr  ptr
  ptr  ptr  ptr  ptr  ptr
  ptrp    001122334455 toOvvvvvvvvvvvv # 対象 beg end begend beg end
 beg end beg end beg endヘ
ッダ ptr ptr ptr ptr ptr pt
r ptr ptr ptr ptr ptr ptr
 ’ルク0000vvvvvvvvvvvv   充填
上記の対象ヘッダ・レコードは、その最初のバイトにそ
の時の対象の開放点の数を示す数’I)tr#Jを含む
。対象の各開放点は、初めのポインタr begptr
」およびこれと関連した終りのポインタrendptr
Jを有する。各台形または滲みの初めのポインタは、当
該台形または滲みのレコードの「走査」が開始する点と
対応し、また当該滲みまたは台形のレコードのアドレス
を含む、各開放点毎に、必要に応じて当該台形レコード
または滲みレコードが続けられるメモリーの2番目の6
4バイトの領域を指示する終りのポインタも存在する。
もし対象ヘッダ・レコードの初めのポインタにより指示
される台形レコードまたは滲みレコードが指示される滲
みまたは台形のレコードに完全に含まれるならば、対応
する終りのポインタは初めのポインタと等しい。
以下に示す滲みレコードは、対応する滲みに含まれる全
てのスライスを格納する。滲みレコードの最初のバイト
は、いくつかのスライスが滲みに含まれるかを示すスラ
イス・カウント数rslccnJを含む。滲みレコード
の2番目のバイトは、1つの滲みレコードに対し04で
ある「レコード・タイプ」レコード・コードである。
滲みレコードの一例を以下に示す。
sc              VwIn  ptr
  up  Ys  Eo     スライスit  
 down  ptr      Ys   Cr  
0 1 2 3 4 5 8 7 8 9   リンク
c  04  v     Gk 次のバイトは、滲みが別のレコードまで下方に走査され
つつあるかどうかを示す下方ポインタ’ptr dow
rBを含む。この下方ポインタは、このような他のレコ
ードのアドレスを指示する。
滲みレコードの次のバイトは、もしその時の滲みが開放
点から走査されつつあるならば数値0を持つ上方ポイン
タrptr up」を含む。滲みが発散から下方へ走査
されつつあるならば、上方ポインタは対応する発散レコ
ードのアドレスを指示する。
滲みレコードの次のバイトはY座標Ysを含み、これは
滲みの最上位のY座標を示す。次のバイトは、滲みの最
下位のY座標Yeを含む。
次のバイトはベクトルを格納する「ベクトル・テーブル
」と呼ばれるテーブル、あるいはその時の滲みが本発明
のベクトル化法により最終的に変換される充填された形
状の頂点を示す「充填形状のテーブル」と呼ばれるテー
ブルにおけるアドレスに対するポインタrV E CG
ワーク」である。
rV E CGワーク」は、もしその時の滲みが交差滲
みとして認識されるならば、−1にセットされる。
滲みレコードの次のバイトは、Y座標(X)およびその
時の滲みの各スライス毎の巾(W)を含む。
必要に応じて、当該滲みレコードに対して要求され得る
次の64バイトの領域の初めのアドレスを指示する滲み
レコードの各64バイト領域の終りにリンク・ポインタ
が設けられる。
台形レコードを以下に示す。
tc      f VwxOx2  x4  x6 
 x8  xOrn  ptrup  i EoyOy
l  y2  y3  y4  y5at  down
ptr l Cr  xi  x3  x5  x7 
 x9  xip03    1GkyOyly2y3
y4y5f  x2  x4  x6  x8  xo
  x2i   yOy7  yOy9  yOyll
   x3  x5  x7  x9  xi  x3
I    yOy7  yOy9  yOyl上記の台
形レコードは、いくつの台形がこの特定の台形レコード
に格納されるかを示すカウント・ポインタrtrap 
 cnt」をその最初のバイトに保有する。従って、レ
コード・タイプはコードo3により示される。下方のポ
インタrptr down」および上方ポインタrlp
ptrJは、上記の滲みレコードにおけるものと正確に
同じ意味の台形レコードを持つ、各々が他のものと1つ
の縁部を共有する限り、多数の台形を1つの台形レコー
ドに格納することができる0台形レコードの2番目に示
された64バイトの領域における「充填」ポインタは、
現在使用されない、ベクトル・テーブルのポインタ’ 
V E CGワーク」は、上記の滲みレコードと同じ怠
昧を持つ0台形レコードにおける残りのエントリは、各
台形の4つの隅点のXおよびY座標をtM成する。
1+f定の対象に対する発散レコードの一例を以下に示
す。
p             beg end beg
 encl begend beg endt    
 beg  end  xo  xi   ptr  
ptr  ptr  ptr  ptr  ptr  
ptr  ptr  リンクr   ptrptryy
oo112233#OI            V 
  V   v   v   v   v   v  
 vr   beg end beg end beg
 end beg end beg end beg 
endi     ptr  ptr  ptr  p
tr  ptr  ptr  ptr  ptr  p
tr  ptr  ptr  ptr  りンク+  
  445566778899 101vvvvvvvvvvvv 発散レコードの最初のバイトは、この特定の発散レコー
ドにより表わされる発散から発散する滲みまたは台形の
数を示すポインタ番号’ptr  #Jを含む。コード
01は、その時のレコードが発散レコードであることを
示す0次に、初めのポインタrbegptr」は、他の
滲みおよび(または)台形が発散する滲みを表わす滲み
または台形のレコードのアドレスを指示する。終りのポ
インタrend ptr」は、問題の滲み(他の台形お
よび(または)滲みが発散する)が64バイト以上のメ
モリー領域を要求しなければ、初めのポインタと同じで
ある。この場合、終りのポインタは当該64バイトの領
域の初めを指示する。
発散レコードの次の2つのバイトは、その時の発散が生
じるスライスのXおよびYの座標、即ちxo、y  x
i、yを含む。走査線が水平であるため、この2つのY
座標が同じであることに注意されたい。座標xOおよび
Xlは前記スライスの終端点を定義する。発散テーブル
における次のエントリは、複数の対の初めのポインタお
よび終りのポインタを含む。各対の初めのポインタは、
その時の発散点から発散する滲みまたは台形のアドレス
を指示する。いずれの場合も、64バイト以上のメモリ
ー領域が指示される滲みに対して要求されなければ、終
りのポインタは初めのポインタと同じものであり、この
場合終りのポインタは滲みレコードまたは台形レコード
が続く64バイトのメモリー領域の初めを指示する。
収束レコードは、コードが02であることを除いて、発
散レコードと似ている。収束レコードの一例を以下に示
す。
t   beg end xo xi  beg en
d beg end beg end beg end
r     ptr  ptr    y   y  
ptr  ptr  ptr  ptr  ptr  
ptr  ptr  ptr  リンク#02  v 
  v       OO112233i   beg
 end beg end beg end beg 
end beg end beg endI    p
tr  ptr  ptr  ptr  ptr  p
tr  ptr  ptr  ptr  ptr  p
tr  ptr  りンク次に第1図の説明に戻って、
もしブロックIAの判定が否定ならば、その時の対象の
これ以上の分岐が処理される必要がある。プログラムは
ブロックIBへ進み、交差ポインタを適当な収束レコー
ドまたは発散レコードのアドレスに対する交差ポインタ
をセットし、次いで判断ブロックICへ進む0判断ブロ
ックICにおいては、プログラムは、交差ポインタによ
り指示されるその時の交差の全ての分岐が処理されたか
どうかを判定する。この判定は、上記の発散または収束
レコードを照合す゛ることにより行なわれる。
もし判断ブロックICの判定が否定ならば、ベクトル化
プログラムはブロックIDに進み、第1B図のサブルー
チンを実行することにより次の滲みまたは台形のレコー
ドを取出す。しかし、もしブロックICの判定が肯定な
らば、通常は交差ポインタを増分することが必要となる
。プログラムはブロックIEへ進み、その時の発散また
は収束レコードを「処理済み」とマークし、次いで判断
ブロックIFへ進む。
ブロックIFの判定について述べる前に、走査されつつ
ある書類に細い線が描かれることが意図されるものが一
本の濃い線であるべき細い白の間隙を持つような状況が
存在し得ることを理解すべきである。ベクトル化プログ
ラムにとっては、このような白い間隙の結果として理論
的に形成され得る交差を認識することは望ましくないこ
とである。これを避けるために、判断ブロックIFは、
その時の発散または収束の分岐の処理が多数の水平でな
いベクトルの生成をもたらす結果となったかどうかを判
定する。もしそうであれば、交差カウンタを増分しなけ
ればならない。これは、ブロック16において行なわれ
、プログラムは判断ブロックIAへ戻る。
しかし、もしブロックIFの判定が否定ならば、これは
多数の水平ベクトルが生成されたことを意味する。この
ことは、間に白の間隙がある多数の水平線が存在する場
合に対応する。もしそうであれば、交差カウンタを増分
することは望ましくなく、プログラムは判断ブロックI
Aへ直接戻る。
第1B図について詳細に説明する前に、ブロックIDに
従って取出されるレコードまたはレコードのグループの
種類に対して多くの可能性があることを理解すべきであ
る0例えば、次のレコードは、かなり異なる長さの多数
のスライスの後に台形が続き、その後に別の多数のスラ
イス(即ち、滲み)または別の台形が続く滲みレコード
であり得る。
次に第1B図において、次の滲みまたは台形のレコード
を取出すためのサブルーチンにラベル200で入り、最
初に判断ブロック201に進んで次のレコード滲みレコ
ードであるかどうかを判定する。
もしそうであれば、サブルーチンはブロック202へ進
み、その時のレコードからデータの次のスライスを読出
して(これをバッファに格納し)、判断ブロック203
へ進んでレコードの終りに前記スライスが存在するかど
うかを判定する。もしその時のスライスがその時のレコ
ードの終りに存在しなければ、サブルーチンは判断ブロ
ック204へ進み、次のスライスの長さがその時のスラ
イスと大きく異なるかどうかを判定する。もしブロック
204の判定が否定ならば、サブルーチンはブロック2
02へ戻り、次のスライスを読出す。しかし、もし次の
スライスの長さがその時ののスライスの長さと大きく異
なるならば、サブルーチンはブロック215へ進み、そ
の時の滲みレコードにより表わされる形状の平均スライ
ス長さのその高さに対する比率を計算し、第1図のベク
トル化プログラムへ戻る。
ブロック215における比率は、その時の滲みが実質的
水平であるかどうかを示す。
もし判断ブロック203の判定が肯定ならば、サブルー
チンはブロック205に示されるようにその時の滲みレ
コードをマークしてこれが処理されたことを表示し、判
断ブロック209へ進む。ブロック209においては、
サブルーチンは、その時の滲みレコードが同じ単純な形
状を表わす別のレコードを指示するかどうかを判定する
。もしそうでなければ、サブルーチンはブロック215
へ進み、その時の形状の前に述べた平均スライス長さの
高さに対する比率を計算し、主ベクトル化プログラムへ
戻る。もしブロック209の判定が肯定ならば、サブル
ーチンはブロック210へ進み、次のレコードが滲みレ
コードであるかどうかを判定する。もしそうであれば、
サブルーチンはこれからデータの最初のスライスを読出
し、判断ブロック213へ進む。もし次の指示されたレ
コードが台形であれば、台形データの最初の部分がブロ
ック211に示されるようにこれから読出され、サブル
ーチンは次にブロック213へ進む。ブロック213に
おいては、レコード取出しサブルーチンが、スライス(
バッファにあるもの)の長さが次のスライスの長さと著
しく異なるかどうかを判定する。もしこの判定が肯定な
らば、サブルーチンはブロック215へ進み、その時の
形状の中対高さの比率を計算し、主ベクトル化プログラ
ムへ戻る。さもなければ、サブルーチンはブロック20
1へ戻る。
もしブロック201の判定が否定ならば、取出されたレ
コードは台形レコードである。サブルーチンはブロック
206へ進み、台形レコードからデータの最初の部分を
読出し、ブロック207へ進み、台形レコードの終りに
達したかどうかを判定する。もしそうであれば、ブロッ
ク205に示されるように台形レコードが処理されたこ
とを示すようマークされて、サブルーチンは前に述べた
ブロック209へ進む。
もし台形レコードから読出されたその時のデータがレコ
ードの終りになければ、サブルーチンは判断ブロック2
08へ進み、次のスライスの長さがその時のスライスと
大きく異なるかどうかを判定する。もしそうでなければ
、サブルーチンはブロック206へ戻り、台形レコード
からデータの次のグループを読出す、さもなければ、サ
ブルーチンはブロック215へ進み、その時の台形の高
さに対する巾の比率を計算し、主ベクトル化プログラム
へ戻る。
(各スライスの「長さ」が水平方向における長さである
ことに注意すべきである。用語1次のスライス」はまた
、もしその時の形状が滲みではなく台形の最上位に関す
るものであれば、次の台形の最上位の巾または水平の大
きさと対応する。)次に第1図に戻って、プログラムは
判断ブロック6へ進み、第1B図のブロック215にお
いて計算された巾対高さの比率についてのテストを行な
ってその時の滲みまたは台形が水平であるかどうかを判
定する。
判断ブロック6の判定が肯定ならば、プログラムはブロ
ック7へ進み、以下に述べる第1c図のサブルーチンに
従って、2つの終端点の座標およびベクトルの巾を含む
水平のベクトルを生成する。
次いでプログラムはブロック8へ進み、第3図に関して
詳細に述べる「エンティティの生成および非セグメント
化」サブルーチンを実行する。
第1B図のラベル200に関しては、サブルーチンが全
でが対象の1つの「分岐」を形成する一連の繋がったレ
コードを取出すことができることに注意すべきである。
もし第1図の判断ブロック6の判定が否定ならば、ベク
トル化プログラムはブロック9へ進み、その時の滲みレ
コードまたは台形レコードにおけるデータの1前後の縁
部」をベクトル化する0次い・で、プログラムは判断ブ
ロック10へ進み、その時の形状が「複雑」であるかど
うかを判定する0判断ブロック10がその時の形状が「
複雑」であるかどうかを判定する手法は、前縁部ベクト
ルか後縁部ベクトル(ブロック9において決定される)
のいずれかの異なる部分間の角度を測定することであり
、前縁部または後縁部の異なる部分が直線からあまりに
も離れているかどうかを判定する0例えば、2つの前縁
部のベクトル間の角度が90″よりも小さければ、形状
は複雑であると見做すことができ、ブロック10の判定
は肯定となる。もしその時の滲みまたは台形が複雑であ
るならば、プログラムはブロック11へ進み、複雑な形
状の次の簡単な部分を選択してブロック12へ進む。
例えば、抵抗に対する略図記号は複雑な形状である。も
しこの形状が複雑でないと判定されるならば、プログラ
ムは判断ブロック10がら直接ブロック12へ進む。ブ
ロック12においては、ベクトル化プログラムが第2図
の形状認識サブルーチンを呼出す。
ここで、ラベル12Aで入る第2図の形状認識サブルー
チンについて述べるのが好都合であろう。
要約すれば、このサブルーチンは、その時の滲みレコー
ドまたは台形レコードから得たその時の簡単な形状が弧
であるか、「交差滲み」であるが、充填された円である
か、垂直方向のベクトルか、対角方向のベクトルか、あ
るいは充填された多角形であるかの認識機能を行なう。
第1に、この形状認識サブルーチンはブロック36へ入
り、その時の滲みまたは台形(第1図のブロック9によ
り判定される)の前および後の縁部の各ベクトルのどれ
が最も長いかを判定する。この形状認識サブル−チンは
次にブロック37へ進み、最も長い前および後の縁部ベ
クトルと略々同じ長さを持つ前および後の縁部ベクトル
の数をそれぞれ判定する。
次いでプログラムは判断ブロック38へ進み、その時の
滲みまたは台形の前または後の縁部の双方が類似の長さ
の多数のベクトルを含むかどうかを判定する。もし判断
ブロック38の判定が肯定ならば、その時の形状に対し
て3つの異なる可能な形態が存在し、従って形状認識サ
ブルーチンは判断ブロック3つへ進む。上記の3つの可
能性の事例は第13図に示され、照合番号134,13
5および136により示される。形状135および13
6は「略々水平」と見做され、各々は最大長さに略々等
しい同じ長さの多数のベクトルを含む前縁部/後縁部を
有する。形状134は略々水平であると見做されない。
もしその時の形状が第13図の形状134と似ているな
らば、第2図のブロック39の判定は否定となる。形状
認識サブルーチンは次に、その時の形状が「弧のベクト
ル」であると認識して、ブロック40に示されるように
弧のコードを生成し、次いでラベル50を経て第1図に
戻る。弧のベクトルは弧を略々画成する繋がった線のベ
クトルのストリングを構成し、このようなベクトルは類
似の長さであり、似た角度に対する。もし判断ブロック
39の判定が肯定であるならば、即ち形状が略々水平で
あるならば、その時の形状は第13図の形状135また
は形状136と類似していなければならない。
次いでプログラムは判断ブロック41へ進み、その時の
形状の前縁部および後縁部の双方が凸であるかどうかを
判定する。もしそうであれば、形状は第13図の形状1
36のそれと類似しており、その時の簡単な形状は「充
填された円」であると見做される。次いで形状認識サブ
ルーチンはブロック43へ進み、「充填された円のコー
ド」を生成し、戻りラベル50を経て第1図へ戻る。も
しその時の形状が凸でなければ、それは凹でなければな
らず、その時の簡単な形状は、交差滲みである第13図
の形状135と類似していなければならない。
この時サブルーチンはブロック42において「交差滲み
コード」を生成し、ラベル50を経て第1図へ戻る。
もし判断ブロック38の判定が否定である、即ちその時
の簡単な形状の前および後の縁部における類似の長さの
多数のベクトルが存在しなければ、プログラムはブロッ
ク44へ進み、前縁部の最も長いベクトルと後縁部の最
も長いベクトルとの間の角度を計算する。次に、サブル
ーチンは判断ブロック45へ進み、前縁部の最も長いベ
クトルが後縁部の最も長いベクトルと平行であるかどう
かを判定する。もしこの判定が肯定ならば、その時の簡
単な形状は垂直方向のベクトルか対角方向のベクトルの
いずれかにより近似化することができる。認識サブルー
チンは判断ブロック47へ進み、その時の簡単な形状の
前および後の縁部の一方のX座標が等しいかどうかを判
定する。もしそうであれば、その時の形状は垂直方向の
ベクトルであり、サブルーチンはブロック48へ進み、
「垂直方向のベクトル・コード」を生成し、ラベル50
を経て第1図へ戻゛る0判断ブロック47の判定が否定
ならば、その時の形状は対角方向のベクトルであり、サ
ブルーチンはブロック49へ進み、「対角方向のベクト
ル・コード」を生成し、ラベル50を経て第1図へ戻る
もし判断ブロック45の判定が否定ならば、その時の簡
単な形状は「充填された多角形」であり、サブルーチン
はブロック46へ進み、「充填された多角形」コードを
生成し、ラベル50を経て第1図へ戻る。
第1図のベクトル化プログラムが第2図の形状認識サブ
ルーチンへ戻されると、このサブルーチンはその内部に
生成された「充填された形状」コード即ちベクトル・コ
ードを用いて適当なベクトル即ちコード生成サブルーチ
ン13.14,16゜17または18(以降において説
明する)に入る。
例えば、もしその時の簡単な形状が弧であれば、第2図
のブロック40において生成された弧のコードは、ベク
トル化プログラムをサブルーチン16へ入らせて弧のベ
クトルを生成し、これが弧を表わすようにする連続する
ベクトルを構成する。
第2図のブロック43に生成された充填された円のコー
ドは、第1図のベクトル化プログラムをしてサブルーチ
ン13を呼出させて、充填された円を表わすデータを生
成する。充填された円のデータは、中心点の半径および
半径と等しい巾の座標からなっている。ブロック48に
おける垂直方向のベクトル・コードは、ベクトル化プロ
グラムをして第1図のサブルーチン18へ入らせ、これ
が2つの終端点およびその線巾の座標からなる垂直方向
のベクトルを生成する。もしその時の簡単な形状が対角
方向のベクトルであるならば、第2図のブロック49に
生成された対角方向ベクトル・コードがベクトル化プロ
グラムをして第1図のサブルーチン17させて、2つの
終端点およびその線巾の座標からなる対角方向のベクト
ルを生成する。最後に、もし充填された多角形コードが
形状認識サブルーチンにより生成されるならば、ベクト
ル化すブルニチンはサブルーチン14を呼出して、充填
された多角形の頂点の座標からなる充填多角形データを
生成する。(ベクトル生成サブルーチンおよびブロック
13,14,18.17および18のサブルーチンを生
成する充填形状コードについては後に述べる。) 一旦充填された形状データまたは弧のベクトル、垂直方
向ベクトル、対角方向ベクトル、あるいは水平方向ベク
トル(第1図のブロック7)が生成されると、第3図の
エンティティ生成および非セグメント化サブルーチンが
呼出される。要約すれば、エンティティ生成および非セ
グメント化サブルーチンの目的は、(1)第1図のサブ
ルーチン16゜17および18により生成される「入力
ベクトル」の「ベクトル・テーブル」へのエントリを行
なうこと、およびサブルーチン13および14により生
成された「充填された形状データ」の「充填された形状
テーブル」へのエントリを行なうこと、および(2)こ
れらサブルーチンにより新しい「入力ベクトル」または
「充填された形状データ」の各々が生成される時、これ
をベクトル・テーブルまたは充填された形状テーブルの
内容と比較してその時の入力ベクトルまたは充填された
形状データがこのようなテーブルに既に格納されたいず
れかのベクトルあるいは充填された形状と便利に組合せ
ることができるかどうかを判定し、もしそうであれば、
この「格納されたベクトル」または「充填された形状」
をその時の入力ベクトルまたは形状を含むように更新す
ることによりこれらと組合せることである。最初の手順
は「エンティティ生成」と呼ばれ、入力ベクトルまたは
充填された形状を格納されたものを組合せる手順は「非
セグメント化」と呼ばれる。
次に第3図においては、エンティティ生成および非セグ
メント化サブルーチンにラベル19Aを経て入り、最初
に判断ブロック56へ進む0次いで、サブルーチンは、
第1図のサブルーチン13゜14または16〜18の1
つからその時の「入力」は充填された円、充填された多
角形を定義する「形状データ」であるかどうか、あるい
は弧のベクトル、対角方向のベクトル、垂直方向のベク
トル、あるいはまた水平方向のベクトルの類似の「ベク
トル」であるかどうかを判定する。もしその時の入力が
「形状データ」であれば、第3図のブロック56の判定
は否定となり、エンティティ生成および非セグメント化
サブルーチンは判断ブロック57へ進み、形状が充填さ
れた多角形であるかどうかを判定する。
もしブロック57の判定が肯定ならば、サブルーチンは
ブロック57Aへ進み、後で説明する第14図の充填多
角形非セグメント化サブルーチンを゛実行する。サブル
ーチンは次に判断ブロック57Bへ進み、充填多角形を
充填形状テーブルに既にあるものと非セグメント化即ち
組合せが生じたかどうかを判定する。もしこの判定が否
定ならば、ブロック57Cに示されるように、充填多角
形は充填形状テーブルに対する新しいエントリとして入
られねばならない。次いでサブルーチンは戻りラベル5
2を経て第1図へ戻る。ブロック57Bの判定が肯定な
らば、充填多角形は充填された形状テーブルに既に存在
する格納された充填多角形と組合されるかあるいは加算
される。次にサブルーチンはラベル62を経て第1図に
戻る。
ブロック57Bのテストは、組合せフラッグがセットさ
れるかどうかである。
ブロック57Cは、ブロック57の判定が否定ならば、
入力データが充填形状テーブルに入れられることを示す
次に、サブルーチンは第1図の主プログラムへ戻る。
もし判断ブロック56に対するその時の入力がベクトル
であれば、これはr入力ベクトル」と呼ばれる。この入
力ベクトルは入力バッファに格納される。この時、サブ
ルーチンはブロック58へ進み、前記入力ベクトルが弧
のベクトルであるかどうかを判定する。もし判断ブロッ
ク58の判定が肯定ならば、サブルーチンはブロック6
0へ進み、第5図の「弧の非セグメント化」サブルーチ
ンを実行する。反対に、もしこの判定が入力ベクトルが
弧のベクトルではないことであれば、サブルーチンはブ
ロック5つへ進み、第4図のr線の非セグメント化」サ
ブルーチンを実行する。
後で更に詳細に説明するように、第5図の弧の非セグメ
ント化サブルーチンおよび第4図の線の非セグメント化
サブルーチンの双方は、最初に「組合せ」フラッグをリ
セットし、次いでもし入力された線ベクトルまたは弧の
ベクトルがベクトル・テーブルに既に格納されたベクト
ルと組合せることができるならば、この組合せフラッグ
を「1」にセットする。もしこの組合せフラッグが第4
図の線の非セグメント化サブルーチンまたは第5図の弧
の非セグメント化サブルーチンのいずれかの終りに「セ
ット」されるならば、このことは、その時入力バッファ
に入った入力ベクトルがベクトル・テーブルに既に格納
されていたベクトルと組合せ可能であることを意味し、
新しい「エンティティ」としてのその時の入力ベクトル
のエントリは必要でない、しかし、もし組合せフラッグ
が依然として線の非セグメント化または弧の非セグメン
ト化サブルーチンの終りでリセットされるならば、これ
は、その時の入力ベクトルが既にベクトル・テーブルに
格納されたベクトルと組合せできないことを意味し、従
ってその時の入力ベクトルをベクトル・テーブルに入れ
ることにより新しい「エンティティ」が生成されること
が必要となる。
第4図の線の非セグメント化サブルーチンまたは第5図
の弧の非セグメント化サブルーチンのいずれかが実行さ
れた後、非セグメント化が可能であるならば組合せフラ
ッグは「1」にセットされ、あるいは非セグメント化が
不可能であるならばその「0」のリセット値に残された
ままである0次に、エンティティ生成および非セグメン
ト化サブルーチンは第3図の判断ブロック61へ進み、
組合せフラッグをテストして非セグメント化が生じたか
どうかを判定する。
もし非セグメント化が生じなかったならば、サブルーチ
ンはブロック63へ進み、その時の入力ベクトルを単に
新しいエンティティとしてベクトル・テーブルに入れる
。ブロック61の判定が肯定ならば、サブルーチンブロ
ック64へ進み、入力ベクトルを含むように格納された
ベクトルを拡張することにより、入力ベクトルを同じ交
差数を有する格納されたベクトルに「加え」る。いずれ
の場合も、この時エンティティ生成および非セグメント
化サブルーチンがラベル62を経て第1図の主ベクトル
化プログラムへ戻る。
次に第5図において、弧の非セグメント化サブルーチン
を実行する最初のステップは、ブロック60Bに示され
るように、組合せフラッグを「0」にリセットすること
である。次いで、その時の弧の入力ベクトルと同じ交差
数を持つ格納されたベクトルが存在するならば、弧の非
セグメント化サブルーチンがブロック91へ進み、互い
に最も近い前記弧の入力ベクトルと格納されたベクトル
の2つの終端点を見出す、弧の非セグメント化プログラ
ムは次に判断ブロック92へ進み、入力ベクトルを前記
ベクトルと組合せることができる程これらの2つの最も
近い終端点が充分に近いかどうかを判定する。例えば、
もし第8図の弧のベクトル177が入力されたベクトル
であり、かつ格納されたベクトルが154であるならば
、判断ブロック92は、終端点175および176が充
分に近いこと、即ち約50ピクセル即ち約2.54mm
(100ミル)より近いかどうかを判定する。もしそう
であれば、弧の入力ベクトル177を格納されたベクト
ル154と組合せることが可能である。もしこの判定が
否定ならば、サブルーチンはラベル101を経て第3図
へ戻る。
もし判断ブロック92の判定が肯定ならば、弧の非セグ
メント化サブルーチンはブロック93へ進み入力された
弧のベクトルの長さとテーブルに格納されたベクトルの
長さとの比率を計算する。
もし入力ベクトルが格納されたベクトルよりも長過ぎる
かあるいは短か過ぎるならば、これら2つのベクトルは
1つの弧のベクトルを形成するため組合せることはでき
ない。更に、もし入力ベクトルと格納ベクトルとの間の
角度があまりにも鋭であるならば、この2つは1つの弧
のベクトルを形成するように組合せることができない0
例えば、第9図において、入力ベクトル151^は格納
ベクトル151Bよりも充分に短いため、これら2つは
1つの弧のベクトルの一部を形成するように組合せては
ならない、弧のベクトル151Cと線のベクトル151
Bとの間の角度は、これら2つを1つの弧のベクトルに
組合せるには鋭過ぎる。
次に、サブルーチンは判断ブロック94へ進み、計算さ
れた長さが入力ベクトルの格納ベクトルとの組合せを許
すに充分なだけ類似しているかどうかを判定する。もし
この判定が否定ならば、弧の非セグメント化サブルーチ
ンは終り、この判定が肯定ならば、ブロック95へ進む
弧の入力ベクトルおよび格納ベクトルの交差角度の第5
図のブロック95における計算の事例が第12図におい
て示されており、同図においては、照合番号137はそ
の時の入力された弧のベクトルを示し、138は格納さ
れたベクトルを示し、照合番号139は計算された角度
を示している。
次に、弧の非セグメント化サブルーチンは判断ブロック
96へ進み、前記角度がrあまり鋭過ぎる」角度である
か、即ち直線からあまり離れ過ぎるかどうかを判定する
。この時、もしこの角度が約90°より小さければ、入
力ベクトルは格納ベクトルと組合せることができず、弧
の非セグメント化サブルーチンはラベル101を経て終
る。
もしこの角度が鋭過ぎなければ、プログラムはブロック
97へ進み、組合されたベクトルが凸であるかどうかを
判定する。これは、第11図に示されたテストを行なう
ことにより行なわれ、同図においては入力された弧のベ
クトルはベクトル140.141,142および143
からなっている。ベクトル144または145は格納さ
れたベクトルでよい。凸であることの判定は、実際には
、提供される弧のベクトルの代替的な交差点間に線を引
くことにより行なわれ、もし各対の隣るベクトル間の交
差点が線の同じ側に止まるならば、提供された組合せベ
クトルは凸であるが、さもなければ凸でない0例えば、
格納されたベクトルが第11図の線145を表わすなら
ば、交差点146,147,148および149が全て
それぞれ点線150,151,152および153の左
方にあるため形状は凸である。しかし、もし格納ベクト
ルが第11図の線144により表わされるならば、交差
点149が点線154^の左方にないため凸ではない。
凸であることが第5図のブロック97において判定され
た後、弧の非セグメント化サブルーチンは判断ブロック
98へ進み、この時の入力ベクトルおよび格納ベクトル
が1つの凸の形状を形成するかどうかを判定する。もし
この判定が否定ならば、サブルーチンからラベル101
を通って出る。・もしブロック98の判定が肯定ならば
、弧の非セグメント化サブルーチンはブロック98Bへ
進み、凸の形状の1円度」を計算し、判断ブロック98
Aへ進み“、入力ベクトルおよび格納ベクトルが円弧を
形成するかどうかを判定する。もしこの判定が否定なら
ば、サブルーチンラベル101を経て戻る。
もしこの判定が肯定ならばサブルーチンはブロック10
0へ進み、組合せフラッグを「1」にセットすることに
よりこの時の入力ベクトルが格納ベクトルと組合せ可能
であることを示す0次いで、弧の非セグメント化プログ
ラムはラベル100を経て第3図のエンティティ生成お
よび非セグメント化サブルーチンへ戻る。
第4図の線の非セグメント化サブルーチンにはラベル5
9Aを介して入る。最初のステップは、ブロック59B
に示されるように組合せフラッグをリセットすることで
ある。次いで、線の非セグメント化サブルーチンは判断
ブロック66へ進み、この時の入力された線のベクトル
が開放点において始まり、収束または発散点で終るかど
うかを判定する。例えば、もしこの時の入力ベクトルが
第6図の台形112を表わすならば、これは開放点13
0で始まり収束点で終り、その結果判定は肯定となる。
もしそうであれば、線の非セグメント化サブルーチンは
第3図のブロック63へ戻り、ベクトル・テーブルにお
ける新しいエンティティとして台形122を表わすベク
トルを入れる。
もし判断ブロック66の判定が否定ならば、線の非セグ
メント化サブルーチンは判断ブロック68へ進み、その
時の入力ベクトルが交差領域にあるかどうかを判定する
。「交差領域」は、収束から発散へ下方に進む形状であ
ると定義される。この定義を、第10図に示されるもの
の同様に円の迅速な効−率的な非セグメント化を行なう
ために提供することが好都合であると判った0例えば、
第10図に示される円を非セグメント化する際、最初の
入力ベクトルは点線156により形状155および15
9から分離される形状154を表わすものとなろう。
判断ブロック66からの「肯定」の判定は、この事例に
おいて得られよう、この時、線の非セグメント化サブル
ーチンが形状154を表わすベクトルと対応するベクト
ル・テーブルにおける新しいエンティティを生成する。
第10図において走査される次の形状は形状155であ
ろう。交差領域が収束から発散に対し下方に進むという
判定は、形状155が発散から収束へ下方に進む故に、
形状155が交差点にはないことを明瞭にする。
第4図の判断ブロック68の判定が肯定ならば、線の非
セグメント化サブルーチンはブロック69へ進み、入力
ベクトルの長さを計算し、次いで判断ブロック70へ進
み、この長さが1つのベクトルであるためには短か過ぎ
る(例えば、50ビクセル、即ち約2.54+m(10
0ミル)より短い)かどうかを判定する。もしこの判定
が否定ならば、サブルーチンはベクトル・テーブルにお
ける新しいエンティティとしてその時の入力ベクトルを
入れる(第3図のブロック63参照)。さもなければ、
プログラムは単に判断ブロック70から第3図へ戻る。
第4図のブロック68の判定が否定ならば、サブルーチ
ンは判断ブロック71へ進み、その時の入力ベクトルが
収束で始まり開放点で終るかどうかを判定する。例えば
、第10図に示される形状157は収束で始まり開放点
で終り、従って肯定の判定をもたらす結果となろう。
判断ブロック71の判定が肯定ならば、線の非セグメン
ト化サブルーチンはブロック72へ進み、入力ベクトル
の長さを計算する。もしこの長さが短か過ぎる(即ち、
2.54mm(100ミル)より小)ならば、サブルー
チンは戻りリストラベルを経て終る。判断ブロック71
または73の判定が否定ならば、サブルーチンは判断ブ
ロック74へ進む。
判断ブロック74においては、線の非セグメント化サブ
ルーチンは、ベクトル・テーブルにおけるベクトルがそ
の時の入力ベクトルと同じ交差数を持つかどうかを判定
する。もしこの判定が否定ならば、この入力ベクトルを
格納ベクトルと組合せることが不可能であり、このため
サブルーチンは第3図のブロック63へ進み、その時の
入力ベクトルを新しいエンティティとしてベクトル・テ
ーブルに入れ、戻りラベルを経て第3図へ戻る。
さもなければ、サブルーチンは判断ブロック74から判
断ブロック75へ進み、その時の交差数を持つ格納され
たベクトルが弧のベクトルでるかどうか判定する。もし
この判定が肯定ならば、サブルーチンはブロック76へ
進み、第5図の弧の非セグメント化サブルーチンを実行
する。
もし格納されたベクトルが弧のベクトルでなければ、こ
れは線のベクトルであり、線の非セグメント化サブルー
チンがブロック78へ進み、格納ベクトルおよび入力ベ
クトルの2つの最も近い終端点を見出す0例えば、第7
図において、もし線161が入力ベクトルを示し線16
2が格納ベクトルを示すならば、点163および164
は入力ベクトルおよび格納ベクトルの2つの最も近い終
端点となる。
同様に、167および168は入力ベクトル165およ
び格納ベクトル166の2つの最も近い終端点である。
次に、サブルーチンはブロック79へ進み、上記の最も
近い終端点間のオフセット、および入力ベクトルと格納
ベクトルの外端点間に引かれた点線169(第7図)の
如き直線を計算する。入力ベクトル161および格納ベ
クトル162については、これらが直線に沿って位置す
ることが明瞭であり、従って2つの最も近い終端点16
3および164のオフセットがない。しかし、入力ベク
トル165および格納ベクトル166は完全には整合さ
れず、最も近い終端点167.168と直線169間の
距離170は計算されたオフセット量である。
次いで、線の非セグメント化サブルーチンは判断ブロッ
ク80へ進み、第7図における計算されたオフセット量
を閾値と比較して、入力ベクトルが格納ベクトルと組合
せることができるかどうかを判定する。もしこの判定が
否定ならば、入力ベクトルはブロック67に新しいエン
ティティとして入れられる。もし判断ブロック80の判
定が肯定ならば、サブルーチンはブロック82へ進み、
組合せフラッグを「1」にセットすることにより、その
時の入力ベクトルが格納ベクトルと組合せることができ
ることを示し、次いで戻りラベルを経て第3図へ戻る。
第1図の主ベクトル化プログラムが種々のレコードにお
けるデータからのベクトル・テーブルおよび(または)
充填された形状を充填した後、肯定の判定が判断ブロッ
クIAにより生じ、プログラムは第1A図のブロック2
OAに示されるように第15図の終端点拡張サブルーチ
ンを実行する。
この終端点拡張サブルーチンの目的は、ベクトル・テー
ブルにおける他のベクトルの終端点または他の部分と繋
がれるべきベクトル・テーブルのベクトルの終端点を拡
張することである。上記のベクトル化プロセスが線のベ
クトルまたは弧のベクトルにより表わされる種々の繋が
った形状の厚さの故のこのような間隙をもならす結果と
なることを理解すべきである。即ち、1つの形状を表わ
す線のベクトルは、しばしば第2の線のベクトルにより
表わされる他の形状の厚さの略々半分だけ拡張されねば
ならず、その結果箱1の線のベクトル終端点は第2の線
のベクトルの終端点と触れることになる。
次に第15図においては、前記の終端点拡張サブルーチ
ンにはラベル330を経て入り、判断ブロック331へ
進む。ブロック331においては、サブルーチンは、上
記のタイプの間隙を充填するため拡張される必要がある
終端点を持つベクトル・テーブルの他のベクトルが存在
するかどうかを判定する。
もしそうでなければ、サブルーチンは第1A図へ戻る。
もしブロック331の判定が肯定ならば、サブルーチン
はブロック332へ進み、初期値を「線の」フラッグに
セットし、次いで判断ブロック333へ進む。ブロック
333においては、サブルーチンはバッファに対して取
出された「その時のエンティティ」と呼ばれる次のベク
トルが2つ以上のベクトルを含むかどうかを判定する。
即ち、ブロック333は、その時のベクトルが弧のベク
トルであるかどうかを判定する。もしそうであれば、サ
ブルーチンはブロック334における線のフラッグをク
リアし、判断ブロック335へ進む。もしその時のエン
ティティが線のベクトルであれば、サブルーチンはブロ
ック335へ直接進む。
ブロック335においては、サブルーチンは、そ゛の時
のエンティティ即ちその時人カバツファにある線のベク
トルまたは弧のベクトルと同じ交差数を持つ格納ベクト
ルがこれ以上ベクトル・テーブルに存在するかどうかを
判定する。もしそうでなければ、サブルーチンは、ブロ
ック331へ戻る。もしブロック335の判定が肯定な
らば、サブルーチンは判断ブロック336へ進み、その
時の交差数を持つ格納されたベクトルが弧のベクトルで
あるかどうかを判定する。もしそうでなければ、サブル
ーチン判断ブロッ7338へ進む。もし格納されたベク
トルが弧のベクトルならば、サブルーチンはブロック3
37の線のフラッグをクリアし、ブロック338へ進む
ブロック338においては、サブルーチンが線のフラッ
グをテストする。もし線のフラッグがセットされなけれ
ば、このことは、同じ交差数を持つ入力ベクトルおよび
格納ベクトルの一方が弧のベクトルであることを意味す
る。プログラムはブロック341へ進み、それらの終端
点が約50とクセルよりも近いかどうかを判定する。こ
の判定が否定ならば、サブルーチンはブロック335へ
戻る。もし入力ベクトルおよび格納ベクトルの終端点が
約50ビクセルよりも近ければ、サブルーチンはブロッ
ク342へ進み、2つのベクトルの張出した交差点を計
算し、ベクトル・テーブルを更新してベクトルの最も近
い終端点が交差するようにこれらベクトルを拡張する。
サブルーチンは次にブロック331へ戻る。
ブロック338の判定が肯定ならば、このことは、対象
となる2つのベクトル双方が線のベクトルであることを
意味し、サブルーチンはブロック339へ進み、入力ベ
クトルおよび格納ベクトルの終端点の内の2つが約50
ピクセルより近くにあるかどうか判定する。もしそうで
あれば、サブルーチンはブロック342へ進み、この2
つのベクトルが交差するように終端点を拡張する。もし
この2つの終端点が充分に近くなければ、サブルーチン
はブロック340へ進み、この2つの線のベクトルの一
方の終端点が他の線のベクトルの他の部分に対して約5
−0ビクセルより近いかどうかを判定する。
もしそうでなければ、サブルーチンはブロック335へ
戻る。もしブロック340の判定が肯定ならば、サブル
ーチンはブロック342へ進み、交差点を計算し、第2
のベクトルの中間部分と触れるように第1のベクトルを
拡張する。
判断ブロック331から否定の判定が生じる時は、サブ
ルーチンは第1A図のブロック21へ戻り、更に多くの
ベクトル化されたエンティティがベクトル化プログラム
により出力されるべきかどうかを判定する。もしそうで
なければ、ベクトル化プログラムはラベル22を経て呼
出し側のプログラムへ戻る。さもなければ、プログラム
は判断ブロック23へ進み、その時出力されるエンティ
ティが2つ以上のベクトルを含むかどうかを判定する。
もしこの判定が否定ならば、その時のエンティテ  −
イは弧でも円でもなく、プログラムはブロック24へ進
み、前にベクトル化されたその時のエンティティを出力
してブロック21へ戻る。もしブロック23の判定が肯
定ならば、プログラムはブロック25へ進み、その時の
エンティティが弧であるかどうかを判定する。もしそう
であれば、このエンティティはブロック26に示される
ように弧として出力され、プログラムはブロック21へ
戻る。もしブロック25の判定が否定ならば、その時の
エンティティは円であり、ブロック27に示されるよう
に円として出力される。
次に、第1図のブロック13.14および16〜18の
データおよびベクトル生成サブルーチンについて簡単に
述べるのが好都合であろう。第1図のブロック7により
呼出される最初に第1C図においては、水平ベクトルを
生成する。基本的には、このサブルーチンが行なうこと
は、水平方向のベクトルの最上位および最下位のスライ
スのY座標を決定しくブロック221)、平均Y座標を
計算しくブロック223)、最上位のY座標から最下位
のY座標を減算することにより水平方向ベクトルの厚み
を計算しくブロック224)、水平方向ベクトルに対す
る最小の左縁部のX座標および最大の右縁部のX座標を
得る(ブロック225)ことである。これによりこれら
の座標は、水平方向ベクトルの左端部の座標および右端
部の座標を提供し、入力バッファに対してロードされ、
ブロック226において示される。
次に第1D図においては、このサブルーチンは第1図の
ブロック18によって呼出される。この場合、水平方向
でないベクトルについては、サブルーチンが第1図のバ
ッファ9においてベクトル化されるべき形状の前(左)
方および後(右)方の縁部をベクトル化する。基本的に
は、このサブルーチンは単に垂直方向の形状の上縁部の
中間点(ブロック231)、垂直方向の形状の下縁部の
中間点(ブロック233) 、垂直方向の形状の巾(ブ
ロック225)を計算して、垂直方向の形状の上下の中
間点および巾の座標を入力バッファに入れる(ブロック
236)。
第1E図は第1図のブロック17により呼出される対角
方向のベクトルを生成するステップを示している。この
サブルーチンの動作は第16図を参照すれば最もよく理
解することができ、同図においては、対角方向の形状4
01が、第1図のブロック9においてベクトル化された
最も長い前縁部402と比較的短い前縁部405とを有
し、これまた第1図のブロック9においてベクトル化さ
れた最も長い復縁部403と比較的短い後縁部404と
を有する。
第1E図の対角方向ベクトル生成サブルーチンは、点4
11^および414を通る直線における終端点406゜
409の直角方向の張出しを計算する。即ち、このサブ
ルーチンは、張出し点407および410を計算し、次
いで点406と407間の中間点408を計算し、点4
09と410間の中間点411を計算する。上下の端部
における形状の厚みもまた計算される。これらのステッ
プは、第1E図のブロック241および243において
行なわれる0次に、類似の手順は、最も長い後縁部ベク
トル403の終端点を点406および409を通る直線
に伸ばすと同時に行なわれる。即ち、点411^は点4
12まで張出され、その中間点413が計算される。同
様に、点414は点415まで張出され、対応する中間
点416が計算される。対応する形状の厚みもまた計算
される。これらのステップは、第1E図のブロック24
5および247において行なわれる。次いで、4つの中
間点の最も長いベクトル、即ち中間点408と411間
のベクトルが決定される。このステップは、ブロック、
249において行なわれる。対角方向の形状の平均厚み
はブロック250において計算される。次いで、第1E
図のブロック251に示されるように、対角方向のベク
トルの座標を入力バッファに入れる。即ち、点411お
よび408の座標および平均の計算された厚みが入力バ
ッファに対して入れられる。
次に、第1図のブロック16により呼出される第1F図
においては、第1図のブロック9が複合弧ベクトルの前
後の縁部をベクトル化する。第1F図のブロック261
は、弧のベクトルの上下端部のY座標値を読出し、第1
F図のブロック261および263に示されるように、
弧のベクトルの各スライスの中間点を計算する0次いで
、サブルーチンは、第1図のブロック9が前後の縁部を
ベクトル化する方法と全く同じ方法で中心点をベクトル
化し、ブロック265および266に示されるように線
の巾を計算する。計算された形状の巾を含むその結果の
弧のベクトルの座標が、ブロック267に示されるよう
に入力バッファに格納される。
充填される多角形を表わすデータを生成するため第1図
のブロック14により呼出される第1G図においては、
サブルーチンがブロック271に入り、第1図のブロッ
ク9において前にベクトル化された前後の縁部の全ての
頂点の座標を読出し、これらの頂点の座標を用いて[充
填された多角形レコード」を形成する。サブルーチンは
次に判断ブロック272へ進み、このような頂点の数が
7より大きいかどうかを判定する。もしそうでなければ
、サブルーチンは、ブロック276へ進み、頂点の座標
を入力バッファへ入れ、第1図へ戻る。もし充填された
多角形レコードの頂点の数が7より大きければ、サブル
ーチンは第14A図の縮減サブルーチンを呼出して、可
能ならばこの頂点の内にあるものを削除する。基本的に
は、第14A図は、どれかの頂点の対が充分に近くこの
対の一方の頂点が削除できるかどうかを判定する。
第14A図においては、ブロック311に示されるよう
に、2つの連続する頂点が充填された多角形レコードが
得られる。サブルーチンはブロック312へ進み、これ
が充填された多角形レコードの終りであるかどうかを判
定し、もしそうでなければ、ブロック313へ進み、こ
の2つの頂点が充分に相互に接近してそれらの1つを削
除することができるかどうかを判定する。もしこの決定
が否定ならば、サブルーチンはブロック311へ戻る。
もし問題となる2つの頂点が充分に近ければ、それらの
一方がブロック314に示されるように充填された多角
形レコードから削除される。次いでサブルーチンはブロ
ック311へ戻る。もしブロック312の決定が肯定な
らば、サブルーチンはブロック315へ進み、7つ以上
の頂点が充填された多角形レコードに残っているかどう
かを判定する。もしこの決定が否定ならば、サブルーチ
ンは第1G図へ戻る。さもなければ、サブルーチンは第
14B図の「削除Jサブルーチンを呼出し、これを実行
して、第1G[]へ戻る。
基本的には、第14B図のサブルーチンが行なうことは
、充填多角形レコードの3つの連続する頂点が充分に直
線状の線を画成して中間の頂点を充填多角形レコードか
ら削除することを許ずかどうかを判定することである。
これを達成するために、削除サブルーチンが、ブロック
322に示されるように充填多角形レコードから3つの
連続する頂点を読出して、ブロック323へ進む、充填
多角形レコードの終りに達すると、サブルーチンは第1
G図へ戻り、さもなければ、ブロック324へ進んで、
中間の頂点が他の2つの頂点を通る直線に充分に近いか
どうかを判定する。もしこの決定が否定ならば、サブル
ーチンはブロック322へ戻ってこの手順を反復する。
もしブロック324の決定が肯定ならば、中間の頂点は
充填多角形レコードから削除される。
第1G図に戻って、サブルーチンはブロック273から
判断ブロック274へ進み、頂点の数が7以下に縮減さ
れたかどうかを判定する。もしこの決定が肯定ならば、
サブルーチンはブロック276へ進み、これら頂点の座
標を入力バッファに入れて戻る。もしブロック274の
決定が否定ならば、サブルーチンはブロック275へ進
み、充填多角形のベクトル化された前後の縁部から7つ
の頂点を選択し、これらを入力バッファに入れる。もし
充分な空領域が出力レコードにおいて得られるならば、
充填多角形の頂点の数を最大数7へ制限することは不必
要であることが判るであろう。
第1H図は、充填された円のデータを生成するため第1
図のブロック13により呼出され、ブロック281に示
されるように、充填された円形状の前にベクトル化され
た前後の縁部から3つの点の座標を単に読出す。次いで
、サブルーチンは、ブロック282および283に示さ
れるように、この3つの点の座標に基いて中心点および
半径を計算し、これらを入力バッファに対して入れる。
次に、第3図のブロック57Aから呼出される第14図
のサブルーチンについて述べる。このサブルーチンは、
その時の充填多角形が充填形状テーブルに格納されたも
のに組合せることができるかどうかを判定する機能を行
なう、このサブルーチンは最初に判断ブロック291へ
進み、入力データにより表わされるその時の充填多角形
が上記の充填形状テーブルに既に格納された充填多角形
に充分に近いかどうかを判定する。もしこの決定が否定
ならば、サブルーチンはブロック301へ進み、「組合
せなし」のフラッグをセットして第3図へ戻る。ブロッ
ク291の決定が肯定ならば、サブルーチンはブロック
292の上部の充填多角形の最も下方の点を決定し、ブ
ロック293へ進み、上部多角形の最下点に水平の縁部
が存在するかどうかを判定する。もしこの決定が否定な
らば、組合せなしのフラッグがブロック301にセット
される。ブロック293の決定が肯定ならば、サブルー
チンはブロック294へ進み、下方の充填多角形の最上
点を見出し、判断ブロック295へ進み、この点に水平
の縁部があるかどうかを判定する。もしそうでなければ
、サブルーチンはブロック301へ進む。ブロック29
5の決定が肯定ならば、サブルーチンはブロック296
へ進み、対象となる両方の充填多角形の全ての頂点を含
む「組合される充填多角形レコード」を生成する。次い
で、サブルーチンはブロック297へ進み、直線が形成
されるならば、組合せ接合点に沿って  ・位置する点
を削除する。このサブルーチンは次にブロック298へ
進み、後で述べる第14A図の縮減サブルーチンを呼出
してできるだけ多くの頂点を削除し、ブロック299へ
進み、組合される多角形の頂点数が最大数、例えば7を
越えるかどうかを判定する。もし組合される充填多角形
レコードにおいて7つ以上の頂点が存在するならば、サ
ブルーチンはブロック301へ進み、組合せなしのフラ
ッグをセットして戻る。しかし、組合される充填多角形
レコードにおける頂点数が7以下であれば、ブロック3
00において組合される充填多角形データが組合される
充填多角形レコードから入力バッファへ送られ、サブル
ーチンは第3図に戻る。
次に、第1図のプログラムが以下にして第6図および第
10図に示される形状をベクトル化するかと更に示すい
くつかの事例を挙げる。第6図に示される形状は下記の
如くベクトル化される。第1に、ベクトル化プログラム
は、第1図の判断ブ′ロックIDを通り、第1B図のサ
ブルーチンを実行することにより、台形112の上縁部
130が最も上位の点であるためこの台形の台形レコー
ドを取出し、その高さ対中の比率を計算する。上記の交
差カウンタが最初に1にセットされ、台形112が前に
処理されなかったため1に止まる0次にプログラムは判
断ブロック6に進み、台形112が水平でないことを判
定し、ブロック9において、その前後の縁部をベクトル
化する。ブロック10においては、台形112が複雑な
形状ではないことが判定される0次いでプログラムは第
2図の形状認識サブルーチンへ進み、前縁部の最も長い
ベクトルが前縁部であり、後縁部の最も長いベクトルが
後縁部であることを判定する。
第2図のブロック37においては、形状認識サブルーチ
ンが前縁部または後縁部のいずれかの、最も長いベクト
ルと似た長さの別のベクトルが存在しないことを判定し
、従って判断ブロック38において否定の判定を行なっ
てブロック44へ進み、ここで形状認識サブルーチンが
台形112の前後の縁部間の角度を計算し、次いで判断
ブロック112において台形112の前記の縁部が平行
であることを判定する0次いで形状認識サブルーチンは
判断ブロック47へ進み、前後の縁部が垂直方向でない
ことを判定し、次いでサブルーチン49において台形1
12が対角方向のベクトルにより表わされるべきことを
示すコードを生成する。
プログラムは第1図に戻り、前記対角方向ベクトル・コ
ードを用いて第1E図のサブルーチンを呼出し、台形1
12を表わす対角方向ベクトルを生じる0次に、プログ
ラムは第3図のエンティティ生成および非セグメント化
サブルーチンへ進み、生成された入力データが充填され
る形状を表わすデータではなくベクトルであることを判
定する。
従って、第3図のブロック56の判定が肯定ならば、サ
ブルーチンはブロック58へ進んで台形112が弧のベ
クトルにより表わされないことを判定し、従って第4図
の線の非セグメント化サブルーチンへ進む。
次に、第4図の線の非セグメント化サブルーチンはブロ
ック59Bにおいて組合せフラッグを「0」にリセット
し、判断ブロック66において否定の判定を行なうが、
これは第6図の台形112が発散ではなく収束点で終る
ためである0台形112を表わすその時の入力ベクトル
は交差点125(第6図)には含まれず、従って第4図
のブロック68の判定は否定となる。線の非セグメント
化サブルーチンもまた判断ブロック71において否定の
判定を行ない、また判断ブロック74においても否定の
判定を行なうが、これはその時の対象に対してベクトル
・テーブルにおける前のエントリがないためである。サ
ブルーチンは次にブロック67へ進み、台形112に対
する入力ベクトルをベクトル・テーブルへ入れる。
次に、プログラムは第1図のブロックICへ進み、滲み
111Bに対する滲みレコードを取出し、第6図の交差
点125に繋がる全ての形状がベクトル化されなかった
ため、交差点カウンタを増分する必要がないことを判定
する。この時、プログラムはブロック6において滲み1
11Bが水平方向でないことを判定し、ブロック9にお
いて滲み111Bに対するデータの前後の縁部をベクト
ル化し、ブロック12において第2図の形状認識サブル
ーチンを呼出す。
第2図のブロック36においては、形状認識サブルーチ
ンは、滲み111Bの前縁部が最も長いものであること
を判定し、ブロック37.38においては、前後いずれ
の縁部も同じ長さの多重ベクトルを持たないことを判定
してブロック44へ進む。
ブロック44においては、形状認識サブルーチンは前後
の縁部の最も長いベクトル間の角度を計算し、ブロック
45においてこれらが平行でないことを判定し、ブロッ
ク46において滲み111Bが充填された多角形により
表わされるべきことを示す充填多角形コードを生成する
次にサブルーチンは第1図へ戻り、ブロック14におい
て滲み111Bを表わす充填多角形データを生成し、第
3図のブロック56へ進み、入力デ−タがベクトルを表
わさないことを判定し、次いでブロック57において滲
み111Bに対する充填多角形データを充填形状テーブ
ルに対して入れる。
次に、第1図の判断ブロック20において滲み111B
がこれ以上データを持たないことを判定した後、ベクト
ル化プログラムはブロック3において台形111^の台
形レコードを取出し、ブロック6において台形111^
が水平な形状ではないことを判定し、ブロック9におい
て前後の縁部をベクトル化する。第2図の形状認識サブ
ルーチンにおいては、ブロック38および45の判定に
より、台形111の前後の縁部が平行であることが判定
される。台形112については、ブロック47および4
9が対角方向ベクトル・コードを台形111^に対して
生成させ、対応する対角方向ベクトルが第1図のサブル
ーチン17によって生成される。
第3図のブロック56は、生成された対角方向入力ベク
トルであることを判定し、ブロック58はこのベクトル
が弧のベクトルではないことを判定する。サブルーチン
は次に第4図の線の非セグメント化サブルーチンへ進む
判断ブロック66.68および71においては否定の判
定が行なわれる0判断ブロック74は、この時ベクトル
・テーブルには台形111Aを表わすその時の入力ベク
トルと同じ交差を有する格納されたベクトル、即ち台形
112を表わすベクトルが存在することを判定する9判
断ブロック75は、台形112を表わす格納されたベク
トルが弧のベクトルではないことを判定する。ブロック
78および7つにおいては、台形111^および112
の2つの最も近い終端点間のオフセットが計算される。
ブロック80は、ベクトル111^および112を組合
せるには大き過ぎることを判定する。次いで線の非セグ
メント化サブルーチンは第3図へ戻り、ブロック61に
おいて組合せフラッグが依然として「0」にあることを
判定し、台形111^を表わすその時の入力ベクトルを
ベクトル・テーブルに入れる。
次に、ベクトル化プログラムは交差点の滲み125と対
応する滲みレコードを取出し、ブロック6においてこれ
が水平な形状ではないことを判定し、ブロック9におい
て前後の縁部をベクトル化し、ブロック10においてこ
の形状が複雑でないことを判定する。第2図の形状認識
サブルーチンは、交差点の滲み125の前後の縁部の最
も長いベクトルを判定し、前後の縁部の各々に2つの類
似する長さのベクトルが存在することを判定する(ブロ
ック37および38)。従って、第2図のブロック38
の判定は肯定となる0判断ブロック39は、交差点の滲
み125が垂直ではなくより水平に近いことを判定し、
従って判断ブロック41へ進み、交差点の滲み125が
凸ではないことを判定し、次いでブロック42において
交差点滲み125が交差点の滲みであることを示すコー
ドを生成する。
次に、プログラムは台形114に対する台形レコードを
取出し、ブロック6において台形114が水平ではない
ことを判定する。プログラムは形状認識サブルーチンへ
進み、判断ブロック38、ブロック44、判断ブロック
45および47および49を経て対角方向ベクトル・コ
ードを生成する。
次に、プログラムはこのコードを用いて、第1図のサブ
ルーチン17をして台形114を表わす対角方向のベク
トル・コードを生成させる。次にプログラムは第3図の
エンティティ生成および非セグメント化サブルーチンへ
進み、ブロック56および58を通って弧のベクトルで
なく第4図の線の非セグメント化サブルーチンへ進む結
果の入力ベクトルが判断ブロック66.68および71
における否定の判定を生じることを判定し、また判断ブ
ロック74において台形114を表わすその時の入力ベ
クトルがベクトル・テーブルにおける格納されたベクト
ル111^および112と同じ交差数を持つことを判定
する。次に、第4図の線の非セグメント化サブルーチン
が判断ブロック、ブロック78および79および判断ブ
ロック80を通って、台形114を表わすその時の入力
ベクトルが台形112を表わす格納されたベクトルと組
合せることができることを判定する0次いで、サブルー
チンはブロック82へ進み、組合せフラッグを「1」に
セットし、次に第3図の判断ブロック61へ戻って組合
せフラッグをテストし、入力ベクトル114の下方の終
端点を含むようにベクトル112を拡張することにより
、入力されたベクトル114が格納されたベクトル11
2と組合されるべきことを判定する。
次にプログラムは第1図へ進み、未だ増分されていなか
った交差カウンタと同じ交差数を持つ台形115の台形
レコードを取出す。前に述べたように5ベクトル化サブ
ルーチンは、増分して次の交差点と繋がった形状をベク
トル化する前に、交差カウンタのその時のカウントによ
り表わされる交差点と繋がる全ての形状をベクトル化す
る。
ベクトル化プログラムは、台形114と同じ方法で台形
115をベクトル化し、その結果の入力ベクトルが格納
されたベクトル111^と組合すことができることを判
定し、台形111^の格納されたベクトルを入力ベクト
ル115の下方の終端点を含むように拡張する。
次に、プログラムは第1図の判断ブロックICにおいて
肯定の判定を生じ、交差カウンタを0から1へ増分し、
次いで第6図の滲み113Bの滲みレコードを取出す。
この滲みは、前の滲み111Bと同じ方法で「ベクトル
化」され、充填形状テーブルへ入れられる。台形113
^が取出されて、前にベクトル化された台形111^と
同じ方法でベクトル化される。
交差滲みコードが交差滲み126に対して生成される0
台形117がベクトル化され、前に述べた方法で格納さ
れたベクトル114と組合される。
台形118は、交差滲み126の発散点で始まる点での
み前記のものと異なる。第4図においては、否定の判定
が判断ブロック71において得られ、その結果前に述べ
たように適当にベクトル・テーブルを更新することによ
り、入力ベクトル118がこの時台形113^を表わす
格納されたベクトルと組合されることになる。
対象110の残りは、略々同じ方法でベクトル化される
。最後の台形122がベクトル化されて組合せ即ち非セ
グメント化されると、第1図の判断ブロックIC1従っ
てブロックIAの判定は肯定となる。
第6図におけるベクトル化手順の第1の相は完了した0
次いでベクトル化プログラムは第1A図のブロック20
Aへ進む。第6図の形状は非セグメント化が生じた懸様
のため終端点の拡張を要求しない。第15図のブロック
331において、次いで第1A図のブロック21におい
て肯定の判定が得られる。次に、プログラムは判断ブロ
ック23において、ベクトル・テーブルにおける最初の
エンティティが2つ以上のベクトルを持たないこと、従
ってこのエンティティを表わすベクトル、または前記エ
ンティティを表わす充填多角形データを出力ファイルに
対して出力することを判定する。この手順は、ベクトル
・テーブルおよび充填形状テーブルにおける全てのエン
ティティが出力ファイルに出力されるまで反復される。
次いでベクトル化プログラムはラベル22を経て第1図
のベクトル化プログラムを呼出したどのプログラムにも
戻る。
次に、第10図に示された円を事例として用いて、本発
明のベクトル化プログラムの作用を説明する。この円の
最上部の形状は滲み154である。
その滲みレコードが第1図のブロック10に示される。
ように取出される。形状154は第1図の判断ブロック
6において水平であると判定され、ブロック7において
水平のベクトルが生成される。第3図のエンティティ生
成および非セグメント化サブルーチンは、判断ブロック
56において、この水平のベクトルが実際にベクトルで
あることを判定し1判断ブロック58において入力ベク
トルが弧のベクトルでないことを判定し、第4図の線の
非セグメント化サブルーチンへ進む。
第4図の判断ブロック66においては、線の非セグメン
ト化サブルーチンが、形状154が開放点において始ま
り、発散点(形状154からの形状155および159
の発散)で終ることを判定する。従って、入力される方
向ベクトルは、ブロック67に示されるように、ベクト
ル・テーブルに対して新しいエンティティとして入れら
れる。プログラムは次に第1図のブロック10に示され
るように第6図の滲み155を取出し、判断ブロック6
においてこの形状が水平ではないことを判定し、弧15
5の前後の縁部をベクトル化し、いずれの角度を90°
より小さいためこの形状が複雑ではないと判定し、第2
図の形状認識サブルーチンへ進む。
第2図のブロック36.37および38においては、形
状認識サブルーチンが、滲み155の前後の両縁部が類
似の長さの多数のベクトルを持つことを判定し、判断ブ
ロック39へ進み、形状155が垂直よりも水平に近く
ないことを判定し、ブロック40において弧のコードを
生成し、第1図へ戻る。第1図においては、ベクトル・
コードを用いてブロック16のサブルーチンを呼出して
滲み155を表わす弧のベクトルを生成する。
次いで、ベクトル化プログラムは第3図へ進み、ブロッ
ク56において肯定の判定を行ない、判断ブロック58
においてその時の入力ベクトル155が弧のベクトルで
あることを判定し、第5図の非セグメント化サブルーチ
ンへ進む。第5図においては、組合せフラッグがブロッ
ク60Bにおいて「0」にセットされる。
第8図に示されるように、2つの最も近い終端点が滲み
155の入力ベクトルとその時の交差数を持つ滲み15
4の格納ベクトルとの間に見出される。
判断ブロック92は、終端点が入力ベクトルと格納ベク
トルの非セグメント化即ち組合せを許容するに充分な程
度接近していることを判定する。ブロック93および9
4は、入力ベクトル155の長さを計算して、これが格
納ベクトル154と組合せるに充分な程度類似している
ことを判定する。
次に、第5図のブロック95および96において、格納
ベクトル154と入力ベクトル155の最も近いセグメ
ント間の角度が計算され、その結果生じる角度が鋭過ぎ
ないかどうかについて判定が行なわれる。この場合、こ
の角度は鋭過ぎず、従って前に述べた複雑度テストがブ
ロック97において行なわれる。ブロック98において
は、形状155が凸であり従って滲み154の格納ベク
トルと組合せることができることが判定される。プログ
ラムはブロック100へ進み、組合せフラッグを「1」
にセットし、第3図のブロック61へ戻り、組合せフラ
ッグをテストし、肯定の判定を生じ、ブロック64へ進
み、入力ベクトル155をこれに加えることにより出力
半径ベクトル154を更新する。
プログラムは、滲み159を表わす弧のベクトルを格納
ベクトルへ加えることにより格納ベクトルを更新する同
様な一連の操作を行ない、次いで形状157を表わす水
平方向のベクトルをこれに加えることにより結果として
生じる格納ベクトルを最終的に更新する。
この時ベクトル化プログラムは第1A図へ進み、判断ブ
ロック23においてこの時ベクトル・テーブルにおける
1つのエンティティが2つ以上のベクトルを持つことを
判定し、そしてブロック25へ進み、ベクトル・テーブ
ルにおけるエンティティが弧ではないこと、従ってこれ
が円でなければならないことを判定する。このプログラ
ムは円の中心および半径および円の厚みを計算し、この
データを出力ファイルへ出力する。
本文に述べたベクトル化法は、電荷結合素子(CCD)
の如き電子光学的走査装置により走査される設計図の如
き画像を正確に電子的に表わすため必要なデータ量を実
質的に縮減する。精度は他の公知のベクトル化手法より
も実質的に大きく、本発明により生じるベクトル化デー
タを電子的に送り、編集し、尺度を決め、あるいはCP
Uまたはプロッタ上に図面を正確に再生する前に他の方
法でデータを修正するため必要な時間量は、従来技術に
よりベクトル化される画像の場合よりも遥かに小さい。
本非セグメント化技術および形状認識技術は、本発明の
高速度およびデータの簡素化を実用化するものである。
【図面の簡単な説明】
第1図および第1A図は本発明の主ベクトル化プログラ
ムを示すフローチャート、第1B図は不鮮明レコードお
よび台形レコードを取出す第1図のサブルーチンを示す
フローチャート、第1C図は第1図のブロック7におい
て実行されるサブルーチンのフローチャート、第1D図
は第1図のブロック18において実行されるサブルーチ
ンのフローチャート、第1E図は第1図のブロック17
において実行されるプログラムのフローチャート、第1
F図は第1図のブロック16において実行されるサブル
ーチンのフローチャート、第1G図は第1図のブロック
14において実行されるサブルーチンのフローチャート
、第1H図は第1図のブロック13において実行される
サブルーチンのフローチャート、第2図は第1図および
第1A図のフローチャートにおける形状認識サブルーチ
ンを示すフローチャート、第3図は第1図および第1A
図のベクトル化プログラムにより呼出されるエンティテ
ィ生成および非セグメント化サブルーチンのフローチャ
ート、第4図は第3図のエンティティ生成および非セグ
メント化サブルーチンにおける線の非セグメント化サブ
ルーチンを示すフローチャート、第5図は第3図のエン
ティティ生成および非セグメント化サブルーチンおよび
第4図の線の非セグメント化サブルーチンにより呼出さ
れる弧の非セグメント化サブルーチンを示すフローチャ
ート、第6図は本発明のベクトル化法の作用説明におい
て有効な対象の図、第7図は第4図の線の非セグメント
化サブルーチンの作用説明において有効な図、第8図は
第5図の弧の非セグメント化サブルーチンの作用説明に
おいて有効な図、第9図は第5図の弧の非セグメント化
サブルーチンの作用説明において有効な図、第10図は
円のベクトル化の作用説明において有効な図、第11図
はベクトル化プログラムが形状の凸を判定する方法の作
用説明において有効な図、第12図は第5図の説明にお
いて述べられる角度決定の説明において有効な図、第1
3図は第2図の形状認識サブルーチンの作用説明におい
て有効な図、第14図は充填された多角形の組合せのた
めのサブルーチンのフローチャート、第14A図は第1
4図のフローチャートにより呼出されるサブルーチンを
示すフローチャート、第14B図は第14A図のフロー
チャートにより呼出されるサブルーチンを示すフローチ
ャート、第15図は第1A図のフローチャートにより呼
出されるサブルーチンを示すフローチャート、第16図
は第1E図のサブルーチンの説明に有効な図、および第
17図は本発明のベクトル化システムが組込まれたハー
ドウェア・システムを示すブロック図である。 501・・・オリジナル線図、 502・・・画像スキ
ャナー503・・・直列ビクセル・データ 504・・・自動図面認識システム 505・・・ランレングス・エンコーダ506・・・ウ
ィンドウ処理メモリー 507・・・中央処理装置(CPU) 510・・・ワークステーション 511・・・フロッピー・ディスク・ドライブ512・
・・ハード・ディスク 513・・・高解像度グラフィックス・モニター514
・・・キーボード    515・・・マウス516・
・・プロッタ     517・・・編集済み線図(外
4名) F’xr、、、IE しユニ」F市−IF 、F、rt=−IJ Lu殆1i:i         Fxt=cy13F
’xr;、14A

Claims (1)

  1. 【特許請求の範囲】 1、書類の対象を電子的に走査することにより得られる
    データであって、該対象が構成される繋がった基本的形
    状を表わすレコードへ組立てられるデータをベクトル化
    するシステムにおいて、(a)前記対象の第1の基本的
    形状のレコードを獲得する手段と、 (b)前記第1の基本的形状の前後の縁部をベクトル化
    する手段と、 (c)前記第1の基本的形状が弧のベクトル、線のベク
    トル、あるいは充填された形状として、前記第1の基本
    的形状の前後の縁部のベクトルについて演算することに
    より正確に表わすことができるかどうかを判定する手段
    と、 (d)前記第1の基本的形状が線のベクトルまた弧のベ
    クトルにより表わされるべき場合は、線のベクトルまた
    は弧のベクトルである入力ベクトルを生成する手段と、
    前記第1の基本的形状が充填された形状として表わされ
    るべき場合は、充填された形状を定義するデータを生成
    する手段と、(e)前記充填された形状データを充填さ
    れた形状テーブルに対する新しいエントリとして入力す
    る手段と、 (f)前記入力ベクトルがベクトル・テーブルに既に格
    納されたベクトルと組合わせることができるかどうかを
    判定し、もしこの判定が肯定ならば、入力ベクトルを含
    む組合されたベクトルと前記ベクトル・テーブルに格納
    されたベクトルとを格納し、またもし該判定が否定なら
    ば、前記ベクトル・テーブルに対する新しいエントリと
    して該入力ベクトルを入力する手段とを設けることを特
    徴とするデータ・ベクトル化システム。 2、前記第1の基本的形状の前後の縁部がそれぞれ類似
    の長さの複数の線ベクトルを含むかどうかを判定し、も
    しそうであれば、前記第1の基本的形状が略々水平であ
    るかどうかを判定し、またもし該第1の基本的形状が略
    々水平でなければ、第1の基本的形状が弧のベクトルに
    より表わされるべきことを示す弧のコードを生成し、ま
    たもし該第1の基本的形状が略々水平であれば、第1の
    基本的形状が凸であるかどうかを判定する手段を設ける
    ことを特徴とする請求項1記載のデータ・ベクトル化シ
    ステム。 3、もし前記第1の基本的形状が凸でなければ該第1の
    基本的形状が交差滲みとして表わされるべきことを示す
    交差交差滲みコードを生成し、またもし前記第1の基本
    的形状が凸であれば該第1の基本的形状が充填された円
    として表わされるべきことを示す充填された円コードを
    生成する手段を設けることを特徴とする請求項2記載の
    データ・ベクトル化システム。 4、前記第1の基本的形状の最も長い前縁部ベクトルが
    その最も長い後縁部ベクトルに対して平行であるかどう
    かを判定し、もしこの判定が肯定の時、前記第1の基本
    的形状の前後の縁部ベクトルが垂直方向であるならば、
    該第1の基本的形状が垂直方向ベクトルにより表わされ
    るべきことを示す垂直方向ベクトル・コードを生成し、
    さらにもし前記第1の基本的形状の前後の縁部が平行な
    対角方向ベクトルであるならば、該第1の基本的形状が
    対角方向ベクトルにより表わされるべきことを示す対角
    方向ベクトルを生成する手段を設けることを特徴とする
    請求項2記載のデータ・ベクトル化システム。 5、前記第1の基本的形状の前後の縁部の最も長いベク
    トルが平行でなければ該第1の基本的形状が充填された
    多角形として表わされるべきことを示す充填された多角
    形コードを生成する手段を設けることを特徴とする請求
    項4記載のデータ・ベクトル化システム。 6、前記充填された形状データを充填された形状テーブ
    ルに対する新しいエントリとして入力し、もし情報がベ
    クトルであれば、該ベクトルが弧のベクトルであるかど
    うかを判定する手段と、もし前記入力ベクトルが弧のベ
    クトルでなければ、線の非セグメント化サブルーチンを
    実行し、もし該入力ベクトルが弧のベクトルならば、弧
    の非セグメント化サブルーチンを実行する手段とを設け
    、前記線の非セグメント化サブルーチンを実行する手段
    は、組合せフラッグをリセットし、もしテーブルのベク
    トルがその時の入力ベクトルと同じ交差数を持つかどう
    かを判定し、もし該判定が肯定ならば、前記格納ベクト
    ルが弧のベクトルであるかどうかを判定し、またもし該
    判定が肯定ならば、前記弧の非セグメント化サブルーチ
    ンを実行し、またもし該判定が否定ならば、前記入力ベ
    クトルおよび格納ベクトルが相互に充分に近くかつ充分
    に同一線上にあり前記入力ベクトルを前記格納ベクトル
    と組合せることができるかどうかを判定し、またもし該
    判定が肯定ならば、前記組合せフラッグをセットする手
    段と、もし前記テーブルに格納されたベクトルが前記入
    力ベクトルと同じ交差数を持たないことが判定されるな
    らば、前記入力ベクトルを前記ベクトル・テーブルに対
    する新しいエントリとして入力する手段とを設けること
    を特徴とする請求項ラ記載のデータ・ベクトル化システ
    ム。 7、前記線の非セグメント化サブルーチン実行手段が、
    前記入力ベクトルが開放点において始まり発散点で終る
    かどうかを判定し、もしそうであれば、該入力ベクトル
    を前記ベクトル・テーブルに入力し、またもしそうでな
    ければ、前記入力ベクトルが上方の収束および下方の発
    散を含む交差点にあるかどうかを判定し、またもしこの
    判定が肯定ならば、前記入力ベクトルが前記ベクトル・
    テーブルに入力するには近過ぎるかどうかを判定し、も
    しそうでなければ、これを前記ベクトル・テーブルに対
    する新しいエントリとして入力し、またもし入力ベクト
    ルが交差点になければ、入力ベクトルが収束点において
    始まり開放点において終るかどうかを判定し、またもし
    そうでなければ、前記ベクトル・テーブルに格納された
    ベクトルが前記入力ベクトルと同じ交差数を持つかどう
    かを判定し、もし該入力ベクトルが収束点で始まり開放
    点において終るならば、該入力ベクトルが格納されたベ
    クトルと組合されるには近過ぎるかどうかを判定する手
    段を含むことを特徴とする請求項6記載のデータ・ベク
    トル化システム。 8、その時の充填される多角形が前記充填形状テーブル
    に既に格納された充填多角形に近いかどうかを判定し、
    もしそうであれば、これら2つの充填された多角形の一
    方の最も下方の点における水平縁部と、前記2つの充填
    された多角形の他方の最も上方の点における水平縁部と
    が存在するかどうかを判定し、もしそうであれば、前記
    2つの水平縁部が実質的に共に存在するかどうかを判定
    し、もしそうであれば、前記充填多角形の両方の全ての
    頂点を含む充填された多角形レコードを生成し、かつ前
    記充填多角形レコードからの第1の予め定めた距離より
    も近い各対の頂点の1つの頂点を削除する手段を含む多
    角形組合せサブルーチンを実行する手段を設けることを
    特徴とする請求項6記載のデータ・ベクトル化システム
    。 9、3つの連続する頂点のグループの中間の頂点が、該
    グループの外側の2つの頂点を通る直線からの第2の予
    め定めた距離よりも近い位置にあるかどうかを判定し、
    もしそうであれば、前記中間の頂点を削除し、かつ前記
    充填多角形レコードにおける3つの連続する頂点の個々
    のグループ毎に前記2つのステップを反復する手段を設
    けることを特徴とする請求項8記載のデータ・ベクトル
    化システム。 10、書類の対象を電子的に走査することにより得られ
    るデータであって、該対象が構成される繋がった基本的
    形状を表わすレコードへ組立てられるデータをベクトル
    化するシステムにおいて、(a)前記対象の第1の基本
    的形状のレコードを獲得する手段と、 (b)該第1の基本的形状の前後の縁部をベクトル化す
    る手段と、 (c)該前後の縁部ベクトルについて演算することによ
    り、前記第1の基本的形状が線のベクトルとして正確に
    表わし得るかどうかを判定する手段と、(d)線のベク
    トルである入力ベクトルを生成する手段と、 (e)もし前記第1の基本的形状が1つの入力ベクトル
    により表わされるならば、該入力ベクトルがベクトル・
    テーブルに既に格納されたベクトルと組合せることがで
    きるかどうかを判定する手段と、該判定が肯定ならば、
    前記入力ベクトルと前記ベクトル・テーブルに格納され
    たベクトルとを含む組合されたベクトルを格納する手段
    と、該判定が否定ならば、前記ベクトル・テーブルに対
    する新しいエントリとして該入力ベクトルを入力する手
    段とを設けることを特徴とするデータ・ベクトル化シス
    テム。 11、書類の対象を電子的に走査することにより得られ
    るデータであって、該対象が構成される繋がった基本的
    形状を表わすレコードへ組立てられるデータをベクトル
    化するシステムにおいて、(a)前記対象の第1の基本
    的形状のレコードを獲得する手段と、 (b)該第1の基本的形状の前後の縁部をベクトル化す
    る手段と、 (c)前記第1の基本的形状が弧のベクトル、線のベク
    トル、あるいは前記前後縁部ベクトルについて演算する
    ことにより充填される形状として正確に表わし得るかど
    うかを判定する手段と、(d)前記第1の基本的形状が
    線のベクトルまた弧のベクトルにより表わされるべきな
    らば、線のベクトルまたは弧のベクトルである入力ベク
    トルをそれぞれ生成し、またもし前記第1の基本的形状
    が充填された形状として表わされるべきならば、充填さ
    れた形状を定義するデータを生成する手段と、(e)前
    記第1の基本的形状が充填された形状として表わされる
    ならば、充填された形状テーブルに対する新しいエント
    リとして前記充填形状データを入力する手段と、 (f)もし前記第1の基本的形状が入力ベクトルにより
    表わされるならば、前記ベクトル・テーブルに対する新
    しいエントリとして前記入力ベクトルを入力する手段と
    を設けることを特徴とするデータ・ベクトル化システム
JP63022678A 1987-02-19 1988-02-02 入力走査画像データのベクトル化のための装置及び方法 Expired - Lifetime JP2608571B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16660 1987-02-19
US07/016,660 US4817187A (en) 1987-02-19 1987-02-19 Apparatus and method for vectorization of incoming scanned image data

Publications (2)

Publication Number Publication Date
JPS63206873A true JPS63206873A (ja) 1988-08-26
JP2608571B2 JP2608571B2 (ja) 1997-05-07

Family

ID=21778280

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63022678A Expired - Lifetime JP2608571B2 (ja) 1987-02-19 1988-02-02 入力走査画像データのベクトル化のための装置及び方法

Country Status (5)

Country Link
US (1) US4817187A (ja)
EP (1) EP0279156A3 (ja)
JP (1) JP2608571B2 (ja)
AU (1) AU587353B2 (ja)
IL (1) IL84648A0 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4949388A (en) * 1987-02-19 1990-08-14 Gtx Corporation Method and apparatus for recognition of graphic symbols
JP2735197B2 (ja) * 1987-11-12 1998-04-02 株式会社東芝 図形入力装置
US5054094A (en) * 1990-05-07 1991-10-01 Eastman Kodak Company Rotationally impervious feature extraction for optical character recognition
US5101436A (en) * 1990-05-11 1992-03-31 Optigraphics Corporation Hybrid image editor
SE9101089L (sv) * 1990-11-27 1992-05-30 Knut Christian Achates Scherma Foerfarande foer framstaellning av fraemst byggprojekteringsunderlag
US5295236A (en) * 1991-03-04 1994-03-15 Aldus Corporation Applying traps to a printed page specified in a page description language format
US5542052A (en) * 1991-03-04 1996-07-30 Adobe Systems Incorporated Applying traps to a printed page specified in a page description language format
US5359671A (en) * 1992-03-31 1994-10-25 Eastman Kodak Company Character-recognition systems and methods with means to measure endpoint features in character bit-maps
US5666543A (en) * 1994-03-23 1997-09-09 Adobe Systems Incorporated Method of trapping graphical objects in a desktop publishing program
US6005680A (en) 1995-04-04 1999-12-21 Canon Information Systems, Inc. Method for capturing a document image, a scanner using the method and a document image management system using the scanner
US5764808A (en) * 1995-10-26 1998-06-09 Motorola, Inc. Method and device for compact representation of a discrete region contour
KR100207426B1 (ko) * 1996-05-08 1999-07-15 전주범 무늬의 크기와 방향성을 이용한 텍스쳐 분류 장치
US7016536B1 (en) 1999-11-24 2006-03-21 Gtx Corporation Method and apparatus for automatic cleaning and enhancing of scanned documents
GB2366108A (en) * 2000-07-14 2002-02-27 Vhsoft Technologies Company Lt Vectorization of raster images
JP3997198B2 (ja) 2003-12-05 2007-10-24 キヤノン株式会社 画像処理システム及び画像処理方法
FR2876818A1 (fr) * 2004-10-19 2006-04-21 France Telecom Procede et programme de transcodage d'un fichier d'images au format vectoriel, support d'enregistrement et transcodeur adaptes pour ce procede
JP4959574B2 (ja) * 2004-11-26 2012-06-27 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 関心ボリュームの選択
US7663644B2 (en) * 2005-11-08 2010-02-16 Autodesk, Inc. Automatic element substitution in vector-based illustrations
JP5028337B2 (ja) * 2008-05-30 2012-09-19 キヤノン株式会社 画像処理装置、画像処理方法、プログラム、及び記憶媒体
US8583898B2 (en) * 2009-06-12 2013-11-12 Cray Inc. System and method for managing processor-in-memory (PIM) operations
US8458685B2 (en) * 2009-06-12 2013-06-04 Cray Inc. Vector atomic memory operation vector update system and method
US8826252B2 (en) * 2009-06-12 2014-09-02 Cray Inc. Using vector atomic memory operation to handle data of different lengths
US9105073B2 (en) * 2012-04-24 2015-08-11 Amadeus S.A.S. Method and system of producing an interactive version of a plan or the like

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1171627A (en) * 1966-10-07 1969-11-26 Post Office Improvements in or relating to Character Recognition Machines
JPS604505B2 (ja) * 1972-07-10 1985-02-04 スキヤン − オプテイクス インコ−ポレ−テツド マルチ・フオント光学式文字認識装置
US4107648A (en) * 1976-04-12 1978-08-15 Bell Telephone Laboratories, Incorporated Scan encoding of two dimensional pictorial entities
US4183013A (en) * 1976-11-29 1980-01-08 Coulter Electronics, Inc. System for extracting shape features from an image
US4087788A (en) * 1977-01-14 1978-05-02 Ncr Canada Ltd - Ncr Canada Ltee Data compression system
US4204232A (en) * 1977-07-08 1980-05-20 Nippon Electric Co., Ltd. Pattern transmission system comprising an encoder for encoding partial thinned patterns in two scanning lines along only one boundary line
JPS566294A (en) * 1979-06-29 1981-01-22 Hitachi Ltd Graphic display device
US4307377A (en) * 1979-11-09 1981-12-22 Bell Telephone Laboratories, Incorporated Vector coding of computer graphics material
KR850001657B1 (ko) * 1981-03-06 1985-11-06 야마모도 다꾸마 영상(影像) 데이터 변환법 및 문자 코우드와 문자패턴 변환장치
US4493105A (en) * 1982-03-31 1985-01-08 General Electric Company Method and apparatus for visual image processing
JPS59101969A (ja) * 1982-12-01 1984-06-12 Dainippon Screen Mfg Co Ltd 2値画像パタ−ンのデ−タ処理方法及び装置
FR2540263B1 (fr) * 1983-01-31 1988-05-20 Commissariat Energie Atomique Procede de reconnaissance automatique d'une image a partir d'une image correspondante de reference
US4603431A (en) * 1983-03-14 1986-07-29 Ana Tech Corporation Method and apparatus for vectorizing documents and symbol recognition
US4777651A (en) * 1984-06-25 1988-10-11 Tektronix, Inc. Method of pixel to vector conversion in an automatic picture coding system
US4821336A (en) * 1987-02-19 1989-04-11 Gtx Corporation Method and apparatus for simplifying runlength data from scanning of images
US4949388A (en) * 1987-02-19 1990-08-14 Gtx Corporation Method and apparatus for recognition of graphic symbols
US4802230A (en) * 1987-03-13 1989-01-31 Gtx Corporation Method and apparatus for generating size and orientation invariant shape features
JPS6478381A (en) * 1987-09-21 1989-03-23 Toshiba Corp Picture processing method

Also Published As

Publication number Publication date
AU1175488A (en) 1988-08-25
JP2608571B2 (ja) 1997-05-07
US4817187A (en) 1989-03-28
AU587353B2 (en) 1989-08-10
EP0279156A2 (en) 1988-08-24
EP0279156A3 (en) 1990-08-29
IL84648A0 (en) 1988-04-29

Similar Documents

Publication Publication Date Title
JPS63206873A (ja) 入力走査画像データのベクトル化のための装置及び方法
Pavlidis A vectorizer and feature extractor for document recognition
US5465304A (en) Segmentation of text, picture and lines of a document image
US6181818B1 (en) Image retrieval method and apparatus
US5854854A (en) Skew detection and correction of a document image representation
EP1457917B1 (en) Apparatus and methods for converting network drawings from raster format to vector format
US5416849A (en) Data processing system and method for field extraction of scanned images of document forms
US6411733B1 (en) Method and apparatus for separating document image object types
EP0702322A2 (en) Method and apparatus for identifying words described in a portable electronic document
US6711292B2 (en) Block selection of table features
JPH05500874A (ja) ディジタル化書類における選択本文の自動抽出のための多角形準拠式方法
JP2001101426A (ja) ディジタル画像処理方法
US6573899B2 (en) Morphing processing apparatus, method, storage medium, program transmission apparatus, and animation creation apparatus
JPH05166002A (ja) ソース画像を分析する方法
US5228097A (en) Method for registering image data
JP5137679B2 (ja) 画像処理装置および画像処理方法
US7336825B2 (en) Segmenting a composite image via minimum areas
Ablameyko et al. Computer-aided cartographical system for map digitizing
JPH0612540B2 (ja) 文書作成支援装置
JP2845107B2 (ja) 画像処理装置
JPH0646408B2 (ja) 分割画像処理方法
JPH01129358A (ja) 表数値演算装置
JPH06282658A (ja) 曲線データ生成方法および装置
JPH0634237B2 (ja) 画像クリッピング方法
JP2755299B2 (ja) 画像処理方法

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term