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

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

Info

Publication number
JP2608571B2
JP2608571B2 JP63022678A JP2267888A JP2608571B2 JP 2608571 B2 JP2608571 B2 JP 2608571B2 JP 63022678 A JP63022678 A JP 63022678A JP 2267888 A JP2267888 A JP 2267888A JP 2608571 B2 JP2608571 B2 JP 2608571B2
Authority
JP
Japan
Prior art keywords
vector
shape
basic shape
block
subroutine
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.)
Expired - Lifetime
Application number
JP63022678A
Other languages
English (en)
Other versions
JPS63206873A (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.)
Nippon Steel Corp
Original Assignee
Nippon Steel 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 Nippon Steel Corp filed Critical Nippon Steel 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は、文書特に線図、手書きの技術図面等を含む
書類の走査から受取った直列データをベクトル化するた
めの装置および方法に関する。
[従来の技術および解決しようとする課題] 当業者は、一枚の書類が典型的な光学的走査装置によ
り行単位に走査することができる多数のピクセル・サイ
ズの領域を有することを確認している。一枚の紙にこの
ような領域即ち「点」をことごとく表わすためには、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対の値を帰属させ、これらの値を格納された基準輪
郭と比較する自動認識システムを開示している。
H.Hashiyama等の英国特許出願第2131660A号は、認識
されるべき画像の輪郭における特徴的な点と対応するデ
ータを格納し、これらデータを読出し、これに拡大、縮
小、回転処理等の如き拡大/変更距離を行ない、このよ
うに処理したパターンを1次元の時間の直列データに変
換する手法を開示している。
公知のシステムはいずれも、手書きの技術図面等の如
き書類を約5分の如きできるだけ短い時間内に迅速かつ
正確にディジタル化することができる低コストの正確な
スキャナーに対する現在の要求を満たすものはない。
[課題を解決するための手段] 従って、本発明の目的は、順次走査されたランレング
ス・データをベクトル化するための改善された方法およ
び装置の提供にある。
本発明の別の目的は、1つの画像を電子的に表わすた
めに必要なデータ量を減少するランレングス・データを
ベクトル化するための改善された手法の提供にある。
本発明の他の目的は、ベクトル化されたデータから再
構成されたオリジナル対象の「コピー」の精度を実質的
に増強するためランレングス・データをベクトル化する
ための改善された装置の提供にある。
本発明の他の目的は、電子的に走査された書類を編集
するため必要な時間、処理およびハードウエアの量を実
質的に減少することにある。
本発明の他の目的は、コストを低減しかつ図形データ
を電子的に伝送する速度を向上するための方法および装
置の提供にある。
本発明の他の目的は、走査された図形対象を正確にデ
ィジタル化するため必要なメモリー量を少くすることに
ある。
要約すれば、本発明の一実施態様によれば、本発明
は、対象を電子的に走査することにより得られたランレ
ングス・データをベクトル化するための方法および装置
を含み、これにおいてはランレングス・データは対象が
構成される繋がった基本的な形状を表わすレコードに組
立てられる。本方法は、対象の第1の基本的な形状のレ
コードを取得し、この第1の基本的形状の前後の縁部を
ベクトル化し、この前後の縁部のベクトルについて演算
することにより、第1の基本的形状が正確に円弧のベク
トル、線のベクトルあるいは充填された形状として正確
に表わすことができるかどうかを判定し、第1の基本的
形状がそれぞれ線のベクトルかあるいは弧のベクトルに
より表わすべきものであれば、線のベクトルかあるいは
弧のベクトルのいずれかである入力ベクトルを生成し、
第1の基本的形状が充填された形状として表わすべきも
のであれば、充填された形状を定義するデータを生成
し、第1の基本的形状が充填された形状として表わされ
るならば、新しいエントリとして充填された形状のデー
タをベクトル・テーブルに入れ、第1の基本的形状が1
つの入力ベクトルにより表わされるならば、この入力ベ
クトルが既にテーブルに格納されたベクトルと組合せる
ことができるかどうかを判定し、もしこの判定が肯定な
らば、入力ベクトルおよび格納されたベクトルを含む組
合されたベクトルをテーブルに格納し、さもなければ、
前記入力ベクトルを新しいエントリとしてテーブルに入
れるステップを含む。本発明の上記の実施態様において
は、レコードは、対象の台形でない基本的形状における
全てのランレングス・スライスを含む対象および滲みの
レコードの基本的形状である台形の4つの隅点を含む台
形のレコードを含む。このレコードはまた、対象の収束
および(または)発散と結び付けられた基本的形状に対
するポインタを含む収束レコードおよび発散レコードを
も含む。特定の交差カウンタと関連付けられた全ての基
本的形状は、第1の交差ではなく第2の交差と関連付け
られた基本的形状がベクトル化される前に、簡素化され
た充填形状データ、円のデータあるいは弧のデータにベ
クトル化即ち縮減される。形状認識サブルーチンが、第
1の基本的形状が水平であるかどうかを判定し、次いで
第1の基本的形状の前後の縁部がそれぞれ類似の長さの
複数の線のベクトルを含むかどうかを判定し、もしそう
であれば、第1の基本的形状は「略々」水平であるかど
うかを判定し、もしそうでなければ、弧のコードを生成
し、もし第1の基本的形状が略々水平であれば、第1の
基本的形状が凸であるかどうかを判定し、もしそうであ
れば、充填された円のコードを生成し、第1の基本的形
状が凸でなければ、交差不鮮明コードを生成する。もし
第1の形状の前後の縁部が各々複数の類似の長さのベク
トルを含まなければ、形状認識サブルーチンは、第1の
基本的形状の前後の縁部の最も長いベクトルが平行であ
るかどうかを判定し、もしこれらがそうでなければ充填
された多角形コードを生成し、もしそうであれば、垂直
方向のベクトル・コードあるいは対角方向のベクトル・
コードを生成する。前述のコードは、次に、実際のベク
トル即ち充填された形状のコードを生成するサブルーチ
ンを呼出すため用いられる。次いで、このベクトル即ち
充填された形状コードは、情報をベクトル・テーブルに
対する新しいエンティティとして入れさせるか、あるい
はもし情報が入力ベクトルであればこれが弧のベクトル
か線のベクトルかどうかを判定するエンティティ生成お
よび非セグメント化サブルーチンに対し送られて、対応
する弧の非セグメント化あるいは線の非セグメント化サ
ブルーチンを実行する。この弧の非セグメント化サブル
ーチンは、入力弧ベクトルと同じ交差数を有する格納さ
れたベクトルが存在するかどうかを判定する。もし存在
しなければ、入力ベクトルはベクトル・テーブルに対す
る新しいエントリとして加えられ、またもし存在するな
らば、弧の非セグメント化サブルーチンは、その2つの
最も近い終端点が入力弧ベクトルを格納ベクトルと組合
せることを許容するに十分なだけ接近しているかどうか
を判定する。もしそうであれば、弧の非セグメント化サ
ブルーチンは、その結果得るベクトルの交差角度が鋭で
あり過ぎるかどうかを判定し、もしそうでなければ、結
果として得る形状が凸であるかどうかを判定し、もしそ
うであれば、入力ベクトルが格納されたベクトルと組合
されるべきことを示す「組合せ」フラッグをセットす
る。線の非セグメント化サブルーチンは、テーブルにお
けるいずれかのベクトルが入力線ベクトルと同じ交差数
を持つかどうかを判定し、そうでなければ、入力ベクト
ルがベクトル・テーブルに対する新しいエントリとして
入れさせる。もし格納されたベクトルが入力線ベクトル
と同じ交差数を持つならば、それらの2つの最も近い終
端点間の「ずれ」およびそれらの外端点間の直線とが計
算されて、入力ベクトルが格納ベクトルと組合せること
ができるかどうかの判定が行なわれる。もしこの判定が
肯定ならば、「組合せ」フラッグがセットされる。もし
組合せフラッグがセットされるならば、格納ベクトルが
入力ベクトルを含むように更新される。この全手順は、
対象の全ての基本的形状がベクトル化されて、ベクトル
・テールブに格納されるまで反復されるが、このテーブ
ルは次にユーティリティ・プログラムにより利用するこ
とができる。
[実施例] 本発明のベクトル化法について詳細に説明する前に、
このベクトル化法は、手書きの技術図面の如き書類の行
単位の走査を行ない、それぞれ(1)繋がった黒のピク
セルのストリングにおける最後に走査された黒のピクセ
ルのX座標および(2)繋がった黒のピクセルのこのス
トリング即ち「スライス」の長さを表わす一連の粗ラン
レングス形態の直列フォーマットで結果として得るデー
タを受取るコンピュータ・グラフィックス・システムに
おいて主として用いられることを最初に知るべきであ
る。
第17図に示される如きコンピュータ・グラフィックス
・システムにおいては、オリジナルの線図501、典型的
には設計図面等が適当な画像スキャナー502によって走
査され、このスキャナーが直列のピクセル・データ503
を「自動図面認識システム」504に出力し、このシステ
ムはランレングス・エンコーダ505、前に触れた係属中
のKrichの米国特許出願に記載されるウィンドウ・メモ
リー506、およびMotorola社のMC68020型マイクロプロセ
ッサの如き1つ以上のマイクロプロセッサ・チップを含
むことができるCPU507を含む。この自動図面認識システ
ム504は、以下に述べるピクセル・データを簡単にし
て、509により示されるようなピクセル、ベクトル、認
識された文字および信号をワークステーション510に対
し生じ、ワークステーションはVERTICOMグラフィックス
・ボード、高画像度グラフィックス・モニター513、キ
ーボード514、マウス515、およびハード・ディスク512
を含むIBM社のPC−AT型デスク・トップ・コンピュータ
を含む。ランレングス・エンコーダ505は、行の信号の
終りおよびページ信号の終りと共にスキャナーから直列
ピクセルを受取る比較的簡単な回路であり、前記信号は
新しいゼロでないピクセル・コードが受取られる毎に増
分されるピクセル・カウンタに対して加えられる増分信
号およびクリア信号を生じる制御回路に対して送られ
る。この制御回路はまた、新しいピクセル入力信号が受
取られる毎に増分される列カウンタ回路に対して加えら
れる増分信号およびクリア信号を生じる。
ピクセル・カウンタに対するクリア信号は、繋がった
黒のピクセルのストリングから白のピクセルへの変換が
生じる毎にこれをリセットし、この時ピクセル・カウン
タの内容がFIFOバッファに対して書込まれる。ピクセル
・カウンタはまた、書類における対象の走査から生じる
暗いピクセルのその時のストリング即ち「スライス」の
長さを格納する。列カウンタのクリア信号は、行信号の
終りに対応して各行の終りにおいて生成される。書込み
信号は、スライスの終りが生じるか行の終りが生じる毎
に、ピクセル・カウンタおよび列カウンタの両方の内容
をFIFOバッファに対して書込ませる。
上記の粗ランレングス・データはまた、走査される各
線の終りおよび走査される各ページの終りを示す。粗の
ランレングス・データは、(1)個々の簡単な部分かあ
るいは(2)「対象(オブジェクト)」の「滲み(ブロ
ブ:blob)」のいずれかを表わす連係リストに再構成さ
れる。「対象」とは白のピクセルによって完全に囲まれ
た画像である。
前記の連係リストは、スライス数を大幅に縮減するた
め、種々のスライス間の重要でない白のピクセル間隙を
取除くためフィルタされる。これは、ある意図されたス
ライスを意図されない1つまたは2つの白のピクセルに
より繋がった多数の更に短いスライスへの偶発的な分割
を生じ得る小さな重要でない間隙が書類の走査中しばし
ば生じる故に必要となる。
フィルタされた連係リストは、「幾何学的に」構成さ
れる(1)全てのコンパクトなスライス・データおよび
各「滲み」を他の滲みまたはこれと繋がった台形と関連
付けるため必要な関連するポインタを含む「滲みのレコ
ード」と、(2)台形により正確に表わすことができる
対象の形状の4つの隅点および関連する点と、他の滲み
あるいはこれと繋がつた台形に対するポインタとを含む
「台形のレコード」と、(3)後に述べる収束レコード
と、(4)後に述べる発散レコードとに組立てられる。
前掲の係属中のRoyeの米国特許出願は、これらのレコー
ドを生成する方法を詳細に記載している。本発明のベク
トル化法は、対象を「ベクトル化」するため前述のレコ
ードを利用している。
次に、本発明のベクトル化法により生じた出力ベクト
ルおよびデータは、オリジナル図即ち対象等の修正即ち
編集バージョンを定義する更新ファイルを生成するため
倍率により寸法を倍増し、ある特徴を削除し、ある特徴
を修正し、特徴を加えるように、コンピュータを支援設
定(CAD)システム等によりアクセスすることができる
適当なデータ・ファイルにロードすることができる。
次いで編集されたファイルは、再び表示するかさもな
ければ編集された書類を表わす情報を用いるため使用す
ることができる。
第1図は、本発明のベクトル化法の基本的なフローチ
ャートを示している。プログラムはラベル1において入
り、判断ブロック1Aへ進む。
もし判断ブロック1Aの判定が肯定ならば、このこと
は、その時の対象が構成される全ての繋がつた形状がベ
クトル化手順の最初の段階を通過したことを意味する。
もしそうであれば、プログラムは第1A図のフローチャー
トへ進み、その時の基本的形状のベクトル化されたデー
タのどれかが円および弧を認識して、円および弧の数学
的パラメータ即ち中心、半径等の値を代入することによ
り更に簡単化できるかどうかを判定する。
その時の対象がベクトル化の最初の段階を完全に通過
するまでは、判断ブロック1Aの判定は否定となり、プロ
グラムはブロック1Bへ進む。
第1図の説明を進める前に、用語「対象」、「滲
み」、「スライス」、「台形」、「交差」、「収束」お
よび「発散」により意味するものである事例を提示する
ことが便利であろう。
第6図において、参照番号110により示される全体形
状は、境界のみが第6図において黒として示されるが、
その内部も黒である「対象」である。各対象は、「滲
み」あるいは台形と呼ばれる比較的単純な多数の繋がれ
た基本的形状からなっている。台形は4辺を有する多角
形である。第6図においては、形状111A,112,117,119お
よびその他が台形である。滲みは台形として正確に分類
できない不規則的な形状である。第6図においては、形
状111B,116B,113Bおよび125が滲みである。台形は、そ
の4つの隅部の座標によって正確に表わすことができ
る。滲みはその境界を画成する全ての「スライス」によ
り表わされる。(各スライスが同一直線状の隣接する黒
または白のピクセルのランレングスを構成することを想
起されたい。)1つの対象の各基本的形状は、対象の他
の少なくとも1つの基本的形状と繋がっている。このた
め、対象は白のピクセルによって完全に囲まれ、これら
ピクセルはいずれも粗のランレングス即ちスライス・デ
ータのいずれにも含まれない。第6図においては、対象
110は滲み111B,113B,116B,125,126,127および128を含
む。
対象110は、丸味のある外端部を有する単純な形状11
1,113,116を含み、台形により正確に表わすことができ
ない。例えば、単純な形状111は、台形および滲みであ
る下方部分111Aおよび上方部分111Bを含む。同様に、単
純な形状113は台形113Aおよび滲み113Bを含み、単純な
形状116は台形116Aおよび滲み116Bを含む。
対象110における各台形は、関連した「台形レコー
ド」を有し、各滲みは関連した「滲みレコード」を有す
る。各滲みレコードは、対応する滲みの全てのスライス
を含む。各台形レコードは、台形の4つの隅部を含む。
対象110は、複数の「交差滲み」125〜128を含む。こ
の交差滲みの各々は、当該滲みの全てのスライスを含
む。対象110はまた、130,131および132の如き多数の
「開放点」を含む。開放点は、別の滲みまたは台形と直
接接合しない上方または下方の終端点である。
上記の粗ランレングス・データから組立てられるレコ
ードはまた、「発散レコード」および「収束レコード」
を含む。収束とは、上方の1つの走査線上の少なくとも
2つのスライスが、次の下方の走査線上の1つのスライ
スと部分的に重なる場合に、該2つのスライスが収束す
ると定義する。例えば、第6図においては、それぞれ台
形111Aおよび112の2つの最も下方のスライス、および
交差滲み125の最上方の1つのスライスが収束を形成す
る。同様に、発散は、上方の走査線の1つのスライスと
少なくとも部分的に重なる次の下方の走査線の2つの同
一線上のスライスとからなっている。対象110において
は、交差滲み125の最下方のスライスと、台形114,115の
最上方のスライスとが、それぞれ発散を形成する。ある
対象の発散レコードおよび収束レコードが、当該対象の
収束および発散の全てに対するデータを格納する。
ここで、第1図のベクトル化プログラムによりアクセ
スされる種々のレコードについて述べることが好都合で
あろう。要約すれば、レコードは、台形、滲み、発散お
よび収束のシーケンス間の相互の関係を説明するため必
要である。上記の台形レコード、滲みレコード、発散レ
コードおよび収束レコードに加えて、対象ヘッダ・レコ
ードが存在する。各レコードは、このレコードを完成す
るため必要な数と同様の64バイトのメモリー領域を含
む。メモリーの各64バイトの領域の終りには、もしその
時のレコードがその時の64バイトのメモリー領域に完全
に保有できなければ別の64バイトのメモリー領域のアド
レスを指示する「リンク・ポインタ」が存在する。
対象ヘッダ・レコードを以下に示す。
上記の対象ヘッダ・レコードは、その最初のバイトに
その時の対象の開放点の数を示す数「ptr#」を含む。
対象の各開放点は、初めのポインタ「beg ptr」および
これと関連した終りのポインタ「end ptr」を有する。
各台形または滲みの初めのポインタは、当該台形または
滲みのレコードの「走査」が開始する点と対応し、また
当該滲みまたは台形のレコードのアドレスを含む。各開
放点毎に、必要に応じて当該台形レコードまたは滲みレ
コードが続けられるメモリーの2番目の64バイトの領域
を指示する終りのポインタも存在する。もし対象ヘッダ
・レコードの初めのポインタにより指示される台形レコ
ードまたは滲みレコードが指示される滲みまたは台形の
レコードは完全に含まれるならば、対応する終りのポイ
ンタは初めのポインタと等しい。
以下に示す滲みレコードは、対応する滲みに含まれる
全てのスライスを格納する。滲みレコードの最初のバイ
トは、幾つのスライスが滲みに含まれるかを示すスライ
ス・カウント数「sliccnt」を含む。滲みレコードの2
番目のバイトは、1つの滲みレコードに対し04である
「レコード・タイプ」レコード・コードである。
滲みレコードの一例を以下に示す。
次のバイトは、滲みが別のレコードまで下方に走査さ
れつつあるかどうかを示す下方ポインタ「ptr down」を
含む。この下方ポインタは、このような他のレコードの
アドレスを指示する。
滲みレコードの次のバイトは、もしその時の滲みが開
放点から走査されつつあるならば数値0を持つ上方ポイ
ンタ「ptr up」を含む。滲みが発散から下方へ走査され
つつあるならば、上方ポインタは対応する発散のレコー
ドのアドレスを指示する。
滲みレコードの次のバイトはY座標Ysを含み、これは
滲みの最上位のY座標を示す。次のバイトは、滲みの最
下位のY座標Yeを含む。
次のバイトはベクトルを格納する「ベクトル・テーブ
ル」と呼ばれるテーブル、あるいはその時の滲みが本発
明のベクトル化法により最終的に変換される充填された
形状の頂点を示す「充填形状のテーブル」と呼ばれるテ
ーブルにおけるアドレスに対するポインタ「VECGワー
ク」である。「VECGワーク」は、もしその時の滲みが交
差滲みとして認識されるならば、−1にセットされる。
滲みレコードの次のバイトは、Y座標(X)およびそ
の時の滲みの各スライス毎の巾(W)を含む。必要に応
じて、当該滲みレコードに対して要求され得る次の64バ
イトの領域の初めのアドレスを指示する滲みレコードの
各64バイト領域の終りにリンク・ポインタが設けられ
る。
台形レコードを以下に示す。
上記の台形レコードは、いくつの台形がこの特定の台
形レコードに格納されるかを示すカウント・ポインタ
「trap cnt」をその最初のバイトに保有する。従って、
レコード・タイプはコード03により示される。下方のポ
インタ「ptr down」および上方ポインタ「up ptr」は、
上記の滲みレコードにおけるものと正確に同じ意味の台
形レコードを持つ。各々が他のものと1つの縁部を共有
する限り、多数の台形を1つの台形レコードに格納する
ことができる。台形レコードの2番目に示された64バイ
トの領域における「充填(フィル:fill)」ポインタ
は、現在使用されない。ベクトル・テーブルのポインタ
「VECGワーク」は、上記の滲みレコードと同じ意味を持
つ。台形レコードにおける残りのエントリは、各台形の
4つの隅部のXおよびY座標を構成する。
特定の対象に対する発散レコードの一例を以下に示
す。
発散レコードの最初のバイトは、この特定の発散レコ
ードにより表わされる発散から発散する滲みまたは台形
の数を示すポインタ番号「ptr #」を含む。コード01
は、その時のレコードが発散レコードであることを示
す。次に、初めのポインタ「beg ptr」は、他の滲みお
よび(または)台形が発散する滲みを表わす滲みまたは
台形のレコードのアドレスを指示する。終りのポインタ
「end ptr」は、問題の滲み(他の台形および(また
は)滲みが発散する)が64バイト以上のメモリー領域を
要求しなければ、初めのポインタと同じである。この場
合、終りのポインタは当該64バイトの領域の初めを指示
する。
発散レコードの次の2つのバイトは、その時の発散が
生じるスライスのXおよびYの座標、即ちx0,y x1,yを
含む。走査線が水平であるため、この2つのY座標が同
じであることに注意されたい。座標x0およびx1は前記ス
ライスの終端点を定義する。発散テーブルにおける次の
エントリは、複数の対の初めのポインタおよび終りのポ
インタを含む。各対の初めのポインタは、その時の発散
点から発散する滲みまたは台形のアドレスを指示する。
いずれの場合も、64バイト以上のメモリー領域が指示さ
れる滲みに対して要求されなければ、終りのポインタは
初めのポインタと同じものであり、この場合終りのポイ
ンタは滲みレコードまたは台形レコードが続く64バイト
のメモリー領域の初めを指示する。
収束レコードは、コードが02であることを除いて、発
散レコードと似ている。収束レコードの一例を以下に示
す。
次に第1図の説明に戻って、もしブロック1Aの判定が
否定ならば、その時の対象のこれ以上の分岐が処理され
る必要がある。プログラムはブロック1Bへ進み、交差ポ
インタを適当な収束レコードまたは発散レコードのアド
レスにセットし、次いで判断ブロック1Cへ進む。判断ブ
ロック1Cにおいては、プログラムは、交差ポインタによ
り指示されるその時の交差の全ての分岐が処理されたか
どうかを判定する。この判定は、上記発散または収束レ
コードを照明することにより行なわれる。
もし判断ブロック1Cの判定が否定ならば、ベクトル化
プログラムはブロック1Dに進み、第1B図のサブルーチン
を実行することにより次の滲みまたは台形のレコードを
取出す。しかし、もしブロック1Cの判定が肯定ならば、
通常は交差ポインタを増分することが必要となる。プロ
グラムはブロック1Eへ進み、その時の発散または収束レ
コードを「処理済み」とマークし、次いで判断ブロック
1Fへ進む。
ブロック1Fの判定について述べる前に、走査されつつ
ある書類に細い線が描かれることが意図されるものが一
本の濃い線であるべき細い白の間隙を持つような状況が
存在し得ることを理解すべきである。ベクトル化プログ
ラムにとっては、このような白い間隙の結果として理論
的に形成され得る交差を認識することは望ましくないこ
とである。これを避けるために、判断ブロック1Fは、そ
の時の発散または収束の分岐の処理が多数の水平でない
ベクトルの生成をもたらす結果となったかどうかを判定
する。もしそうであれば、交差カウンタを増分しなけれ
ばならない。これは、ブロツク16において行なわれ、プ
ログラムは判断ブロック1Aへ戻る。
しかし、もしブロック1Fの判定が否定ならば、これは
多数の水平ベクトルが生成されたことを意味する。この
ことは、間に白の間隙がある多数の水平線が存在する場
合に対応する。もしそうであれば、交差カウンタを増分
することは望ましくなく、プログラムは判断ブロック1A
へ直接戻る。
第1B図について詳細に説明する前に、ブロック1Dに従
って取出されるレコードまたはレコードのグループの種
類に対して多くの可能性があることを理解すべきであ
る。例えば、次のレコードは、かなり異なる長さの多数
のスライスの後に台形が続き、その後の別の多数のスラ
イス(即ち、滲み)または別の台形が続く滲みレコード
であり得る。
次に第1B図において、次の滲みまたは台形のレコード
を取出するためのサブルーチンにラベル200で入り、最
初に判断ブロック201に進んで次のレコードが滲みレコ
ードであるかどうかを判定する。もしそうであれば、サ
ブルーチンはブロック202へ進み、その時のレコードか
らデータの次のスライスを読出して(これをバッファに
格納し)、判断ブロック203へ進んでレコードの終りに
前記スライスが存在するかどうかを判定する。もしその
時のスライスがその時のレコードの終りに存在しなけれ
ば、サブルーチンは判断ブロック204へ進み、次のスラ
イスの長さがその時のスライスと大きく異なるかどうか
を判定する。もしブロック204の判定が否定ならば、サ
ブルーチンはブロック202へ戻り、次のスライスを読出
す。しかし、もし次のスライスの長さがその時のスライ
スの長さと大きく異なるならば、サブルーチンはブロッ
ク215へ進み、その時の滲みレコードにより表わされる
形状の平均スライス長さのその高さに対する比率を計算
し、第1図のベクトル化プログラムへ戻る。ブロック21
5における比率は、その時の滲みが実質的水平であるか
どうかを示す。
もし判断ブロック203の判定が肯定ならば、サブルー
チンはブロック205に示されるようにその時の滲みレコ
ードをマークしてこれが処理されたことを表示し、判断
ブロック209へ進む。ブロック209においては、サブルー
チンは、その時の滲みレコードが同じ単純な形状を表わ
す別のレコードを指示するかどうかを判定する。もしそ
うでなければ、サブルーチンはブロック215へ進み、そ
の時の形状の前に述べた平均スライス長さの高さに対す
る比率を計算し、主スペクトル化プログラムへ戻る。も
しブロック209の判断が肯定ならば、サブルーチンはブ
ロック210へ進み、次のレコードが滲みレコードである
かどうかを判定する。もしそうであれば、サブルーチン
はこれからデータの最初のスラストを読出し、判断ブロ
ック213へ進む。もし次の指示されたレコードが台形で
あれば、台形データの最初の部分がブロック211に示さ
れるようにこれから読出され、サブルーチンは次にブロ
ック213へ進む。ブロック213においては、レコード取出
しサブルーチンが、スライス(バッファにあるもの)の
長さが次のスライスの長さと著しく異なるかどうかを判
定する。もしこの判定が肯定ならば、サブルーチンはブ
ロック215へ進み、その時の形状の巾対高さの比率を計
算し、主ベクトル化プログラムへ戻る。さもなければ、
サブルーチンはブロック201へ戻る。
もしブロック201の判定が否定ならば、取出されたレ
コードは台形レコードである。サブルーチンはブロック
206へ進み、台形レコードからデータの最初の部分を取
出し、ブロック207へ進み、台形レコードのその終りに
達したかどうかを判定する。もしそうであれば、ブロッ
ク205に示されるように台形レコードが処理されたこと
を示すようマークされて、サブルーチンは前に述べたブ
ロック209へ進む。
もし台形レコードから読出されたその時のデータがレ
コードの終りになければ、サブルーチンは判断ブロック
208へ進み、次のスライスの長さがその時のスライスと
大きく異なるかどうかを判定する。もしそうでなけれ
ば、サブルーチンはブロック206へ戻り、台形レコード
からデータの次のグループを読出す。さもなければ、サ
ブルーチンはブロツク215へ進み、その時の台形の高さ
に対する巾の比率を計算し、主ベクトル化プログラムへ
戻る。(各スライスの「長さ」が水平方向における長さ
であることに注意すべきである。用語「次のスライス」
はまた、もしそ時の形状が滲みではなく台形の最上位に
関するものであれば、次の台形の最上位の巾すなわち水
平の大きさと対応する。) 次に第1図に戻って、プログラムは判断ブロック6へ
進み、第1B図のブロック215において計算された巾対高
さの比率についてのテストを行なつてその時の滲みまた
は台形が水平であるかどうかを判定する。
判断ブロック6の判定が肯定ならば、プログラムはブ
ロック7へ進み、以下に述べる第1C図のサブルーチンに
従って、2つの終端点の座標およびベクトルの巾を含む
水平のベクトルを生成する。次いでプログラムはブロッ
ク8へ進み、第3図に関して詳細に述べる「エンティテ
ィの生成およびデセグメント(セグメント統合)化」サ
ブルーチンを実行する。
第1B図のラベル200に関しては、サブルーチンが全て
が対象の1つの「分岐」を形成する一連の繋がったレコ
ードを取出すことができることに注意すべきである。
もし第1図の判断ブロック6の判定が否定ならば、ベ
クトル化プログラムはブロック9へ進み、その時の滲み
レコードまたは台形レコードにおけるデータの「前後の
縁部」をベクトル化する。次いで、プログラムは判断ブ
ロック10へ進み、その時の形状が「複雑」であるかどう
かを判定する。判断ブロック10がその時の形状が「複
雑」であるかどうかを判定する手法は、前縁部ベクトル
か後縁部ベクトル(ブロック9において決定される)の
いずれかの異なる部分間の角度を測定することであり、
前縁部または後縁部の異なる部分が直線からあまりにも
離れているかどうかを判定する。例えば、2つの前縁部
ベクトル間の角度が90゜よりも小さければ、形状は複雑
であると見做すことができ、ブロック10の判定は肯定と
なる。もしその時の滲みまたは台形が複雑であるなら
ば、プログラムはブロック11へ進み、複雑な形状の次の
簡単な部分を選択してブロック12へ進む。
例えば、抵抗に対する略図記号は複雑な形状である。
もしこの形状が複雑でないと判断されるならば、プログ
ラムは判断ブロック10から直接ブロック12へ進む。ブロ
ック12においては、ベクトル化プログラムが第2図の形
状認識サブルーチンを呼び出す。
ここで、ラベル12Aで入る第2図の形状認識サブルー
チンについて述べるのが好都合であろう。要約すれば、
このサブルーチンは、その時の滲みレコードまたは台形
レコードから得たその時の簡単な形状が弧であるか、
「交差滲み」であるか、充填された円であるか、垂直方
向のベクトルか、対角方向のベクトルか、あるいは充填
された多角形であるかの認識機能を行なう。第1に、こ
の形状認識サブルーチンはブロック36へ入り、その時の
滲みまたは台形(第1図のブロック9により判定され
る)の前および後の縁部の各ベクトルのどれが最も長い
かを判定する。この形状認識サブルーチンは次にブロッ
ク37へ進み、最も長い前および後の縁部ベクトルと略々
同じ長さを持つ前および後の縁部ベクトルの数をそれぞ
れ判定する。次いでプログラムは判断ブロック38へ進
み、その時の滲みまたは台形の前または後の縁部の双方
が類似の長さの多数のベクトルを含むかどうかを判定す
る。もし判断ブロック38の判定が肯定ならば、その時の
形状に対して3つの異なる可能な形態が存在し、従って
形状認識サブルーチンは判断ブロック39へ進む。上記の
3つの可能性の事例は第13図に示され、照合番号134,13
5および136により示される。形状135および136は「略々
水平」と見做され、各々は最大長さに略々等しい同じ長
さの多数のベクトルを含む前縁部/後縁部を有する。形
状134は略々水平であると見做されない。
もしその時の形状が第13図の形状134と似ているなら
ば、第2図のブロック39の判定は否定となる。形状認識
サブルーチンは次に、その時の形状が「弧のベクトル」
であると認識して、ブロック40に示されるように弧のコ
ードを生成し、次いでラベル50を経て第1図に戻る。弧
のベクトルは弧を略々画成する繋がった線のベクトルの
ストリングを構成し、このようなベクトルは類似の長さ
であり、似た角度で交差する。もし判断ブロック39の判
定が肯定であるならば、即ち形状が略々水平であるなら
ば、その時の形状は第13図の形状135または形状136と類
似していなければならない。
次いでプログラムは判断ブロック41へ進み、その時の
形状の前縁部および後縁部の双方が凸であるかどうかを
判定する。もしそうであれば、形状は第13図の形状136
のそれと類似しており、その時の簡単な形状は「充填さ
れた円」であると見做される。次いで形状認識サブルー
チンはブロック43へ進み、「充填された円のコード」を
生成し、戻りラベル50を経て第1図へ戻る。もしその時
の形状が凸でなければ、それは凹でなければならず、そ
の時の簡単な形状は、交差滲みである第13図の形状135
と類似していなければならない。この時サブルーチンは
ブロック42において「交差滲みコード」を生成し、ラベ
ル50を経て第1図へ戻る。
もし判断ブロック38の判定が否定である、即ちその時
の簡単な形状の前および後の縁部における類似の長さの
多数のベクトルが存在しなければ、プログラムはブロッ
ク44へ進み、前縁部の最も長いベクトルと後縁部の最も
長いベクトルとの間の角度を計算する。次に、サブルー
チンは判断ブロック45へ進み、前縁部の最も長いベクト
ルが後縁部の最も長いベクトルと平行であるかどうかを
判定する。もしこの判定が肯定ならば、その時の簡単な
形状は垂直方向のベクトルか対角方向のベクトルのいず
れかにより近似化することができる。認識サブルーチン
は判断ブロック47へ進み、その時の簡単な形状の前およ
び後の縁部の一方のX座標が等しいかどうかを判定す
る。もしそうであれば、その時の形状は垂直方向のベク
トルであり、サブルーチンはブロック48へ進み、「垂直
方向のベクトル・コード」を生成し、ラベル50を経て第
1図へ戻る。判断ブロック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,16,17および18のサブルーチンを生成する充填
形状コードについては後に述べる。) 一旦充填された形状データまたは弧のベクトル、垂直
方向ベクトル、対角方向ベクトル、あるいは水平方向ベ
クトル(第1図のブロック7)が生成されると、第3図
のエンティティ生成およびデセグメント化サブルーチン
が呼出される。要約すれば、エンティティ生成およびデ
セグメント化サブルーチンの目的は、(1)第1図のサ
ブルーチン16,17および18により生成される「入力ベク
トル」の「ベクトル・テーブル」へのエントリを行なう
こと、およびサブルーチン13および14により生成された
「充填された形状データ」の「充填された形状テーブ
ル」へのエントリを行なうこと、および(2)これらサ
ブルーチンにより新しい「入力ベクトル」または「充填
された形状データ」の各々が生成される時、これをベク
トル・テーブルまたは充填された形状テーブルの内容と
比較してその時の入力ベクトルまたは充填された形状デ
ータがこのようなテーブルに既に格納されたいずれかの
ベクトルあるいは充填された形状と便利に組合せること
ができるかどうかを判定し、もしそうであれば、この
「格納されたベクトル」または「充填された形状」をそ
の時の入力ベクトルまたは形状を含むように更新するこ
とによりこれらと組合せることである。最初の手順は
「エンティティ生成」と呼ばれ、入力ベクトルまたは充
填された形状を格納されたものを組合せる手順は「デセ
グメント化」と呼ばれる。
次に第3図においては、エンティティ生成および非セ
グメント化サブルーチンにラベル19Aを経て入り、最初
に判断ブロック56へ進む。次いで、サブルーチンは、第
1図のサブルーチン13,14または16〜18の1つからその
時の「入力」は充填された円、充填された多角形を定義
する「形状データ」であるかどうか、あるいは弧のベク
トル、対角方向のベクトル、垂直方向のベクトル、ある
いはまた水平方向のベクトルの類似の「ベクトル」であ
るかどうかを判定する。もしその時の入力が「形状デー
タ」であれば、第3図のブロック56の判定は否定とな
り、エンティティ生成およびデセグメント化サブルーチ
ンは判断ブロック57へ進み、形状が充填された多角形で
あるかどうかを判定する。
もしブロック57の判定が肯定ならば、サブルーチンは
ブロック57Aへ進み、後で説明する第14図の充填多角形
デセグメント化サブルーチンを実行する。サブルーチン
は次に判断ブロック57Bへ進み、充填多角形を充填形状
テーブルに既にあるものとデセグメント化即ち組合せが
生じたかどうかを判定する。もしこの判定が否定なら
ば、ブロック57Cに示されるように、充填多角形は充填
形状テーブルに対する新しいエントリとして入られねば
ならない。次いでサブルーチンは戻りラベル52を経て第
1図へ戻る。ブロック57Bの判定が肯定ならば、充填多
角形は充填された形状テーブルに既に格納された充填多
角形と組合されるかあるいは加算される。次にサブルー
チンはラベル62を経て第1図に戻る。ブロック57Bのテ
ストは、組合せフラッグがセツトされるかどうかであ
る。
ブロック57Cは、ブロック57の判定が否定ならば、入
力データが充填形状テーブルに入れられることを示す。
次に、サブルーチンは第1図の主プログラムへ戻る。
もし判断ブロック56に対するその時の入力がベクトル
であれば、これは「入力ベクトル」と呼ばれる。この入
力ベクトルは入力バッファに格納される。この時、サブ
ルーチンはブロック58へ進み、前記入力ベクトルが弧の
ベクトルであるかどうかを判定する。もし判断ブロック
58の判定が肯定ならば、サブルーチンはブロック60へ進
み、第5図の「弧のデセグメント化」サブルーチンを実
行する。反対に、もしこの判定が入力ベクトルが弧のベ
クトルではないことであれば、サブルーチンはブロック
59へ進み、第4図の「線のデセグメント化」サブルーチ
ンを実行する。
後で更に詳細に説明するように、第5図の弧のデセグ
メント化サブルーチンおよび第4図の線のデセグメント
化サブルーチンの双方は、最初に「組合せ」フラッグを
リセットし、次いでもし入力された線ベクトルまたは弧
のベクトルがベクトル・テーブルに既に格納されたベク
トルと組合せることができるならば、この組合せフラッ
グを「1」にセットする。もしこの組合せフラッグが第
4図の線のデセグメント化サブルーチンまたは第5図の
弧のデセグメント化サブルーチンのいずれかの終りに
「セット」されるならば、このことは、その時入力バッ
ファに入った入力ベクトルがベクトル・テーブルに既に
格納されていたベクトルと組合せ可能であることを意味
し、新しい「エンティティ」としてのその時の入力ベク
トルのエントリは必要でない。しかし、もし組合せフラ
ッグが依然として線のデセグメント化または弧のデセグ
メント化サブルーチンの終りでリセットされるならば、
これは、その時の入力ベクトルが既にベクトル・テーブ
ルに格納されたベクトルと組合せできないことを意味
し、従ってその時の入力ベクトルをベクトル・テーブル
に入れることにより新しい「エンティティ」が生成され
ることが必要となる。
第4図の線のデセグメント化サブルーチンまたは第5
図の弧のデセグメント化サブルーチンのいずれかが実行
された後、デセグメント化が可能であるならば組合せフ
ラッグは「1」にセットされ、あるいはデセグメント化
が不可能であるならばその「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つの弧のベクトルを形成するように組
合せることができない。例えば、第9図において、入力
ベクトル151Aは格納ベクトル151Bよりも充分に短いた
め、これら2つは1つの弧のベクトルの一部を形成する
ように組合せてはならない。弧のベクトル151Cと線のベ
クトル151Bとの間の角度は、これら2つを1つの弧のベ
クトルに組合せるには鋭過ぎる。
次に、サブルーチンは判断ブロック94へ進み、計算さ
れた長さが入力ベクトルの格納ベクトルとの組合せを許
すに充分なだけ類似しているかどうかを判定する。もし
この判定が肯定ならば、弧のデセグメント化サブルーチ
ンは終り、この判定が肯定ならば、ブロック95へ進む。
弧の入力ベクトルおよび格納ベクトルの交差角度の第
5図のブロック95における計算の事例が第12図において
示されており、同図においては、照合番号137はその時
の入力された弧のベクトルを示し、138は格納されたベ
クトルを示し、照合番号139は計算された角度を示して
いる。
次に、弧のデセグメント化サブルーチンは判断ブロッ
ク96へ進み、前記角度が「あまり鋭過ぎる」角度である
か、即ち直線からあまり離れ過ぎるかどうかを判定す
る。この時、もしこの角度が約90゜より小さければ、入
力ベクトルは格納ベクトルと組合せることができず、弧
のデセグメント化サブルーチンはラベル101を経て終
る。
もしこの角度が鋭過ぎなければ、プログラムはブロッ
ク97へ進み、組合されたベクトルが凸であるかどうかを
判定する。これは、第11図に示されたテストを行なうこ
とにより行なわれ、同図においては入力された弧のベク
トルはベクトル140,141,142および143からなっている。
ベクトル144または145は格納されたベクトルでよい。凸
であることの判定は、実際には、提供される弧のベクト
ルの1つおきの2つの交差点間に線を引くことにより行
なわれ、もし各対の隣るベクトル間の交差点が線の同じ
側に止まるならば、提供された組合せベクトルは凸であ
るが、さもなければ凸でない。例えば、格納されたベク
トルが第11図の線145を表わすならば、交差点146,147,1
48および149が全てそれぞれ点線150,151,152および153
の左方にあるため形状は凸である。しかし、もし格納ベ
クトルが第11図の線144により表わされるならば、交差
点149が点線154Aの左方にないため凸ではない。
凸であることが第5図のブロック97において判定され
た後、弧のデセグメント化サブルーチンは判断ブロック
98へ進み、この時の入力ベクトルおよび格納ベクトルが
1つの凸の形状を形成するかどうかを判定する。もしこ
の判定が否定ならば、サブルーチンからラベル101を通
って出る。もしブロック98の判定が肯定ならば、弧のデ
セグメント化サブルーチンはブロック98Bへ進み、凸の
形状の「円度」を計算し、判断ブロック98Aへ進み、入
力ベクトルおよび格納ベクトルが円弧を形成するかどう
かを判定する。もしこの判定が否定ならば、サブルーチ
ンラベル101を経て戻る。もしこの判定が肯定ならばサ
ブルーチンはブロック100へ進み、組合せフラッグを
「1」にセットすることによりこの時の入力ベクトルが
格納ベクトルと組合せ可能であることを示す。次いで、
弧のデセグメント化プログラムはラベル100を経て第3
図のエンティティ生成およびデセグメント化サブルーチ
ンへ戻る。
第4図の線のデセグメント化サブルーチンにはラベル
59Aを介して入る。最初のステップは、ブロック59Bに示
されるように組合せフラッグをリセットすることであ
る。次いで、線のデセグメント化サブルーチンは判断ブ
ロック66へ進み、この時の入力された線のベクトルが開
放点において始まり、収束または発散点で終るかどうか
を判定する。例えば、もしこの時の入力ベクトルが第6
図の台形112を表わすならば、これは開放点130で始まり
収束点で終り、その結果判定は肯定となる。もしそうで
あれば、線のデセグメント化サブルーチンは第3図のブ
ロック63へ戻り、ベクトル・テーブルにおける新しいエ
ンティティとして台形122を表わすベクトルを入れる。
もし判断ブロック66の判定が否定ならば、線のデセグ
メント化サブルーチンは判断ブロック68へ進み、その時
の入力ベクトルが交差領域にあるかどうかを判定する。
「交差領域」は、収束から発散への下方に進む形状であ
ると定義される。この定義を、第10図に示されるものの
同様に円の迅速な効率的なデセグメント化を行なうため
に提供することが好都合であると判った。例えば、第10
図に示される円をデセグメント化する際、最初の入力ベ
クトルは点線156により形状155および159から分離され
る形状154を表わすものとなろう。判断ブロック66から
の「肯定」の判定は、この事例において得られよう。こ
の時、線のデセグメント化サブルーチンが形状154を表
わすベクトルと対応するベクトル・テーブルにおける新
しいエンティティを生成する。第10図において走査され
る次の形状は形状155であろう。交差領域が収束から発
散に対し下方に進むという判定は、形状155が発散から
収束へ下方に進む故に、形状155が交差点にはないこと
を明瞭にする。
第4図の判断ブロック68の判定が肯定ならば、線のデ
セグメント化サブルーチンはブロック69へ進み、入力ベ
クトルの長さを計算し、次いで判断ブロック70へ進み、
この長さが1つのベクトルであるためには短か過ぎる
(例えば、50ピクセル、即ち約2.54mm(100ミル)より
短い)かどうかを判定する。もしこの判定が否定なら
ば、サブルーチンはベクトル・テーブルにおける新しい
エンティティとしてその時の入力ベクトルを入れる(第
3図のブロック63参照)。さもなければ、プログラムは
単に判断ブロック70から第3図へ戻る。
第4図のブロック68の判定が否定ならば、サブルーチ
ンは判断ブロック71へ進み、その時の入力ベクトルが収
束で始まり開放点で終るかどうかを判定する。例えば、
第10図に示される形状157は収束で始まり開放点で終
り、従って肯定の判定をもたらす結果となろう。
判断ブロック71の判定が肯定ならば、線のデセグメン
ト化サブルーチンはブロック72へ進み、入力ベクトルの
長さを計算する。もしこの長さが短か過ぎる(即ち、2.
54mm(10ミル)より小)ならば、サブルーチンは戻りリ
ストラベルを経て終る。判断ブロック71または73の判定
が否定ならば、サブルーチンは判断ブロック74へ進む。
判断ブロック74においては、線のデセグメント化サブ
ルーチンは、ベクトル・テーブルにおけるベクトルがそ
の時の入力ベクトルと同じ交差数を持つかどうかを判定
する。もしこの判定が否定ならば、この入力ベクトルを
格納ベクトルと組合せることが不可能であり、このため
サブルーチンは第3図のブロック63へ進み、その時の入
力ベクトルを新しいエンティティとしてベクトル・テー
ブルに入れ、戻りラベルを経て第3図へ戻る。さもなけ
れば、サブルーチンは判断ブロック74から判断ブロック
75へ進み、その時の交差数を持ち格納されたベクトルが
弧のベクトルであるかどうかを判定する。もしこの判定
が肯定ならば、サブルーチンはブロック76へ進み、第5
図の弧のデセグメント化サブルーチンを実行する。
もし格納されたベクトルが弧のベクトルでなければ、
これは線のベクトルであり、線のデセグメント化サブル
ーチンがブロック78へ進み、格納ベクトルおよび入力ベ
クトルの2つの最も近い終端点を見出す。例えば、第7
図において、もし線161が入力ベクトルを示し線162が格
納ベクトルを示すならば、点163および164は入力ベクト
ルおよび格納ベクトルの2つの最も近い終端点となる。
同様に、167および168は入力ベクトル165および格納ベ
クトル166の2つの最も近い終端点である。
次に、サブルーチンはブロック79へ進み、上記の最も
近い終端点間のオフセット、および入力ベクトルと格納
ベクトルの外端点間に引かれた点線169(第7図)の如
き直線を計算する。入力ベクトル161および格納ベクト
ル162については、これらが直線に沿って位置すること
が明瞭であり、従って2つの最も近い終端点163および1
64のオフセットがない。しかし、入力ベクトル165およ
び格納ベクトル166は完全には整合されず、最も近い終
端点167,168と直線169間の距離170は計算されたオフセ
ット量である。
次いで、線のデセグメント化サブルーチンは判断ブロ
ック80へ進み、第7図における計算されたオフセット量
を閾値と比較して、入力ベクトルが格納ベクトルと組合
せることができるかどうかを判定する。もしこの判定が
否定ならば、入力ベクトルはブロック63(第3図)にお
いて新いいエンティティとして入れられる。もし判断ブ
ロック80の判定が肯定ならば、サブルーチンはブロック
82へ進み、組合せフラッグを「1」にセットすることに
より、その時の入力ベクトルが格納ベクトルと組合せる
ことができることを示し、次いで戻りラベルを経て第3
図へ戻る。
第1図の主ベクトル化プログラムが種々のレコードに
おけるデータからのベクトル・テーブルおよび(また
は)充填された形状を充填した後、肯定の判定が判断ブ
ロック1Aにより生じ、プログラムは第1A図のブロック20
Aに示されるように第15図の終端点拡張サブルーチンを
実行する。この終端点拡張サブルーチンの目的は、ベク
トル・テーブルにおける他のベクトルの終端点または他
の部分と繋がれるべきベクトル・テーブルのベクトルの
終端点を拡張することである。上記のベクトル化プロセ
スが線のベクトルまたは弧のベクトルにより表わされる
種々の繋がった形状の厚さによって生じる間隙をもたら
す結果となることを理解すべきである。即ち、1つの形
状を表わす線のベクトルは、しばしば第2の線のベクト
ルにより表わされる他の形状の厚さの略々半分だけ拡張
されねばならず、その結果第1の線のベクトル終端点は
第2の線のベクトルの終端点と触れることになる。
次に第15図においては、前記の終端点拡張サブルーチ
ンにはラベル330を経て入り、判断ブロック331へ進む。
ブロック331においては、サブルーチンは、上記のタイ
プの間隙を充填するため拡張される必要がある終端点を
持つベクトル・テーブルの他のベクトルが存在するかど
うかを判定する。もしそうでなければ、サブルーチンは
第1A図へ戻る。もしブロック331の判定が肯定ならば、
サブルーチンはブロック332へ進み、初期値を「線の」
フラッグにセットし、次いで判断ブロック333へ進む。
ブロック333においては、サブルーチンはバッファに対
して取出された「その時のエンティティ」と呼ばれる次
のベクトルが2つ以上のベクトルを含むかどうかを判定
する。即ち、ブロック333は、その時のベクトルが弧の
ベクトルであるかどうかを判定する。もしそうであれ
ば、サブルーチンはブロック334における線のフラッグ
をクリアし、判断ブロック335へ進む。もしその時のエ
ンティティが線のベクトルであれば、サブルーチンはブ
ロック335へ直接進む。
ブロック335においては、サブルーチンは、その時の
エンティティ即ちその時入力バッファにある線のベクト
ルまたは弧のベクトルと同じ交差数を持つ格納ベクトル
がこれ以上ベクトル・テーブルに存在するかどうかを判
定する。もしそうでなければ、サブルーチンは、ブロッ
ク331へ戻る。もしブロック335の判定が肯定ならば、サ
ブルーチンは判断ブロック336へ進み、その時の交差数
を持つ格納されたベクトルが弧のベクトルであるかどう
かを判定する。もしそうでなければ、サブルーチン判断
ブロック338へ進む。もし格納されたベクトルが弧のベ
クトルならば、サブルーチンはブロック337において線
のフラッグをクリアし、ブロック338へ進む。
ブロック338においては、サブルーチンが線のフラッ
グをテストする。もし線のフラッグがセットされなけれ
ば、このことは、同じ交差数を持つ入力ベクトルおよび
格納ベクトルの一方が弧のベクトルであることを意味す
る。プログラムはブロック341へ進み、それらの終端点
が約50ピクセルよりも近いかどうかを判定する。この判
定が否定ならば、サブルーチンはブロック335へ戻る。
もし入力ベクトルおよび格納ベクトルの終端点が約50ピ
クセルよりも近ければ、サブルーチンはブロック342へ
進み、2つのベクトルの張出した交差点を計算し、ベク
トル・テーブルを更新してベクトルの最も近い終端点が
交差するようにこれらベクトルを拡張する。サブルーチ
ンは次にブロック331へ戻る。
ブロック338の判定が肯定ならば、このことは、対象
となる2つのベクトル双方が線のベクトルであることを
意味し、サブルーチンはブロック339へ進み、入力ベク
トルおよび格納ベクトルの終端点の内の2つが約50ピク
セルより近くにあるかどうか判定する。もしそうであれ
ば、サブルーチンはブロック342へ進み、この2つのベ
クトルが交差するように終端点を拡張する。もしこの2
つの終端点が充分に近くなければ、サブルーチンはブロ
ック340へ進み、この2つの線のベクトルの一方の終端
点が他の線のベクトルの他の部分に対して約50ピクセル
より近いかどうかを判定する。もしそうでなければ、サ
ブルーチンはブロック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座標を計算し(ブロック2
23)、最上位のY座標から最下位のY座標を減算するこ
とにより水平方向のベクトルの厚みを計算し(ブロック
224)、水平方向ベクトルに対する最小の左縁部のX座
標および最大の右縁部のX座標を得る(ブロック225)
ことである。これによりこれらの座標は、水平方向ベク
トルの左端部の座標および右端部の座標を提供し、ブロ
ック226において入力バッファに対してロードされる。
次に第1D図においては、このサブルーチンは第1図の
ブロック18によって呼出される。この場合、水平方向で
ないベクトルについては、サブルーチンが第1図のバッ
ファ9においてベクトル化されるべき形状の前(左)方
および後(右)方の縁部をベクトル化する。基本的に
は、このサブルーチンは単に垂直方向の形状の上縁部の
中間点(ブロック231)、垂直方向の形状の下縁部の中
間点(ブロック233)、垂直方向の形状の巾(ブロック2
25)を計算して、垂直方向の形状の上下の中間点および
巾の座標を入力バッファに入れる(ブロック236)。
第1E図は第1図のブロック17により呼出される対角方
向のベクトルを生成するステップを示している。このサ
ブルーチンの動作は第16図を参照すれば最もよく理解す
ることができ、同図においては、対角方向の形状401
が、第1図のブロック9においてベクトル化された最も
長い前縁部402と比較的短い前縁部405とを有し、これま
た第1図のブロック9においてベクトル化された最も長
い後縁部403と比較的短い後縁部404とを有する。第1E図
の対角方向ベクトル生成サブルーチンは、点411Aおよび
414を通る直線における終端点406,409の直角方向の張出
しを計算する。即ち、このサブルーチンは、張出し点40
7および410を計算し、次いで点406と407間の中間点408
を計算し、点409と410間の中間点411を計算する。上下
の端部における形状の厚みもまた計算される。これらの
ステツプは、第1E図のブロック241および243において行
なわれる。次に、最も長い後縁部ベクトル403の終端点
を点406および409を通る直線に伸ばす。即ち、点411Aは
点412まで張出され、その中間点413が計算される。同様
に、点414は点415まで張出され、対応する中間点416が
計算される。対応する形状の厚みもまた計算される。こ
れらのステップは、第1E図のブロック245および247にお
いて行なわれる。次いで、4つの中間点の最も長いベク
トル、即ち中間点408と411間のベクトルが決定される。
このステップは、ブロック249において行なわれる。対
角方向の形状の平均厚みはブロック250において計算さ
れる。次いで、第1E図のブロック251に示されるよう
に、対角方向のベクトルの座標を入力バッファに入れ
る。即ち、点411および408の座標および平均の計算され
た厚みが入力バッファに対して入れられる。
次に、第1図のブロック16により呼出される第1F図に
おいては、第1図のブロック9が複合弧ベクトルの前後
の縁部をベクトル化する。第1F図のブロック261は、弧
のベクトルの上下端部のY座標値を読出し、第1F図のブ
ロック261および263に示されるように、弧のベクトルの
各スライスの中間点を計算する。次いで、サブルーチン
は、第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図の「削除」サブ
ルーチンを呼出し、これを実行して、第1G図へ戻る。
基本的には、第14B図のサブルーチンが行なうこと
は、充填多角形レコードの3つの連続する頂点が充分に
直線状の線を画成して中間の頂点を充填多角形レコード
から削除することを許すかどうかを判定することであ
る。これを達成するために、削除サブルーチンが、ブロ
ック322に示されるように充填多角形レコードから3つ
の連続する頂点を読出して、ブロック323へ進む。充填
多角形レコードの終りに達すると、サブルーチンは第1G
図へ戻り、さもなければ、ブロック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図へ戻る。ブロック29
1の決定が肯定ならば、サブルーチンはブロック292の上
部の充填多角形の最も下方の点を決定し、ブロック293
へ進み、上部多角形の最下点に水平の縁部が存在するか
どうかを判定する。もしこの決定が否定ならば、組合せ
なしのフラツグがブロック301にセットされる。ブロッ
ク293の決定が肯定ならば、サブルーチンはブロック294
へ進み、下方の充填多角形の最上点を見出し、判断ブロ
ック295へ進み、この点に水平の縁部があるかどうかを
判定する。もしそうでなければ、サブルーチンはブロッ
ク301へ進む。ブロック295の決定が肯定ならば、サブル
ーチンはブロック296へ進み、対象となる両方の充填多
角形の全ての頂点を含む「組合される充填多角形レコー
ド」を生成する。次いで、サブルーチンはブロック297
へ進み、直線が形成されるならば、組合せ接合点に沿っ
て位置する点を削除する。このサブルーチンは次にブロ
ック298へ進み、第14A図の減少サブルーチンを呼出して
できるだけ多く頂点を削除し、ブロック299へ進み、組
合される多角形の頂点数が最大数、例えば7を越えるか
どうかを判定する。もし組合される充填多角形レコード
において7つ以上の頂点が存在するならば、サブルーチ
ンはブロック301へ進み、組合せなしのフラッグをセッ
トして戻る。しかし、組合される充填多角形レコードに
おける頂点数が7以下であれば、ブロツク300において
組合される充填多角形データが組合される充填多角形レ
コードから入力バッフアへ送られ、サブルーチンは第3
図に戻る。
次に、第1図のプログラムがいかにして第6図および
第10図に示される形状をベクトル化するかを更に示すい
くつかの事例を挙げる。第6図に示される形状は下記の
如くベクトル化される。第1に、ベクトル化プログラム
は、第1図の判断ブロック1Dを通り、第1B図のサブルー
チンを実行することにより、台形112の上縁部130が最も
上位の点であるためこの台形の台形レコードを取出し、
その高さ対巾の比率を計算する。上記の交差カウンタが
最初に1セットされ、台形112が前に処理されなかった
ため1に止まる。次にプログラムは判断ブロック6に進
み、台形112水平でないことを判定し、ブロック9にお
いて、その前後の縁部をベクトル化する。ブロック10に
おいては、台形112が複雑な形状ではないことが判定さ
れる。次いでプログラムは第2図の形状認識サブルーチ
ンへ進み、前縁部の最も長いベクトルが前縁部であり、
後縁部の最も長いベクトルが後縁部であることを判定す
る。
第2図のブロック37においては、形状認識サブルーチ
ンが前縁部または後縁部のいずれかの最も長いベクトル
と似た長さの別のベクトルが存在しないことを判定し、
従って判断ブロック38において否定の判定を行なってブ
ロック44へ進み、ここで形状認識サブルーチンが台形11
2の前後の縁部間の角度を計算し、次いで判断ブロック1
12において台形112の前記の縁部が平行であることを判
定する。次いで形状認識サブルーチンは判断ブロック47
へ進み、前後の縁部が垂直方向でないことを判定し、次
いでサブルーチン49において台形112が対角方向のベク
トルにより表わされるべきことを示すコードを生成す
る。
プログラムは第1図に戻り、前記対角方向ベクトル・
コードを用いて第1E図のサブルーチンを呼出し、台形11
2を表わす対角方向ベクトルを生じる。次に、プログラ
ムは第3図のエンティティ生成およびデセグメント化サ
ブルーチンへ進み、生成された入力データが充填される
形状を表わすデータではなくベクトルであることを判定
する。従って、第3図のブロック56の判定が肯定なら
ば、サブルーチンはブロック58へ進んで台形112が弧の
ベクトルにより表わされないことを判定し、従って第4
図の線のデセグメント化サブルーチンへ進む。
次に、第4図の線のデセグメント化サブルーチンはブ
ロック59Bにおいて組合せフラッグを「0」にリセット
し、判断ブロック66において否定の判定を行なうが、こ
れは第6図の台形112が発散ではなく収束点で終るため
である。台形112を表わすその時の入力ベクトルは交差
点125(第6図)には含まれず、従って第4図のブロッ
ク68の判定は否定となる。線のデセグメント化サブルー
チンもまた判断ブロック71において否定の判定を行な
い、また判断ブロック74においても否定の判定を行なう
が、これはその時の対象に対してベクトル・テーブルに
おける前のエントリがないためである。サブルーチンは
次にブロック67へ進み、台形112に対する入力ベクトル
をベクトル・テーブルへ入れる。
次に、プログラムは第1図のブロック1Cへ進み、滲み
111Bに対する滲みレコードを取出し、第6図の交差点12
5に繋がる全ての形状がベクトル化されなかったため、
交差点カウンタを増分する必要がないことを判定する。
この時、プログラムはブロック6において滲み111Bが水
平方向でないことを判定し、ブロック9において滲み11
1Bに対するデータの前後の縁部をベクトル化し、ブロッ
ク12において第2図の形状認識サブルーチンを呼出す。
第2図のブロック36においては、形状認識サブルーチ
ンは、滲み111Bの前縁部が最も長いものであることを判
定し、ブロック37,38においては、前後のいずれの縁部
も同じ長さの多重ベクトルを持たないことを判定してブ
ロック44へ進む。ブロック44においては、形状認識サブ
ルーチンは前後の縁部の最も長いベクトル間の角度を計
算し、ブロック45においてこれらが平行でないことを判
定し、ブロック46において滲み111Bが充填された多角形
により表わされるべきことを示す充填多角形コードを生
成する。
次にサブルーチンは第1図へ戻り、ブロック14におい
て滲み111Bを表わす充填多角形データを生成し、第3図
のブロック56へ進み、入力データがベクトルを表わさな
いことを判定し、次いでブロック57において滲み111Bに
対する充填多角形データを充填形状テーブルに対して入
れる。
次に、第1図の判断ブロック20において滲み111Bがこ
れ以上データを持たないことを判定した後、ベクトル化
プログラムはブロック3において台形111Aの台形レコー
ドを取出し、ブロック6において台形111Aが水平な形状
ではないことを判定し、ブロック9において前後の縁部
をベクトル化する。第2図の形状認識サブルーチンにお
いては、ブロック38および45の判定により、台形111の
前後の縁部が平行であることが判定される。台形112に
ついては、ブロック47および49が対角方向ベクトル・コ
ードを台形111Aに対して生成させ、対応する対角方向ベ
クトルが第1図のサブルーチン17によって生成される。
第3図のブロック56は、生成された対角方向入力ベク
トルであることを判定し、ブロック58はこのベクトルが
弧のベクトルではないことを判定する。サブルーチンは
次に第4図の線のデセグメント化サブルーチンへ進む。
判断ブロック66,68および71においては否定の判定が
行なわれる。判定ブロック74は、このベクトル・テーブ
ルには台形111Aを表わすその時の入力ベクトルと同じ交
差を有する格納されたベクトル、即ち台形112を表わす
ベクトルが存在することを判定する。判断ブロック75
は、台形112を表わす格納されたベクトルが弧のベクト
ルではないことを判定する。ブロック78および79におい
ては、台形111Aおよび112の2つの最も近い終端点間の
オフセットが計算される。ブロツク80は、ベクトル111A
および112を組合せるには大き過ぎることを判定する。
次いで線の非セグメント化サブルーチンは第3図へ戻
り、ブロック61において組合せフラッグが依然として
「0」にあることを判定し、台形111Aを表わすその時の
入力ベクトルをベクトル・テーブルに入れる。
次に、ベクトル化プログラムは交差点の滲み125と対
応する滲みレコードを取出し、ブロック6においてこれ
が水平な形状でないことを判定し、ブロック9において
前後の縁部をベクトル化し、ブロック10においてこの形
状が複雑でないことを判定する。第2図の形状認識サブ
ルーチンは、交差点の滲み125の前後の縁部の最も長い
ベクトルを判定し、前後の縁部の各々に2つの類似する
長さのベクトルが存在することを判定する(ブロック37
および38)。従って、第2図のブロック38の判定は肯定
となる。判断ブロック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を表わすその時の入力ベクトルがベクトル
・テーブルにおける格納されたベクトル111Aおよび112
と同じ交差数を持つことを判定する。次に、第4図の線
のデセグメント化サブルーチンが判断ブロック、ブロッ
ク78および79および判断ブロック80を通って、台形114
を表わすその時の入力ベクトルが台形112を表わす格納
されたベクトルと組合せることができることを判定す
る。次いで、サブルーチンはブロツク82へ進み、組合せ
フラッグを「1」にセットし、次に第3図の判断ブロッ
ク61へ戻って組合せフラッグをテストし、入力ベクトル
114の下方の終端点を含むようにベクトル112を拡張する
ことにより、入力されたベクトル114が格納されたベク
トル112と組合されるべきことを判定する。
次にプログラムは第1図へ進み、未だ増分されていな
かった交差カウンタと同じ交差数を持つ台形115の台形
レコードを取出す。前に述べたように、ベクトル化サブ
ルーチンは、増分して次の交差点と繋がった形状をベク
トル化する前に、交差カウンタのその時のカウントによ
り表わされる交差点と繋がる全ての形状をベクトル化す
る。
ベクトル化プログラムは、台形114と同じ方法で台形1
15をベクトル化し、その結果の入力ベクトルが格納され
たベクトル111Aと組合すことができることを判定し、台
形111Aの格納されたベクトルを入力ベクトル115の下方
の終端点を含むように拡張する。
次に、プログラムは第1図の判断ブロック1Cにおいて
肯定の判定を生じ、交差カウンタを0から1へ増分し、
次いで第6図の滲み113Bの滲みレコードを取出す。この
滲みは、前の滲み111Bと同じ方法で「ベクトル化」さ
れ、充填形状テーブルへ入れられる。台形113Aが取出さ
れて、前にベクトル化された台形111Aと同じ方法でベク
トル化される。交差滲みコードが交差滲み126に対して
生成される。台形117がベクトル化され、前に述べた方
法で格納されたベクトル114と組合される。
台形118は、交差滲み126の発散点で始まる点でのみ前
記のものと異なる。第4図においては、否定の判定が判
断ブロック71において得られ、その結果前に述べたよう
に適当にベクトル・テーブルを更新することにより、入
力ベクトル118がこの時台形113Aを表わす格納されたベ
クトルと組合されることになる。
対象110の残りは、略々同じ方法でベクトル化され
る。最後の台形122がベクトル化されて組合せ即ち非セ
グメント化されると、第1図の判断ブロック1C、従って
ブロック1Aの判定は肯定となる。第6図におけるベクト
ル化手順の第1の相は完了した。次いでベクトル化プロ
グラムは第1A図のブロック20Aへ進む。第6図の形状は
デセグメント化が生じた態様のため終端点の拡張を要求
しない。第15図のブロック331において、次いで第1A図
のブロック21において肯定の判定が得られる。次に、プ
ログラムは判断ブロック23において、ベクトル・テーブ
ルにおける最初のエンティティが2つ以上のベクトルを
持たないこと、従ってこのエンティティを表わすベクト
ル、または前記エンティティを表わす充填多角形データ
を出力ファイルに対して出力することを判定する。この
手順は、ベクトル・テーブルおよび充填形状テーブルに
おける全てのエンティティが出力ファイルに出力される
まで反復される。次いでベクトル化プログラムはラベル
22を経て第1図のベクトル化プログラムを呼出したどの
プログラムにも戻る。
次に、第10図に示された円を事例として用いて、本発
明のベクトル化プログラムの作用を説明する。この円の
最上部の形状は滲み154である。その滲みレコードが第
1図のブロック10に示されるように取出される。形状15
4は第1図の判断ブロック6において水平であると判定
され、ブロツク7において水平のベクトルが生成され
る。第3図のエンティティ生成およびデセグメント化サ
ブルーチンは、判断ブロック56において、この水平のベ
クトルが実際にベクトルであることを判定し、判定ブロ
ック58において入力ベクトルが弧のベクトルでないこと
を判定し、第4図の線のデセグメント化サブルーチンへ
進む。
第4図の判断ブロック66においては、線のデセグメン
ト化サブルーチンが、形状154が開放点において始ま
り、発散点(形状154からの形状155および159の発散)
で終ることを判定する。従って、入力される方向ベクト
ルは、ブロック67に示されるように、ベクトル・テーブ
ルに対して新しいエンティティとして入れられる。プロ
グラムは次に第1図のブロック10に示されるように第6
図の滲み155を取出し、判断ブロック6においてこの形
状が水平ではないことを判定し、弧155の前後の縁部を
ベクトル化し、いずれの角度も90゜より小さいためこの
形状が複雑でないと判定し、第2図の形状認識サブルー
チンへ進む。
第2図のブロック36,37および38においては、形状認
識サブルーチンが、滲み155の前後の両縁部が類似の長
さの多数のベクトルを持つことを判定し、判断ブロック
39へ進み、形状155が垂直よりも水平に近くないことを
判定し、ブロツク40において弧のコードを生成し、第1
図へ戻る。第1図においては、ベクトル・コードを用い
てブロック16のサブルーチンを呼出して滲み155を表わ
す弧のベクトルを生成する。
次いで、ベクトル化プログラムは第3図へ進み、ブロ
ック56において肯定の判定を行ない、判断ブロック58に
おいてその時の入力ベクトル155が弧のベクトルである
ことを判定し、第5図のデセグメント化サブルーチンへ
進む。第5図においては、組合せフラッグがブロック60
Bにおいて「0」にセットされる。
第8図に示されるように、2つの最も近い終端点が滲
み155の入力ベクトルとその時の交差数を持つ滲み154の
格納ベクトルとの間に見出される。判断ブロック92は、
終端点が入力ベクトルと格納ベクトルのデセグメント化
即ち組合せを許容するに充分な程度接近していることを
判定する。ブロック93および94は、入力ベクトル155の
長さを計算して、これが格納ベクトル154と組合せるに
充分な程度類似していることを判定する。
次に、第5図のブロック95および96において、格納ベ
クトル154と入力ベクトル155の最も近いセグメント間の
角度が計算され、その結果生じる角度が鋭過ぎないかど
うかについて判定が行なわれる。この場合、この角度は
鋭過ぎず、従って前に述べた複雑度テストがブロック97
において行なわれる。ブロック98においては、形状155
が凸であり従って滲み154の格納ベクトルと組合せるこ
とができることが判定される。プログラムはブロック10
0へ進み、組合せフラッグを「1」にセツトし、第3図
のブロック61へ戻り、組合せフラッグをテストし、肯定
の判定を生じ、ブロック64へ進み、入力ベクトル155を
これに加えることにより出力半径ベクトル154を更新す
る。
プログラムは、滲み159を表わす弧のベクトルを格納
ベクトルへ加えることにより格納ベクトルを更新する同
様な一連の操作を行ない、次いで形状157を表わす水平
方向のベクトルをこれに加えることにより結果として生
じる格納ベクトルを最終的に更新する。
この時ベクトル化プログラムは第1A図へ進み、判断ブ
ロック23においてこの時ベクトル・テーブルにおける1
つのエンティティが2つ以上のベクトルを持つことを判
定し、そしてベクトル25へ進み、ベクトル・テーブルに
おけるエンティティが弧でないこと、従ってこれが円で
なければならないことを判定する。このプログラムは円
の中心および半径および円の厚みを計算し、このデータ
を出力ファイルへ出力する。
本文に述べたベクトル化法は、電荷結合素子(CCD)
の如き電子光学的走査装置により走査される設計図の如
き画像を正確に電子的に表わすため必要なデータ量を実
質的に縮減する。精度は他の公知のベクトル化手法より
も実質的に大きく、本発明により生じるベクトル化デー
タを電子的に送り、編集し、尺度を決め、あるいはCPU
またはプロッタ上に図面を正確に再生する前に他の方法
でデータを修正するため必要な時間量は、従来技術によ
りベクトル化される画像の場合よりも遥かに小さい。本
デセグメント化技術および形状認識技術は、本発明の高
速度およびデータの簡素化を実用化するものである。
【図面の簡単な説明】
第1図および第1A図は本発明の主ベクトル化プログラム
を示すフローチャート、第1B図は不鮮明レコードおよび
台形レコードを取出す第1図のサブルーチンを示すフロ
ーチャート、第1C図は第1図のブロック7において実行
されるサブルーチンのフローチャート、第1D図は第1図
のブロック18において実行されるサブルーチンのフロー
チャート、第1E図は第1図のブロック17において実行さ
れるプログラムのフローチャート、第1F図は第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図の説明において述べられる角度決定の説明において
有効な図、第13図は第2図の形状認識サブルーチンの作
用説明において有効な図、第14図は充填された多角形の
組合せのためのサブルーチンのフローチャート、第14A
図は第14図のフローチャートにより呼出されるサブルー
チンを示すフローチャート、第14B図は第14A図のフロー
チャートにより呼出されるサブルーチンを示すフローチ
ャート、第15図は第1A図のフローチャートにより呼出さ
れるサブルーチンを示すフローチャート、第16図は第1E
図のサブルーチンの説明に有効な図、および第17図は本
発明のベクトル化システムが組込まれたハードウェア・
システムを示すブロック図である。 501……オリジナル線図、502……画像スキャナー 503……直列ピクセル・データ 504……自動図面認識システム 505……ランレングス・エンコーダ 506……ウィンドウ処理メモリー 507……中央処理装置(CPU) 510……ワークステーション 511……フロッピー・ディスク・ドライブ 512……ハード・ディスク 513……高解像度グラフィックス・モニター 514……キーボード、515……マウス 516……プロッタ、517……編集済み線図

Claims (16)

    (57)【特許請求の範囲】
  1. 【請求項1】書類上の対象を電子的に走査することによ
    り得られるデータであって、前記対象を構成する連結さ
    れた基本的形状を表すレコードに組み立てられるデータ
    をベクトル化する方法において、 (a)前記対象の基本的形状のレコードを得るステップ
    と、 (b)前記基本的形状の前縁部をベクトル化し、前記基
    本的形状の後縁部をベクトル化するステップと、 (c)前記基本的形状が、ステップ(b)で得られた前
    縁部及び後縁部のベクトルに演算を行うことによって、
    弧ベクトル、線ベクトル、あるいは、複数の記憶された
    ランレングス・スライスから構成される充填形状とし
    て、表現可能であるかどうかを判断するステップと、 (d)前記基本的形状が線ベクトル又は弧ベクトルによ
    って表現される場合には、線ベクトル又は弧ベクトルで
    ある入力ベクトルを発生し、前記基本的形状が充填形状
    として表現される場合には、充填形状を定義するデータ
    を発生するステップと、 (e)前記基本的形状が充填形状として表現される場合
    には、該充填形状データを、新たなエントリとして、充
    填形状用のテーブルに入力するステップと、 (f)前記基本的形状が入力ベクトルによって表現され
    る場合には、前記入力ベクトルがベクトル・テーブルに
    既に記憶されているベクトルと組み合わせることができ
    るかを判断し、この判断が肯定ならば、前記入力ベクト
    ルを前記記憶されたベクトルと組み合わせて、その組み
    合わせられたベクトルを前記ベクトル・テーブルに記憶
    し、この判断が否定ならば、前記入力ベクトルを、新た
    なエントリとして、前記ベクトル・テーブルに入力する
    ステップと、 (g)ステップ(a)〜(f)を、前記対象の全体がベ
    クトル化されるまで、前記対象の他の基本的形状に対し
    て反復するステップと を含んでいるベクトル化方法。
  2. 【請求項2】請求項1記載のベクトル化方法において、
    前記レコードが、前記対象の非台形形状の不規則な基本
    的形状である滲み(ブロブ)のランレングス・スライス
    を含んでいるベクトル化方法。
  3. 【請求項3】請求項1または2記載のベクトル化方法に
    おいて、前記レコードが、前記対象の基本的形状である
    台形の4つの頂点を含む台形レコードを含んでいるベク
    トル化方法。
  4. 【請求項4】請求項1〜3いずれかに記載のベクトル化
    方法において、前記レコードが、前記レコードの収束と
    拡散(発散)とにそれぞれ連結した基本的形状へのポイ
    ンタを含む収束レコードと拡散レコードとを含んでいる
    ベクトル化方法。
  5. 【請求項5】請求項1〜4いずれかに記載のベクトル化
    方法において、該方法はさらに、前記基本的形状が水平
    であるかどうかを、ステップ(b)を実行する前に判断
    するステップを含んでいるベクトル化方法。
  6. 【請求項6】請求項5記載のベクトル化方法において、
    前記基本的形状が水平でない場合には、ステップ(c)
    が、該基本的形状の前縁部及び後縁部がそれぞれ類似の
    長さの複数の線ベクトルを含むかどうかを判断し、含む
    場合には、該基本的形状がほぼ水平であるかどうかを判
    断し、該基本的形状がほぼ水平でない場合には、該基本
    的形状が弧ベクトルによって表されることを示す弧レコ
    ードを生成し、該基本的形状がほぼ水平である場合に
    は、該基本的形状が凸形状であるかどうかを判断するス
    テップを含んでいるベクトル化方法。
  7. 【請求項7】請求項6記載のベクトル化方法において、
    該方法は、前記基本的形状の前記前縁部及び後縁部がそ
    れぞれ類似の長さの複数の線ベクトルを含まない場合に
    は、該基本的形状の最長の前縁部ベクトルが最長の後縁
    部ベクトルと平行であるかどうかを判断し、この判断が
    肯定である場合には、前記基本的形状の前記前縁部ベク
    トル及び後縁部ベクトルが垂直であれば、該基本的形状
    が垂直方向ベクトルによって表されることを示す垂直方
    向ベクトルコードを発生し、前記基本的形状の前記前縁
    部ベクトル及び後縁部ベクトルが平行な対角方向のベク
    トルであれば、該基本的形状が対角方向ベクトルによっ
    て表されることを示す対角方向ベクトルコードを発生す
    るステップを含んでいるベクトル化方法。
  8. 【請求項8】請求項7記載のベクトル化方法において、
    該方法は、前記基本的形状の前記最長の前縁部ベクトル
    及び前記最長の後縁部ベクトルが平行ではない場合に
    は、前記基本的形状が充填多角形として表されることを
    示す充填多角形コードを発生するステップを含んでいる
    ベクトル化方法。
  9. 【請求項9】請求項8記載のベクトル化方法において、
    前記ステップ(d)は、前記充填多角形コード、対角方
    向ベクトル、垂直方向ベクトル、水平方向ベクトル、充
    填円コード、弧コードのいずれかを用いて、ベクトル生
    成サブルーチンまたは充填形状データ発生サブルーチン
    を呼び出し、前記基本的形状を表すベクトルを発生する
    か、又は該基本的形状を表す充填形状データを発生する
    ステップを含んでいるベクトル化方法。
  10. 【請求項10】請求項9記載のベクトル化方法におい
    て、前記ステップ(e)は、前記ステップ(d)で発生
    した情報が入力ベクトルであるか充填形状データである
    かを判断し、該情報が充填形状データである場合には、
    該データを新たなエントリとして前記充填形状用のテー
    ブル中に挿入し、該情報が入力ベクトルである場合に
    は、該入力ベクトルが弧ベクトルであるかどうかを判断
    するステップを含んでいるベクトル化方法。
  11. 【請求項11】請求項10記載のベクトル化方法におい
    て、該方法は、前記入力ベクトルが弧ベクトルでない場
    合には、線のデセグメント化サブルーチンを実行し、前
    記入力ベクトルが弧ベクトルである場合には、弧のデセ
    グメント化サブルーチンを実行するステップを含んでい
    るベクトル化方法。
  12. 【請求項12】書類上の対象を電子的に走査することに
    より得られるデータであって、前記対象を構成する連結
    された基本的形状を表すレコードに組み立てられるデー
    タをベクトル化する方法において、 (a)前記対象の基本的形状のレコードを得るステップ
    と、 (b)前記基本的形状の前縁部をベクトル化し、前記基
    本的形状の後縁部をベクトル化するステップと、 (c)前記基本的形状が、ステップ(b)で得られた前
    縁部及び後縁部ベクトルに演算を行うことによって、線
    ベクトルとして表現可能であるかどうかを判断するステ
    ップと、 (d)線ベクトルである入力ベクトルを発生するステッ
    プと、 (e)前記基本的形状が入力ベクトルによって表現され
    る場合には、前記入力ベクトルがベクトル・テーブルに
    既に記憶されているベクトルと組み合わせることができ
    るかを判断し、この判断が肯定ならば、前記入力ベクト
    ルを前記記憶されたベクトルと組み合わせて、その組み
    合わせられたベクトルを前記ベクトル・テーブルに記憶
    し、この判断が否定ならば、前記入力ベクトルを、新た
    なエントリとして、前記ベクトル・テーブルに入力する
    ステップと、 (f)ステップ(a)〜(e)を、前記対象の全体がベ
    クトル化されるまで、前記対象の他の基本的形状に対し
    て反復するステップと を含んでいるベクトル化方法。
  13. 【請求項13】書類上の対象を電子的に走査することに
    より得られるデータであって、前記対象を構成する連結
    された基本的形状を表すレコードに組み立てられるデー
    タをベクトル化する方法において、 (a)前記対象の基本的形状のレコードを得るステップ
    と、 (b)前記基本的形状の前縁部をベクトル化し、前記基
    本的形状の後縁部をベクトル化するステップと、 (c)前記基本的形状が、ステップ(b)で得られた前
    縁部及び後縁部ベクトルに演算を行うことによって、弧
    ベクトル、線ベクトル、あるいは、複数の記憶されたラ
    ンレングス・スライスから構成される充填形状として、
    表現可能であるかどうかを判断するステップと、 (d)前記基本的形状が線ベクトル又は弧ベクトルによ
    って表現される場合には、それぞれ、線ベクトル又は弧
    ベクトルである入力ベクトルを発生し、前記基本的形状
    が充填形状として表現される場合には、充填形状を定義
    するデータを発生するステップと、 (e)前記基本的形状が充填形状として表現される場合
    には、該充填形状データを、新たなエントリとして、充
    填形状用のテーブルに入力するステップと、 (f)前記基本的形状が入力ベクトルによって表現され
    る場合には、前記入力ベクトルを、新たなエントリとし
    て、ベクトル・テーブルに入力するステップと、 (g)ステップ(a)〜(f)を、前記対象の全体がベ
    クトル化されるまで、前記対象の他の基本的形状に対し
    て反復するステップと を含んでいるベクトル化方法。
  14. 【請求項14】書類上の対象を電子的に走査することに
    より得られるデータであって、前記対象を構成する連結
    された基本的形状を表すレコードに組み立てられるデー
    タをベクトル化する装置において、 (a)前記対象の基本的形状のレコードを得る手段と、 (b)前記基本的形状の前縁部をベクトル化し、前記基
    本的形状の後縁部をベクトル化する手段と、 (c)前記基本的形状が、前記基本的形状の前縁部及び
    後縁部のベクトルに演算を行うことによって、弧ベクト
    ル、線ベクトル、あるいは、複数の記憶されたランレン
    グス・スライスから構成される充填形状として、表現可
    能であるかどうかを判断する手段と、 (d)前記基本的形状が線ベクトル又は弧ベクトルによ
    って表現される場合には、線ベクトル又は弧ベクトルで
    ある入力ベクトルを発生し、前記基本的形状が充填形状
    として表現される場合には、充填形状を定義する充填形
    状データを発生する手段と、 (e)前記充填形状データを、新たなエントリとして、
    充填形状用のテーブルに入力する手段と、 (f)前記入力ベクトルが既にベクトル・テーブルに記
    憶されているベクトルと組み合わせることができるかを
    判断し、この判断が肯定ならば、前記入力ベクトルを前
    記記憶されたベクトルと組み合わせて、その組み合わせ
    たベクトルを前記ベクトル・テーブルに記憶し、この判
    断が否定ならば、前記入力ベクトルを、新たなエントリ
    として、前記ベクトル・テーブルに入力する手段と を備えているベクトル化装置。
  15. 【請求項15】書類上の対象を電子的に走査することに
    より得られるデータであって、前記対象を構成する連結
    された基本的形状を表すレコードに組み立てられるデー
    タをベクトル化する装置において、 (a)前記対象の基本的形状のレコードを得る手段と、 (b)前記基本的形状の前縁部をベクトル化し、前記基
    本的形状の後縁部をベクトル化する手段と、 (c)前記基本的形状が、前記前縁部及び後縁部のベク
    トルに演算を行うことによって、線ベクトルとして表現
    可能であるかどうかを判断する手段と、 (d)線ベクトルである入力ベクトルを発生する手段
    と、 (e)前記入力ベクトルがベクトル・テーブルに既に記
    憶されているベクトルと組み合わせることができるかを
    判断し、この判断が肯定ならば、その組み合わせられた
    ベクトルを前記ベクトル・テーブルに記憶し、この判断
    が否定ならば、前記入力ベクトルを、新たなエントリと
    して、前記ベクトル・テーブルに入力する手段と を含んでいるベクトル化装置。
  16. 【請求項16】書類上の対象を電子的に走査することに
    より得られるデータであって、前記対象を構成する連結
    された基本的形状を表すレコードに組み立てられるデー
    タをベクトル化する装置において、 (a)前記対象の基本的形状のレコードを得る手段と、 (b)前記基本的形状の前縁部をベクトル化し、前記基
    本的形状の後縁部をベクトル化する手段と、 (c)前記基本的形状が、前記前縁部及び後縁部のベク
    トルに演算を行うことによって、弧ベクトル、線ベクト
    ル、あるいは、複数の記憶されたランレングス・スライ
    スから構成される充填形状として、表現可能であるかど
    うかを判断する手段と、 (d)前記基本的形状が線ベクトル又は弧ベクトルによ
    って表現される場合には、それぞれ、線ベクトル又は弧
    ベクトルである入力ベクトルを発生し、前記基本的形状
    が充填形状として表現される場合には、充填形状を定義
    するデータを発生する手段と、 (e)前記基本的形状が充填形状として表現される場合
    には、該充填形状データを、新たなエントリとして、充
    填形状用のテーブルに入力する手段と、 (f)前記基本的形状が入力ベクトルによって表現され
    る場合には、前記入力ベクトルを、新たなエントリとし
    て、ベクトル・テーブルに入力する手段と を含んでいるベクトル化装置。
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 JPS63206873A (ja) 1988-08-26
JP2608571B2 true 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
ATE521048T1 (de) * 2004-11-26 2011-09-15 Koninkl Philips Electronics Nv Volume-of-interest-auswahl
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 キヤノン株式会社 画像処理装置、画像処理方法、プログラム、及び記憶媒体
US8826252B2 (en) * 2009-06-12 2014-09-02 Cray Inc. Using vector atomic memory operation to handle data of different lengths
US8458685B2 (en) * 2009-06-12 2013-06-04 Cray Inc. Vector atomic memory operation vector update system and method
US8583898B2 (en) * 2009-06-12 2013-11-12 Cray Inc. System and method for managing processor-in-memory (PIM) operations
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
US4949388A (en) * 1987-02-19 1990-08-14 Gtx Corporation Method and apparatus for recognition of graphic symbols
US4821336A (en) * 1987-02-19 1989-04-11 Gtx Corporation Method and apparatus for simplifying runlength data from scanning of images
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
JPS63206873A (ja) 1988-08-26
US4817187A (en) 1989-03-28
IL84648A0 (en) 1988-04-29
AU1175488A (en) 1988-08-25
AU587353B2 (en) 1989-08-10
EP0279156A2 (en) 1988-08-24
EP0279156A3 (en) 1990-08-29

Similar Documents

Publication Publication Date Title
JP2608571B2 (ja) 入力走査画像データのベクトル化のための装置及び方法
EP1457917B1 (en) Apparatus and methods for converting network drawings from raster format to vector format
CA2153377A1 (en) Method and apparatus for identifying words described in a portable electronic document
JP2001101426A (ja) ディジタル画像処理方法
US6573899B2 (en) Morphing processing apparatus, method, storage medium, program transmission apparatus, and animation creation apparatus
US20020006224A1 (en) Computer automated process for vectorization of raster images
JPH05166002A (ja) ソース画像を分析する方法
JPH0646408B2 (ja) 分割画像処理方法
JP3172498B2 (ja) イメージ認識用特徴値抽出方法、およびその装置、イメージ解析プログラムを格納する記憶媒体
JP3070801B2 (ja) 図面管理方法
JPH1049688A (ja) 画像データの部分消去および部分検出方法
JP3077929B2 (ja) 文字切出し方式
JP4574347B2 (ja) 画像処理装置、方法及びプログラム
JP2755299B2 (ja) 画像処理方法
JP3536894B2 (ja) 図形処理装置
JP2559359B2 (ja) 画像の構造記憶方法及び画像登録装置
JP3843794B2 (ja) 図形処理装置
JP3024234B2 (ja) 文書画像の罫線抽出装置
JP2776887B2 (ja) フォントパターン処理方法
JP2003150966A (ja) 連結成分抽出方法、装置、およびプログラム
JPH0821059B2 (ja) 文字輪郭生成時の不要データ除去方式
JP3037504B2 (ja) 画像処理方法及びその装置
JPH09147125A (ja) 輪郭線抽出方法と抽出装置
JPH0546758A (ja) 画像処理方法
Ablameyko et al. Hierarchical vector representation of document images

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term