JP3093950B2 - 輪郭情報抽出装置及びその方法 - Google Patents

輪郭情報抽出装置及びその方法

Info

Publication number
JP3093950B2
JP3093950B2 JP07058470A JP5847095A JP3093950B2 JP 3093950 B2 JP3093950 B2 JP 3093950B2 JP 07058470 A JP07058470 A JP 07058470A JP 5847095 A JP5847095 A JP 5847095A JP 3093950 B2 JP3093950 B2 JP 3093950B2
Authority
JP
Japan
Prior art keywords
vector
end point
predetermined direction
point
pixel
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 - Fee Related
Application number
JP07058470A
Other languages
English (en)
Other versions
JPH08255252A (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP07058470A priority Critical patent/JP3093950B2/ja
Priority to DE69525390T priority patent/DE69525390D1/de
Priority to US08/491,603 priority patent/US6356656B1/en
Priority to EP95304214A priority patent/EP0687994B1/en
Publication of JPH08255252A publication Critical patent/JPH08255252A/ja
Application granted granted Critical
Publication of JP3093950B2 publication Critical patent/JP3093950B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Image Analysis (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は輪郭情報抽出装置及び方
法、詳しくはラスタ走査順に記憶された2値画像の輪郭
線を抽出する装置及び方法に関するものである。
【0002】
【従来の技術】この種の装置に関するものとして、本願
出願人は既に特開平4−157578号(以降“提案
A”と称する)、特開平5−108823号(以降“提
案B”と称する)、及び特願平6−135883号(以
降“提案C”と称する)を提案した。
【0003】提案Aでは、ある画素を注目し、その注目
画素とその近傍の複数画素の状態に応じて、注目画素が
輪郭位置にある画素かどうか判断し、かつ、注目画素が
輪郭画素と判断された場合には近傍画素との関係から、
注目画素とその近傍画素の状態に応じて水平ベクトル及
び垂直ベクトルを抽出する手法を開示している。
【0004】この手法は画像の中の全ての輪郭線を1回
のラスタ走査だけで抽出でき、かつ、全画像データを記
憶するための画像メモリを必要としないため、メモリの
容量を少なくできる効果を有している。また、入力画像
の画素の中心位置でなく、画素間格子の間をつなぐベク
トルを単位として輪郭を抽出することによって(つま
り、1画素が方形であるとし、その4辺にベクトルがあ
ると想定することによって)、1画素幅の細線に対して
も有為な幅を有する輪郭線抽出法である。さらに原画中
の画素の3×3の9画素領域において抽出が可能である
ことが紹介されている。
【0005】また、提案Bでは、提案Aで提案されてい
る3×3の9画素領域の輪郭点を抽出する場合の規則に
ついて、斜め方向に連結している2つの黒画素間に設定
する2つの輪郭点を、この2つの黒画素が注目画素とな
るそれぞれの時点で1点づつ定義する手法をとることを
提案している。この手法をとることによって、各部の抽
出手段をその他の周囲画素の状態と独立して動作できる
よう構成することが紹介されている。
【0006】しかしながら、提案A及び提案Bには、以
下のような問題が残されていた。 (1)3×3の9画素領域においての抽出が可能とする
ために、注目画素を中心とする3×3の9画素領域内す
べてに対して、黒画素か白画素かの状態を判断する必要
があった。このとき、それぞれの状態のパターン毎に処
理内容が決められているため、できるだけ画素状態のパ
ターンが少ない方が望ましい。 (2)1つの注目画素につき輪郭点が存在しうる場所が
3×3の9画像領域内に4箇所あるため、各状態毎の処
理のルールが複雑で、それらの処理をモジュール化する
のが困難になっていた。 (3)接続関係が未定のベクトルナンバーを保持するの
に、抽出される順番にテーブルに登録し、検索するとき
には後からさかのぼって検索するというスタック方式を
とっていたため、メモリの量に無駄があり、検索に時間
がかかった。
【0007】そこで、提案Cでは、画像データの輪郭ベ
クトルを抽出する場合の装置構成或いは処理工程を簡略
化し、装置の大型化、コストアップを抑制すること共に
処理速度を上げることを可能にする輪郭情報抽出装置及
び方法を提案した。
【0008】提案Cで開示される輪郭情報抽出装置は、
以下の構成を備えている。すなわち、画像データの画素
間の格子位置を注目しながらラスタ走査を行ない、前記
格子位置の近傍画素群の状態に基づいて、主走査方向及
び副走査方向の輪郭ベクトルを検出する検出手段と、前
記輪郭ベクトル同士の接続状態を判別する判別手段と、
前記判別手段により判別された輪郭ベクトルの接続状態
をもとに、前記画像データの輪郭情報を抽出する抽出手
段とを備える。
【0009】ここで、近傍画素群は、前記画素間格子を
中心とする2×2の計4個の画素である。これによれ
ば、格子位置は1つになり、起こり得るケースの数が少
ないので、装置構成及び処理が提案A,Bに比し、より
簡略化されている。
【0010】また、輪郭ベクトルの主走査接続関係が未
定な、高々1個分の情報を保持するに足る水平接続用バ
ッファと、輪郭ベクトルの副走査接続関係が未定な、高
々前記画像データの1ラスタ中に存在する前記画素間格
子の数分を保持するに足る垂直接続用テーブルとを具備
し、前記バッファと前記テーブルを用いて前記輪郭ベク
トル同士の接続状態を判別する判別手段を具備する。こ
れによって、提案A,Bに比し、少ないメモリ容量で輪
郭情報が抽出できるようになった。
【0011】更に、前記垂直接続用テーブルの各欄が、
前記画像データ中の前記各画素間格子の主走査方向位置
に対応している。これによって提案A,Bに比し、接続
関係を検索する際の処理が簡略化されている。
【0012】
【発明が解決しようとする課題】上述の如く、提案A,
B,Cは、入力画像の画素の中心位置ではなく、画素間
格子の間をつなぐベクトルを単位として輪郭を抽出(つ
まり、1画素が方形であるとし、その4辺にベクトルが
あると想定)することによって、黒画素領域と白画素領
域の境界を、主走査方向へのびる水平ベクトル(横ベク
トル)と副走査方向へのびる垂直ベクトル(縦ベクト
ル)の交互接続によって、黒画素領域をとり囲むベクト
ル列群として輪郭ベクトルデータを抽出するものであっ
た。
【0013】上記水平ベクトルデータと垂直ベクトルデ
ータは、供に{始点のX座標値、始点のY座標値、流入
ベクトルポインタ、流出ベクトルポインタ}というデー
タ形式をとっての構成での実施形態が、前記提案A,
B,Cにおいて開示されていた。
【0014】本来、水平ベクトルと垂直ベクトルは必ず
交互に接続するのであるから、いずれか一方のベクトル
がわかれば、わずかな演算処理でその次の輪郭ベクトル
も判明する。
【0015】すなわち、水平ベクトルの始点はその水平
ベクトルに流入してくる垂直ベクトルの終点でもあり、
逆に垂直ベクトルの始点は、その垂直ベクトルに流入し
てくる水平ベクトルの終点でもある。同様に、水平ベク
トルの終点は、その水平ベクトルが流出していく垂直ベ
クトルの始点でもあり、垂直ベクトルの終点は、その垂
直ベクトルが流出していく水平ベクトルの始点でもあ
る。即ち、水平ベクトルの始点の座標値がわかれば、そ
の水平ベクトルの終点(その水平ベクトルの流出してい
く垂直ベクトルの始点でもある)のY座標値は、始点の
Y座標値に等しく、X座標値は、その水平ベクトルの流
出をしていく垂直ベクトルが、流出していく水平ベクト
ルの始点(垂直ベクトルの終点でもある)のX座標値
(実は、その垂直ベクトルの始点のX座標値と等しい)
と等しい。
【0016】この様なことから、提案A,B,Cの様
に、水平ベクトルと垂直ベクトルの両方を抽出するの
は、冗長な処理である。
【0017】提案A,B,Cに開示される構成において
は、水平ベクトル(主走査[横]方向ベクトル)と、垂
直ベクトル(副走査[縦]方向ベクトル)の両方のベク
トル情報を、それらの接続関係も含めて明示した形で保
持して輪郭ベクトル抽出していることから、 (1)抽出中のベクトルデータの保持に余分なメモリ容
量を要する。 (2)抽出に、本来不要なメモリへのアクセスが存在し
ていたため、処理速度の低下を招く。 (3)抽出時に、本来不要なデータまで生成していたた
め、個のデータ生成に要する余分な回路が必要となり、
処理回路規模の増大を招く。 等の問題が残されていた。
【0018】
【課題を解決するための手段】及び
【作用】本願発明はかかる点に鑑みなされたものであ
り、上記提案A〜Cに比し、処理回路規模の更なる縮小
と低コストを図ると共に、不要なメモリアクセスを減ら
すことにより、処理速度を向上させた輪郭情報抽出装置
及びその制御方法を提供することにある。
【0019】また、本願発明の他の目的は、この種の装
置に要していた抽出中のベクトルデータの保持用のメモ
リの所要量を削減し、安価にできる輪郭情報抽出装置及
び方法を提供することである。
【0020】この課題を解決するため、例えば本発明の
輪郭情報抽出装置は以下の構成を備える。
【0021】
【0022】
【0023】
【0024】
【0025】画像データを入力し、入力された画像の有
意な画素を常に右側或いは左側にした追跡方向に沿った
輪郭ベクトルを抽出する輪郭情報抽出装置であって、画
像データ中のn×mの画素領域の画素データを所定の方
向に沿って順次入力する入力手段と、入力した画素領域
の画素データに基づいて、所定方向における前記追跡方
向のベクトルの始点或いは終点を検出する端点検出手段
と、ここで、前記所定方向は主走査、副走査方向のいず
れか一方である; 該端点検出手段でもってベクトル端点が検出された場
合、当該端点に最寄りの前記所定方向のベクトルが既に
検出されているか否かを前記画素領域の状態に応じて判
別する判別手段と、該判別手段により、最寄りの所定方
向のベクトルが未検出であると判別した場合、検出され
た注目ベクトルの端点の座標に関連付けて、当該注目ベ
クトルの識別情報を記憶する第1の記憶手段と、前記端
点検出手段で検出された端点が、前記所定方向の追跡方
向のベクトルの終点である場合、当該終点を持つ所定方
向の注目ベクトルに対する識別情報に関連付けて、当該
注目ベクトルの座標データを記憶すると共に、注目ベク
トルの終点の先の追跡方向にある最寄りの前記所定方向
のベクトルが既に検出されていると前記判別手段が判別
した場合、当該注目ベクトルの終点の座標データに基づ
いて前記第1の記憶手段を検索し、注目ベクトルに対す
る最寄りのベクトルの識別情報を抽出して記憶する第2
の記憶手段とを備える。
【0026】これによって、実際に第2の記憶手段に記
憶されるのは、たとえば水平方向のみのベクトルデータ
だけ、或いは垂直方向のベクトルデータのみになり、メ
モリ容量を約半分にすることが可能になる。
【0027】また、本発明の好適な実施態様に従えば、
本発明の装置は、画像データの画素間の格子位置を注目
しながらラスタ走査を行ない、前記格子位置の近傍画素
群の状態に基づいて、主走査方向の輪郭ベクトルを検出
する検出手段と、前記輪郭ベクトル同士の接続状態を判
別する判別手段と、前記判別手段により判別された輪郭
ベクトルの接続状態をもとに、前記画像データの輪郭情
報を抽出する抽出手段より構成される。
【0028】上記構成において、主走査方向の輪郭ベク
トルを検出する検出手段は、画像データの画素間の格子
位置を注目しながらラスタ走査を行ない、前記格子位置
の近傍画素群の状態に基づいて主走査方向の輪郭ベクト
ルの始点及び終点を検出する。
【0029】また、輪郭ベクトル同士の接続状態を判別
する判別手段は、前記検出手段により検出された輪郭ベ
クトルの始点及び終点が、それらが検出された格子位置
の近傍画素分の状態、及びそれら格子位置と同じ主走査
方向の位置における検出済みの他の輪郭ベクトルの始点
及び終点の接続状態とに基づいて、前記輪郭ベクトル同
士の接続状態を判別する。前記画像データの輪郭情報を
抽出する手段は、前記検出手段により検出された輪郭ベ
クトルの位置情報と、前記判別手段により判別された輪
郭ベクトル同士の接続状態情報とから、前記画像データ
の輪郭情報を抽出するものである。
【0030】本発明における輪郭情報抽出装置は、この
種の装置に要していた抽出中のベクトルデータの保持に
要するメモリを、画像をラスタ走査する際の主走査方向
と副走査方向の一方向のみの直線ベクトルデータと、前
記直線ベクトルが、該画像中の輪郭を構成するための接
続順で次順もしくは先順にあるいずれか一方の直線ベク
トルのデータ位置を示すポインタ情報とで構成されるデ
ータ形式で、輪郭ベクトルデータを保持する様に構成す
ることにより、従来よりも所要容量を削減し、安価な実
現を可能とするものである。
【0031】
【実施例】以下、添付図面に従って本発明に係る実施例
を詳細に説明する。
【0032】<第1の実施例>実施例における輪郭ベク
トルの抽出は、図1のように、4画素領域内の画素の状
態を見て処理を進めてゆき、1画素分づつラスタ走査方
向(水平方向)にずらして行きながら画像全体の処理を
逐次処理を行なうような形で実施する。尚、図1の符号
101における“×”は、4画素領域内の画素間格子上
点を示し、輪郭点の存在しうる場所を意味する。この点
を以降“注目点”と称する。
【0033】注目点の画像処理装置上の位置の表わし方
は、m×n画素の画像の場合、図2の様な画素間格子上
の点を、左上を(0,0)とし、右上を(m,0)、左
下を(0,n)、右下を(m,n)と表現する。
【0034】さて、実施例では図1に示す如く、2×2
画素領域をウインドウとして処理を進める。従って、そ
の2×2画素領域で取り得る状態は2の4乗、すなわ
ち、16通りである。各状態は図10〜図25に示す通
りである。
【0035】尚、図10〜図25における正方形は2×
2の4画素領域のウィンドウを表わす。ウィンドウの内
の○,△,及び矢印の意味であるが、○は水平ベクトル
の始点(垂直ベクトルの終点)、△は垂直ベクトルの始
点(水平ベクトルの終点)を意味する。矢印はベクトル
の方向であり、輪郭追跡方向(実施例では追跡方向の右
側に黒画素が存在するように追跡する)でもある。
【0036】さて、上記の如く、ベクトルを抽出してい
くと、結局のところ、2値画像の輪郭からは、それぞれ
のベクトル長が異なるにしても、必ず、水平ベクトル、
垂直ベクトル、水平ベクトル、垂直…という具合に垂直
と水平ベクトルが交互に発生する。
【0037】各パターンに対する処理は、図42に示す
フローチャートに従って行なわれるが、ここでは、各パ
ターンによってステップS4802からS4806まで
の処理を図26から図35に示すようにあらかじめ決め
ておくことで実施する。
【0038】以下に、各ケース毎の処理について説明す
るが、これらの処理の前に処理結果を蓄積するテーブル
をハードディスクやRAM上に用意しておく。また、以
下の説明から明らかになるが、本実施例では、水平ベク
トルのみを抽出し、その水平ベクトルのみで2値画像の
輪郭を表わすことを特徴としている。簡単に説明する
と、水平ベクトルを表わすデータは次の通りである。水
平ベクトルデータ={水平ベクトルの終点のx座標値、
水平ベクトルのy座標値、次に接続する水平ベクトル番
号}ここで、y座標値は、水平ベクトルでは一定であ
る。
【0039】例えば、水平ベクトルH(n)、垂直ベク
トルV(n)、水平ベクトルH(n+1)、垂直ベクト
ルV(n+1)、H(n+2)、V(n+2)、…がこ
の順序で接続されている場合、水平ベクトルH(n)の
終点のx座標をxn1、y座標値をyn1とした場合、
そのベクトルデータは次のように表される。 H(n)={xn1、yn1、n+1} ここで注目する点は、ベクトルH(n+1)の始点のx
座標値は、ベクトルH(n)の終点座標値xn1と同じ
値になることである。換言すれば、水平ベクトルH
(n)の始点のx座標は、水平ベクトルH(n−1)の
終点x座標値に等しい。従って、一連の輪郭ベクトルが
閉じていれば、各ベクトルデータは上記のとおり、3つ
のパラメータで十分表わすことができる。尚、上記例で
は、水平ベクトルのx座標値は、そのベクトルの終点の
x座標を用いたが、始点のx座標値で統一しても可能で
あるし、垂直ベクトルのみに着目しても同様に処理可能
ではある。
【0040】また、水平ベクトルH(n+1)は、水平
ベクトルH(n)と垂直ベクトルV(n)を挟んで接続
されているが、本実施例では水平ベクトルのみを着目
し、垂直ベクトルは、水平ベクトルから導き出されるの
で、その間の垂直ベクトルは無視する。そして、水平ベ
クトルH(n)と水平ベクトルH(n+1)は互いに接
続関係にあるとして説明する。
【0041】上記の内容を踏まえて、以下に説明する。
【0042】まず、抽出されたベクトルの中で、接続元
や接続先が未定な水平ベクトルを登録するため、図5に
示すようなテーブルをRAMもしくは外部記憶装置等に
用意する。
【0043】図5のテーブル501には、垂直接続にあ
る関係が未定の水平ベクトルナンバー(抽出されたベク
トルに付されたユニークな番号)を保持しておく。
【0044】例えば、図6のように水平ベクトル601
の終点の接続先の水平ベクトル602(この時点では水
平ベクトル602は抽出されていない)が未定のとき、
当該水平ベクトル601のナンバーを保持しておく。或
いは、図7のように、水平ベクトル701の始点に流入
してくる垂直ベクトルの始点を終点とする水平ベクトル
702が未定のとき、ベクトル701のベクトルナンバ
ーを保持する。保持したい水平ベクトルの終点或いはも
しくは始点の座標が(x,y)であればテーブル501
のx番目にそのベクトルナンバーを登録する。尚、テー
ブル501のX番目の情報(ベクトルナンバー)をv
(x)で示す。
【0045】また、図5のテーブル501は、図8のよ
うに着目している水平ベクトル801の始点に流入して
くる垂直ベクトルの始点を終点とする水平ベクトル80
2のナンバーを保持しておくため、あるいは図9のよう
に、水平ベクトル901の終点から流出する垂直ベクト
ルの終点を始点とする水平ベクトルを保持しておくため
のものとも言い換えることができる。
【0046】いずれにしても、注目点がベクトルの始点
或いは終点になっていて、その始点に流入してくる水平
ベクトル或いは終点から流出していく水平ベクトルが未
定の場合には、始点或いは終点のX座標値に対応する位
置v(x)に、注目水平ベクトルナンバーを登録する。
【0047】以上、図5のテーブル501は、保持した
い始点もしくは終点のx座標値に対応付けられており、
画像の主走査方向の画素数がm個のとき、0番目からm
番目のm+1個のベクトルナンバーを保持しておけるだ
けのサイズを用意すれば良い。
【0048】また、抽出されたベクトルを登録するた
め、図3に示すようなテーブル3000を用意する。
【0049】同図において、300は次に抽出される、
もしくは抽出中の水平ベクトルデータのベクトルナンバ
ーを指す値を保持するベクトルカウンタである。図3で
示されるテーブル3000において、欄301には、抽
出された、あるいは、抽出中の各水平ベクトルの終点の
X座標値が保持され、欄302には、同じく各水平ベク
トルのY座標値(y座標値は始点と終点のどちらも同じ
値である)を保持する。
【0050】また、欄303で示される欄には、注目水
平ベクトルの終点の次に接続される水平ベクトルのベク
トルナンバーが保持されている。即ち、先に説明したよ
うに、各輪郭ベクトルは、図3で示すテーブル上では
{水平ベクトルの終点のX座標値、水平ベクトルのY座
標値、流出する先の水平ベクトルナンバー}の形で表現
されている。
【0051】この表現は、水平ベクトルと垂直ベクトル
の交互接続で表現されていたベクトル列を、水平ベクト
ルの情報のみで表現している形となっている。
【0052】この図3に示すテーブル3000の内容と
抽出ベクトルの関係を図4を用いてより詳しく説明す
る。
【0053】今、ある水平ベクトル41が、他の水平ベ
クトル42に流出しているとする(水平ベクトル42に
水平ベクトル41が流入しているとも言う)。また、水
平ベクトル42は、水平ベクトル43に流出していると
する。ベクトル41,42,43のベクトルナンバー
は、それぞれν41,ν42,ν43であるとする。ベクトル
41の始点は点411で、座標値は、(x411,y41)
とし、終点は点412で座標値は(x412,y41)とす
る。ベクトル42の始点は点421で、座標値は(x42
1,y42)とし、終点は点422で、座標値は(x422,
y42)とする。また、ベクトル43の始点は点431
で、座標値は(x431,y43)とし、終点は点432
で、座標値は(x432,y43)とする。
【0054】この場合、ベクトル41の図3で示すテー
ブル3000上での表現は、ベクトルナンバーν41の行
に、{x412,y41,ν42}となり、ベクトル42はベ
クトルナンバーν42の行に、{x422,y42,ν43}と
なる。これらベクトル41と42の2つのベクトルのデ
ータから、その間に存在する垂直ベクトル44の始点4
12の座標値は(x412,y41)であることが、容易か
つ、一意に得られることは、図4から自明である。
【0055】また、水平ベクトル42の始点の座標値x
421は、値x412と等しいことから、ベクトル42の始点
座標は(x412,y42)であることも、容易、かつ、一
意に得られることが図4から自明である。以下、同様
に、ベクトルナンバーν42のデータとν43のデータか
ら、垂直ベクトル45の始点422と、水平ベクトル4
31の始点も定まる。
【0056】この様に、図3で示すテーブル3000上
の各輪郭ベクトルのデータは、先に説明した水平ベクト
ルと垂直ベクトルの交互に接続する輪郭ベクトル列を、
表現しているデータ形態のひとつとなっている。
【0057】次に、実施例のベクトル抽出処理につい
て、それぞれのケースについて説明する。本実施例で
は、2×2の領域を単位として処理することになるか
ら、全部で16通り(ケース0〜15)に分けることが
可能になる。
【0058】<ケース0>図10は4画素領域内の画素
がすべて白画素の状態(ケース0)である。この場合、
注目点は輪郭点(垂直ベクトルの始点もしくは終点)と
なり得ないので、処理は行なわれず次のラスタ走査位置
へ注目領域(ウインドウ)を1画素分ずらす。
【0059】<ケース1>図11は、4画素領域の左上
の画素だけが黒画素で、残りが白画素の状態(ケース
1)である。この場合、領域1101の注目点○印11
02は輪郭点であり、水平ベクトルの始点である。この
場合には、図26に示すフローチャートに従って処理を
行う。このとき、注目点の座標は(x,y)であるとす
る。
【0060】この輪郭点に流入する水平ベクトルの終点
は、既にラスタ走査によって走査済みの領域にある。な
ぜなら、図1に示すように左から右方向に処理を進め、
1ラスタの走査が済んだら次のラインを走査するため下
方向に処理が進むからである。従って、注目点を始点と
する水平ベクトルは図5のテーブル501のx番目v
(x)に既に登録されていることになる。すなわち、こ
れによって注目している水平ベクトル1104の始点及
び終点位置(図示の左方向にあることが既にわかってい
る)も確定したことになる。
【0061】そこで、ステップS2601では、図36
のフローチャートが示すルーチンIをコールし、その接
続関係を明らかにする。
【0062】先ず、ステップS3601でテーブル50
1のv(x)に登録されているベクトルナンバーを、図
3のテーブル3000中のカウンタ300で示されるレ
コードの欄303に登録する。これによって、注目水平
ベクトルの始点位置を流出先とする水平ベクトルを確定
することが可能になる。換言すれば、注目水平ベクトル
に流入してくる水平ベクトルを確定する。
【0063】また、次のステップS3602では、図5
におけるテーブルのv(x)に登録されている値を0に
クリアする。これによって、その水平ベクトルの始点位
置と、そこに流出してくる水平ベクトルが確定する。
【0064】さて、水平ベクトル1104の終点は既に
走査済みの輪郭点であり(実施例では、2値画像の左→
右の順に走査し、その走査が完了すると下方向に進めて
同様の走査を行うとしている)、図3で示す輪郭ベクト
ルバッファにその座標値が既に保持されている。そこ
で、ステップS2602でベクトルカウンタ300の値
を+1を加えて、新たに検出されるであろうベクトルデ
ータに備えて、ベクトルナンバーを生成する。
【0065】こうして、ケース1の処理を終える。そし
て、次のラスタ走査位置へ注目領域をずらす。
【0066】<ケース2>図12は、4画素領域の右上
の画素だけが黒画素で、あとは白画素の状態(ケース
2)である。この場合、領域1201の注目点△120
2は輪郭点であり、水平ベクトルの終点である。この場
合には、図27に示すフローチャートに従って処理を行
う。
【0067】まず、ステップS2701では、注目点の
座標(x,y)を水平ベクトルの終点として、ベクトル
カウンタ300で示されるベクトルナンバー(注目水平
ベクトルの番号)で示される位置の欄301にxを、欄
302にyの値を登録する。次に、注目水平ベクトル1
203に流入する水平ベクトルは未定であるので(但
し、この時点では水平ベクトル1203の始点は不明で
ある)、ベクトルカウンタ300の値は変えずに、ステ
ップS2702に進む。
【0068】ステップS2702では、この輪郭点から
流出する先にある水平ベクトルの始点を検索する。この
水平ベクトルの始点は既に走査済みの輪郭点であるの
で、垂直接続未定テーブル501のx番目のv(x)に
登録されていることになる。従って、ステップS270
2で図37のフローチャートが示すルーチンIVをコー
ルし、その接続関係を確定する。
【0069】先ず、ステップS3901でカウンタ30
0に保持される値のベクトルナンバーに対応するレコー
ド中の欄303に、v(x)に登録されているベクトル
ナンバーを登録する。次のステップS3902で、v
(x)に登録されている値を0にクリアする。
【0070】こうして、図27のケース2の処理を終え
る。そして、次のラスタ走査位置へ注目領域をずらす。
【0071】<ケース3>図13は上半分の2画素が黒
画素の状態(ケース3)である。この場合、注目点は輪
郭点とはならないので(水平ベクトルの途中の点であっ
て、始点及び終点の両方が不定であり、考慮することが
必要がない)、処理は行なわれず次のラスタ走査位置へ
注目領域をずらす。
【0072】<ケース4>図14は、4画素領域の左下
の画素だけが黒画素で、あとは白画素の状態(ケース
4)である。この場合、領域1401の符号1402で
しめされる注目点△は輪郭点であり、水平ベクトルの終
点である。
【0073】この場合には、図28にフローチャートに
従って処理が行われる。
【0074】ステップS2801では、注目点の座標
(x,y)を水平ベクトルの終点として、図5のテーブ
ルのカウンタ300で示される位置の欄301にxを、
欄302にyの値を登録する。
【0075】次に、この輪郭点から流出する水平ベクト
ルの始点は未走査の領域にあるので、ステップS280
2で図38のフローチャートが示すルーチンVIIIが
コールされ、ここでカウンタ300の値をテーブル50
1のx番目の項v(x)に登録する。
【0076】こうして、図28の最後のステップS28
03でカウンタ300に1を加えて、ケース4の処理を
終える。そして、次のラスタ走査位置へ注目領域をずら
す。
【0077】<ケース5>図15は左半分の画素が黒画
素の状態(ケース5)である。この場合、注目点は輪郭
点とはならないので、処理は行なわれず次のラスタ走査
位置へ注目領域をずらす。
【0078】<ケース6>図16は右上と左下の画素が
黒画素の状態(ケース6)である。この場合、領域16
01の注目点は2つベクトルの輪郭点になり、両方のベ
クトルの水平ベクトルの終点であると考える。点160
2に関しては後述するケース14と同じルーチンで処理
される。点1603に関しては後述するケース7と同じ
ルーチンで処理される。したがって、本ケースの処理は
図29のフローチャートで示される。その後、次のラス
タ走査位置へ注目領域をずらす。
【0079】<ケース7>図17は、4画素領域の右下
の画素だけが白画素であとは黒画素の状態(ケース7)
である。この場合、領域1701の注目点△1702は
輪郭点であり、水平ベクトルの終点である。
【0080】この場合には、図30に示されるフローチ
ャートに従って処理が行われる。
【0081】ステップS3001では、注目点の座標
(x,y)を水平ベクトルの終点として、カウンタ03
00で示される位置の欄0301にxを、欄0302に
yの値を登録する。
【0082】次に、この輪郭点から流出する先にある水
平ベクトルの始点は未走査の領域にあるので、ステップ
S3002でルーチンVIIIがコールされる。
【0083】ルーチンVIIIより戻ると、ケース7の
処理を終える。そして、次のラスタ走査位置へ注目領域
をずらす。
【0084】<ケース8>図18は、4画素領域の右下
の画素だけが黒画素で、あとは白画素の状態(ケース
8)である。この場合、領域1801の符号1802で
示される注目点“○”は輪郭点であり、水平ベクトルの
始点である。図31に処理のフローチャートを示す。
【0085】この輪郭点へ流入する水平ベクトルの終点
は未走査の領域にあるので、ステップS3101で図3
8のフローチャートが示すルーチンVIIIがコールさ
れ、ここでカウンタ300の値をテーブル501のx番
目の項v(x)に登録する。
【0086】ルーチンVIIIより戻ると、ケース8の
処理を終える。そして、次のラスタ走査位置へ注目領域
をずらす。
【0087】<ケース9>図19は左上と右下の画素が
黒画素の状態(ケース9)である。この場合、注目点は
2つベクトルの輪郭点であり、両方の水平ベクトルの始
点であると考える。点1902に関しては後述するケー
ス13と同じルーチンで処理される。点1903に関し
ては後述するケース11と同じルーチンで処理される。
したがって、ケース9の処理は図32のフローチャート
で示される。その後、次のラスタ走査位置へ注目領域を
ずらす。
【0088】<ケース10>図20は右半分の画素が黒
画素の状態(ケース10)である。この場合、注目点は
輪郭点とはならないので、処理は行なわれず次のラスタ
走査位置へ注目領域をずらす。
【0089】<ケース11>図21は、4画素領域の左
下の画素だけが白画素で、あとは黒画素の状態(ケース
11)である。この場合、領域2101の符号2102
で示される注目点○は輪郭点であり、水平ベクトルの始
点である。
【0090】図33に示されるフローチャートに従って
処理される。但し、注目点の座標は(x,y)であるも
のとする。
【0091】この輪郭点に流入してくる水平ベクトルの
終点は、未走査の領域にあるので、ステップSS330
1でルーチンVIII(ケース4での処理で説明した)
がコールされる。
【0092】ステップS3302では、この水平ベクト
ル2104の終点は既に走査済みの輪郭点であるので、
カウンタ0300に1を加えて、ケース11の処理を終
える。そして、次のラスタ走査位置へ注目領域をずら
す。
【0093】<ケース12>図22は下半分の画素が黒
画素の状態(ケース12)である。この場合、注目点は
輪郭点とはならないので、処理は行なわれず次のラスタ
走査位置へ注目領域をずらす。
【0094】<ケース13>図23は、4画素領域の右
上の画素だけが白画素であとは黒画素の状態(ケース1
3)である。この場合、領域2301の符号2302で
示される注目点“○”は輪郭点であり、水平ベクトルの
始点である。
【0095】図34のフローチャートに従って処理され
る。但し、注目点の座標は、(x,y)であるものとす
る。
【0096】この輪郭点に流入してくる水平ベクトルの
終点は、既に走査済みの輪郭点であるので、ステップS
3401でルーチンI(ケース1のところで説明した)
がコールされる。
【0097】ルーチンIより戻ると、ケース13の処理
を終える。そして、次のラスタ走査位置へ注目領域をず
らす。
【0098】<ケース14>図24は、4画素領域の左
上の画素だけが白画素であとは黒画素の状態(ケース1
4)である。この場合、領域2401の符号2402で
示される注目点“△”は輪郭点であり、水平ベクトルの
終点である。
【0099】この場合には、図35に示されるフローチ
ャートに従って処理される。
【0100】ステップS3501では、注目点の座標
(x,y)を水平ベクトルの終点として、ベクトルカウ
ンタ300の保持する値のベクトルナンバーに対応した
項のテーブル3000の欄301にxを、欄302にy
の値を登録する。
【0101】この輪郭点が流出する先にある水平ベクト
ルの始点は、既に走査済みの輪郭点であるので、ステッ
プS3502でルーチンIV(ケース2で既に説明し
た)がコールされる。
【0102】最後のステップS3503でカウンタ03
00に1を加えて、ケース14の処理を終える。そし
て、次のラスタ走査位置へ領域領域をずらす。
【0103】<ケース15>図25は4画素領域内の画
素がすべて黒画素の状態(ケース15)である。この場
合、注目点は輪郭点とはならないので、処理は行われず
次のラスタ走査位置へ注目領域をずらす。
【0104】以上説明した注目ウインドウにつき、上記
ケース0〜15のいずれか1つ行われる。そして、図4
2のステップS4807で入力2値画像全体に対する処
理が完了したと判断するまで、ステップS4801〜ス
テップS4807を繰り返す。
【0105】図39は本実施例の輪郭抽出を行なうハー
ドウェア構成例を示すブロック図である。尚、先に説明
した全てのフローチャートに対するプログラムは図39
におけるメモリ4414に格納されているものであり、
CPU4413によって実行されるものである。
【0106】尚、図39において、4402は信号線4
401を介して入力される画像をやりとりするための入
力制御部であり、この信号線4401よりラスタ走査形
式で順次2値画像データが入力されてくる。4403は
ラッチで、4402より入力データを、図示していない
画素同期クロックにて1画素づつ順次更新しながら保持
する。次の画素同期クロックにて、ラッチ4403は次
の画素データを4402より入力する。このとき、既に
保持していた画像データは、その画像クロックに同期し
てラッチ4404に保持される。
【0107】4407は1ラスタ分の画素データを保持
するFIFO(ファーストイン・ファーストアウト・メ
モリ)である。FIFO4407はラッチ4404の出
力を順次画素同期クロックに同期して取り込み、1ラス
タ前のデータを4405へ出力する。
【0108】ラッチ4405,ラッチ4406はラッチ
4403,ラッチ4404と同様の働きをする。
【0109】このようにして、ラッチ4403,440
4,4405,4406に記憶された4個の画素は図1
に示した4画素領域の画素データを記憶していることに
なる。
【0110】尚、信号線4401には、例えば所定の装
置、例えばイメージスキャナやファクシミリ装置、或い
はパーソナルコンピュータに代表される情報処理装置が
接続されていて、それらの装置から図1に示すごとく主
走査方向について1ラインずつのイメージデータが転送
されてくる。
【0111】4408はCPU4413の入力ポート
で、ラッチ4403,4404,4405,4406の
データ、すなわち、先に説明した2×2の領域の画像デ
ータを取り込むためのものである。4410は主走査方
向の画素間格子位置を示す主走査カウンタであり、図示
していない副走査同期信号によりリセットされ、画素同
期信号によりカウントアップする。すなわち、注目点の
X座標値を保持する。4411は副走査方向の画素間格
子位置を示す副走査カウンタで、図示していないページ
同期信号によりリセットされ、副走査同期信号によりカ
ウントアップされる。すなわち、注目点のY座標値を保
持する。
【0112】4409は入出力制御用の入出力制御ポー
トであり、入出力制御回路4402に対し、画素データ
入力の実行および保留を指示する信号、および4402
よりCPU4413への画素データ更新を知らせる信号
等を保持する。4415はハードディスク4416(最
終的に抽出された輪郭情報を格納するために使用され
る)の入出力装置である。入出力制御ポート4409、
主走査カウンタ4410、副走査カウンタ4411、入
力ポート4408、メモリ4414、ディスクI/O4
415はバス4412を介してCPU4413に接続さ
れている。
【0113】こうして、CPU4413は入出力制御ポ
ート4409を介して画素データの更新を行ない、主走
査カウンタ4410、副走査カウンタ4411を介して
4画素領域のウィンドウの位置を知り、入力ポート44
08を介してウィンドウ内の画素状態を知ることができ
る。
【0114】CPU4413は1回の処理が終わると、
入出力制御ポート4409を介して4個のラッチに記憶
される画素データの更新を指示し、同時に画素データの
更新完了の信号をリセットする。入出力制御ポート44
09はこの更新の指示を受けると、画素データの更新指
示の信号をクリアするとともに、後段のラッチにラッチ
される画像データを更新し、この更新が終了すると入出
力制御ポート4409に、更新完了の信号を出力する。
【0115】CPU4413は、更新の指示を出した
後、入出力制御ポート4409より更新完了の信号が入
力されるのを監視している。この更新完了の信号が入力
されると、新たに4個のラッチに記憶された画素データ
に関する処理を実行し、以下同様にこれを繰り返すもの
である。入出力制御ポート4409は、画像領域の最後
の4画素領域の処理を終えた際に、入出力制御回路44
01に終了信号を出力する。
【0116】<第2の実施例>第1の実施例において、
ケース6の処理、及び、ケース9の処理をそれぞれケー
ス14とケース7、ケース13とケース11の処理の組
み合わせて行ったが、これに限るものではない。例え
ば、ケース6に対しては、図40に示すフローチャート
に従って処理を行ない、ケース9に対しては図41に示
すフローチャートに従って処理を行っても良い。
【0117】まず、図40のフローチャートに基づいて
ケース6についての処理を説明する。
【0118】ケース6は、図16に示したように、注目
点が2つの水平ベクトルの終点になっている場合であ
る。
【0119】ステップS4001では、注目点の座標
(x,y)を水平ベクトルの終点1602として、ベク
トルカウンタ300によって示されているテーブル30
00のレコードの欄301にxを、欄302にyの値を
登録する。
【0120】次に、ステップS4002では、この輪郭
点1602から流出して行く先の水平ベクトルの始点
は、既に走査済みの領域にあるので、テーブル501の
ν(x)の欄に保持されている値を、ベクトルカウンタ
300で示されているテーブル3000のレコード中の
欄303に登録する。この水平ベクトルの始点は、既に
走査済みの輪郭点であるので、ステップS4003でカ
ウンタ300に1を加えて、ステップS4004へ進
む。
【0121】ステップS4004以降では、注目点の座
標(x,y)が水平ベクトル1603の終点とした処理
を行う。
【0122】まず、ステップS4004では、ベクトル
カウンタ300の保持する値のベクトルナンバーに対応
したテーブル3000のレコード中の欄301にxを、
欄302の欄にyの値を登録する。
【0123】次に、ステップS4005では、この輪郭
点1603から流出して行く先にある水平ベクトルの始
点は、未走査の領域にあるので、ルーチンVIIIがコ
ールされる。こうして、このルーチンから処理が返って
くると、次のラスタ走査位置へ注目領域をずらす。
【0124】次に、図41のフローチャートに従ってケ
ース9の処理を説明する。ケース9は、図19に示すご
とく、注目点が2つの水平ベクトルの始点になる場合で
ある。ここでは、注目点の座標は、(x,y)であるも
のとする。
【0125】まず、注目点が図19における点1902
であるとした場合の処理を行う。
【0126】領域1901の注目点1902が、水平ベ
クトルの始点であり、この輪郭点に流入してくる水平ベ
クトルの終点は、既に走査済みの輪郭点である。従っ
て、ステップS4101で、テーブル501のν(x)の
保持する値と等しいベクトルナンバーをもつ、テーブル
501における欄303に、カウンタ300の値を登録
する。
【0127】ステップS4102では、領域1901の
注目点にあるもう一つの水平ベクトルの始点1903に
対する処理を行う。この注目点1903に流入してくる
水平ベクトルの終点が未走査領域にあるので、ルーチン
VIIIをコールする。ルーチンVIIIから戻ると、
ステップS4103へ進む。ステップS4103では、
始点1903をもつ水平ベクトルの終点は、既に操作し
た領域にあることから、この水平ベクトルの終点のX座
標値、Y座標値共に、登録済みであるので、ベクトルカ
ウンタ300の値を1増やして、ケース9の処理を終え
る。そして、次のラスタ走査位置へ注目領域をずらす。
【0128】以上の様に、本第2の実施例におけるケー
ス6及びケース9の処理は、第1の実施例における処理
と比較し、テーブル501へのアクセス回数を減らすこ
とができるため、より高速な処理が可能となる。
【0129】<第3の実施例>これまでの実施例の説明
においては、基本的に水平ベクトルの終点を検知した時
に、その水平ベクトルの座標データを登録するものとし
てきた。即ち、水平ベクトルの終点のX座標値と、Y座
標値をそれぞれ図3に示すテーブル3000の欄301
と欄302に登録しているのは、注目点に水平ベクトル
の終点があるパターン(ケース2,ケース4,ケース
6,ケース7,ケース14)のみである様に構成してき
たが、本発明は、これに限るものではない。
【0130】例えば、水平ベクトル単位で、その接続関
係を表現するのは先の例と同じとして、水平ベクトルの
終点のX座標値の替わりに、水平ベクトルの始点のX座
標値を採用することも可能である。即ち、水平ベクトル
の始点を検知した時に、その水平ベクトルの座標データ
を登録する様に構成するのである。この場合、図3のテ
ーブル3000の欄301には、水平ベクトルの始点の
X座標値を登録するものとし、その他の欄は先の実施例
と同じ値を登録するものとする。そして、注目点に水平
ベクトルの始点があるパターンのみで、即ち、ケース
1,ケース8,ケース9,ケース11,ケース13のみ
で、図3のテーブル3000の欄301と、欄302
に、その時の注目点の座標値を登録する様に構成すれば
よい。図5に示した、垂直接続関係未定ベクトル保持テ
ーブル500の構成や、このテーブルへのデータの登録
・更新・参照・消去等は、先の実施例における各ケース
の処理をそのままの形で行えば、実現可能である。即
ち、図3のテーブル3000の欄303の流出先のベク
トルナンバーの扱いや、ベクトルカウンタ300の扱い
に関しては、先の実施例と全く同様に構成すればよい。
【0131】また、水平ベクトルの終点のX座標値のみ
を注目点に水平ベクトルの終点があるパターンで登録
し、水平ベクトルのY座標値のみを、注目点に水平ベク
トルの始点があるパターンで登録する様に構成すること
も可能である。この場合も、ベクトル間の接続情報や、
ベクトルナンバーの管理に関しては、先の実施例に準ず
る構成をとればよい。
【0132】水平ベクトルの始点のX座標値のみを、注
目点に水平ベクトルの始点があるパターンで登録し、水
平ベクトルのY座標値のみを、注目点に水平ベクトルの
終点があるパターンで登録する様な構成も、勿論可能で
ある。
【0133】<第4の実施例>上記各実施例の説明にお
いては、基本的にベクトルの接続関係は、水平ベクトル
の終点から、他の水平ベクトルの始点に対してベクトル
が流出するものとして考え、図3のテーブル3000の
欄303の様に流出先のベクトルを特定する形式で、実
現されるものとしてきたが、本発明は、これに限るもの
ではない。即ち、水平ベクトルの始点に対して、他の水
平ベクトルの終点から流入してくるものとして考え、こ
れに沿って構成してもよい。この場合、例えば図3のテ
ーブル3000の欄303を流入元のベクトルを特定す
るデータとしてベクトルナンバーを保持するものとすれ
ばよい。これに伴って、先の実施例の各ケースにおい
て、この図3のテーブル3000の欄303の管理にま
つわる部分を、図5のテーブル501のν(x)にデータ
を新たに書き込んでいた部分は、ν(x)からデータを読
み出して、図3のテーブル3000の欄303に書き込
む様に、また、反対にν(x)を読み出して、テーブル3
000の欄303に書き込んでいた部分は、新たにν
(x)にその時点の注目のベクトルナンバーを書き込む様
にそれぞれ変更してやることにより、容易に構成が可能
であることがわかる。
【0134】尚、本発明は複数の機器から構成されるシ
ステムに適用しても、1つの機器から成る装置に適用し
ても良い。また、本発明はシステム或は装置にプログラ
ムを供給することによって達成される場合にも適用でき
ることは言うまでもない。
【0135】また、実施例では、2値画像から輪郭ベク
トルを抽出することにのみ説明したが、2値画像の入力
はイメージリーダから、或いは2値画像を記憶したフロ
ッピーディスク等の媒体から、更には通信を介して得ら
れた画像(例えばファクシミリ受信画像)から得ても良
く、その手段は問わない。また、抽出した輪郭ベクトル
から所望の倍率、回転等を施した高品位の2値画像を再
生し、プリンタ等による出力できる。
【0136】また、抽出されたベクトルは、垂直及び水
平ベクトルのみで構成される。従って、得られたベクト
ルデータを変倍して、それでもって2値画像の輪郭をイ
メージメモリ内に描画、そしてその輪郭内部をペイント
したとする。このとき、縮小した場合には問題はない
が、拡大した場合にはそれで出来上がる2値画像の輪郭
部分はギザギザが誇張させる。そこで、得られたベクト
ルデータから、連続する数本のベクトルデータを平滑化
して、ベクトル数を減らすと共に凹凸を減らして、ベク
トルデータを修正する。例えば、原画像中に斜め線があ
る場合、上記の処理では例えば、右、上、右、上、右、
…というベクトルの抽出が行われ、且つ、そのパターン
がある規則性に従っている場合、斜め方向の1本もしく
は数本のベクトルに補正して、ベクトルの本数はもとよ
り、変倍しても滑らかな輪郭を形成することが可能にな
る。
【0137】つまり、本発明は、2値画像を形成するこ
とを特徴とするものではなく、入力した2値画像から如
何にして、メモリ容量を少なくしつつ、高速に輪郭ベク
トルを抽出することを特徴とするものであり、その後の
処理によって限定されるものではない。
【0138】以上説明したように本実施例によれば、従
来に比し、処理回路規模を減らし、低コスト化を実現す
ると共に、不要なメモリアクセスが減ることにより処理
速度が向上した輪郭情報抽出装置が構成できるという効
果が得られる。
【0139】また、この種の装置に要していた抽出中の
ベクトルデータの保持用のメモリの所要量を削減するこ
とが可能となり、安価な輪郭情報抽出装置が構成できる
という効果が得られる。
【0140】また、従来に比し、処理内容が簡素化さ
れ、かつ、不要なメモリアクセスが減ることにより、処
理速度が向上される効果が得られる。
【0141】また、この種の手法に要する抽出中のベク
トルデータ保持用のメモリの所要量が削減されることか
ら、より安価な装置を利用して輪郭情報抽出が可能とな
る効果が得られる。
【0142】
【発明の効果】以上説明したように本願発明によれば、
処理回路規模の更なる縮小と低コストを図ると共に、不
要なメモリアクセスを減らすことにより、処理速度を向
上させて画像の輪郭情報を抽出することが可能になる。
【0143】
【図面の簡単な説明】
【図1】画像の走査方向及び注目点とその近傍画素の関
係を示す図である。
【図2】注目点の位置を表現するための座標のとり方を
説明する図である。
【図3】ベクトルデータテーブルの一例を示す図であ
る。
【図4】ベクトルデータと輪郭点座標値の対応を示す図
である。
【図5】垂直接続関係が未定のベクトルナンバーを保持
しておくテーブルを示す図である。
【図6】流出する先の水平ベクトルの始点が未定の例を
示す図である。
【図7】流入してくる水平ベクトルの終点が未定の例を
示す図である。
【図8】流入してくる水平ベクトルの終点を決定する例
を示す図である。
【図9】流出する先の水平ベクトルの始点を決定する例
を示す図である。
【図10】実施例における輪郭ベクトル抽出処理におけ
るケース0の状態を示す図である。
【図11】実施例における輪郭ベクトル抽出処理におけ
るケース1の状態を示す図である。
【図12】実施例における輪郭ベクトル抽出処理におけ
るケース2の状態を示す図である。
【図13】実施例における輪郭ベクトル抽出処理におけ
るケース3の状態を示す図である。
【図14】実施例における輪郭ベクトル抽出処理におけ
るケース4の状態を示す図である。
【図15】実施例における輪郭ベクトル抽出処理におけ
るケース5の状態を示す図である。
【図16】実施例における輪郭ベクトル抽出処理におけ
るケース6の状態を示す図である。
【図17】実施例における輪郭ベクトル抽出処理におけ
るケース7の状態を示す図である。
【図18】実施例における輪郭ベクトル抽出処理におけ
るケース8の状態を示す図である。
【図19】実施例における輪郭ベクトル抽出処理におけ
るケース9の状態を示す図である。
【図20】実施例における輪郭ベクトル抽出処理におけ
るケース10の状態を示す図である。
【図21】実施例における輪郭ベクトル抽出処理におけ
るケース11の状態を示す図である。
【図22】実施例における輪郭ベクトル抽出処理におけ
るケース12の状態を示す図である。
【図23】実施例における輪郭ベクトル抽出処理におけ
るケース13の状態を示す図である。
【図24】実施例における輪郭ベクトル抽出処理におけ
るケース14の状態を示す図である。
【図25】実施例における輪郭ベクトル抽出処理におけ
るケース15の状態を示す図である。
【図26】ケース1の処理内容を示すフローチャートで
ある。
【図27】ケース2の処理内容を示すフローチャートで
ある。
【図28】ケース4の処理内容を示すフローチャートで
ある。
【図29】ケース6の処理内容を示すフローチャートで
ある。
【図30】ケース7の処理内容を示すフローチャートで
ある。
【図31】ケース8の処理内容を示すフローチャートで
ある。
【図32】ケース9の処理内容を示すフローチャートで
ある。
【図33】ケース11の処理内容を示すフローチャート
である。
【図34】ケース13の処理内容を示すフローチャート
である。
【図35】ケース14の処理内容を示すフローチャート
である。
【図36】ルーチンIの処理内容を示すフローチャート
である。
【図37】ルーチンIVの処理内容を示すフローチャー
トである。
【図38】ルーチンVIIIの処理内容を示すフローチ
ャートである。
【図39】実施例における装置のブロック構成図であ
る。
【図40】第2の実施例で用いるケース6の処理内容を
示すフローチャートである。
【図41】第2の実施例で用いるケース9の処理内容を
示すフローチャートである。
【図42】処理の全体の流れを示すフローチャートであ
る。
【符号の説明】
4402 入力制御部 4403〜4406 ラッチ 4407 FIFO 4408 入力ポート 4409 入出力制御ポート 4410 主走査カウンタ 4411 副走査カウンタ 4413 CPU 4414 メモリ 4415 ディスクI/O 4416 ファイル
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平8−7114(JP,A) 特開 平1−251180(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06T 7/00 G06T 9/20 JICSTファイル(JOIS)

Claims (12)

    (57)【特許請求の範囲】
  1. 【請求項1】 画像データを入力し、入力された画像の
    有意な画素を常に右側或いは左側にした追跡方向に沿っ
    た輪郭ベクトルを抽出する輪郭情報抽出装置であって、 画像データ中のn×mの画素領域の画素データを所定の
    方向に沿って順次入力する入力手段と、 入力した画素領域の画素データに基づいて、所定方向に
    おける前記追跡方向のベクトルの始点或いは終点を検出
    する端点検出手段と、ここで、前記所定方向は主走査、
    副走査方向のいずれか一方である; 該端点検出手段でもってベクトル端点が検出された場
    合、当該端点に最寄りの前記所定方向のベクトルが既に
    検出されているか否かを前記画素領域の状態に応じて判
    別する判別手段と、 該判別手段により、最寄りの所定方向のベクトルが未検
    出であると判別した場合、検出された注目ベクトルの端
    点の座標に関連付けて、当該注目ベクトルの識別情報を
    記憶する第1の記憶手段と、 前記端点検出手段で検出された端点が、前記所定方向の
    追跡方向のベクトルの終点である場合、当該終点を持つ
    所定方向の注目ベクトルに対する識別情報に関連付け
    て、当該注目ベクトルの座標データを記憶すると共に、 注目ベクトルの終点の先の追跡方向にある最寄りの前記
    所定方向のベクトルが既に検出されていると前記判別手
    段が判別した場合、当該注目ベクトルの終点の座標デー
    タに基づいて前記第1の記憶手段を検索し、注目ベクト
    ルに対する最寄りのベクトルの識別情報を抽出して記憶
    する第2の記憶手段とを備えることを特徴とする輪郭情
    報抽出装置。
  2. 【請求項2】 前記画素領域は、2×2画素領域である
    ことを特徴とする請求項記載の輪郭情報抽出装置。
  3. 【請求項3】 前記第2の記憶手段でもって、注目ベク
    トルに対する前記最寄りのベクトルの識別情報を記憶し
    た場合、当該最寄りの識別情報を前記第1の格納手段か
    ら消去することを特徴とする請求項第項に記載の輪郭
    情報抽出装置。
  4. 【請求項4】 画像データを入力し、入力された画像の
    有意な画素を常に右側或いは左側にした追跡方向に沿っ
    た輪郭ベクトルを抽出する輪郭情報抽出方法であって、 画像データ中のn×mの画素領域の画素データを所定の
    方向に沿って順次入力する入力工程と、 入力した画素領域の画素データに基づいて、所定方向に
    おける前記追跡方向のベクトルの始点或いは終点を検出
    する端点検出工程と、ここで、前記所定方向は主走査、
    副走査方向のいずれか一方である; 該端点検出工程でもってベクトル端点が検出された場
    合、当該端点に最寄りの前記所定方向のベクトルが既に
    検出されているか否かを前記画素領域の状態に応じて判
    別する判別工程と、 該判別工程により、最寄りの所定方向のベクトルが未検
    出であると判別した場合、検出された注目ベクトルの端
    点の座標に関連付けて、当該注目ベクトルの識別情報を
    記憶する第1の記憶工程と、 前記端点検出工程で検出された端点が、前記所定方向の
    追跡方向のベクトルの終点である場合、当該終点を持つ
    所定方向の注目ベクトルに対する識別情報に関連付け
    て、当該注目ベクトルの座標データを記憶すると共に、 注目ベクトルの終点の先の追跡方向にある最寄りの前記
    所定方向のベクトルが既に検出されていると前記判別手
    段が判別した場合、当該注目ベクトルの終点の座標デー
    タに基づいて前記第1の記憶工程で記憶された内容を検
    索し、注目ベクトルに対する最寄りのベクトルの識別情
    報を抽出して記憶する第2の記憶手段とを備えることを
    特徴とする輪郭情報抽出方法。
  5. 【請求項5】 前記画素領域は、2×2画素領域である
    ことを特徴とする請求項第項に記載の輪郭情報抽出方
    法。
  6. 【請求項6】 前記第2の記憶工程でもって、注目ベク
    トルに対する前記最寄りのベクトルの識別情報を記憶し
    た場合、当該最寄りの識別情報を前記第1の記憶工程で
    記憶された内容から消去することを特徴とする請求項第
    項に記載の輪郭情報抽出方法。
  7. 【請求項7】 画像データを入力し、入力された画像の
    有意な画素を常に右側或いは左側にした追跡方向に沿っ
    た輪郭ベクトルを抽出する輪郭情報抽出装置であって、 画像データ中のn×mの画素領域の画素データを所定の
    方向に沿って順次入力する入力手段と、 入力した画素領域の画素データに基づいて、所定方向に
    おける前記追跡方向のベクトルの始点或いは終点を検出
    する端点検出手段と、ここで、前記所定方向は主走査、
    副走査方向のいずれか一方である; 該端点検出手段でもってベクトル端点が検出された場
    合、当該端点に最寄りの前記所定方向のベクトルが既に
    検出されているか否かを前記画素領域の状態に応じて判
    別する判別手段と、 該判別手段により、最寄りの所定方向のベクトルが未検
    出であると判別した場合、検出された注目ベクトルの端
    点の座標に関連付けて、当該注目ベクトルの識別情報を
    記憶する第1の記憶手段と、 前記端点検出手段で検出された端点が、前記所定方向の
    追跡方向のベクトルの始点である場合、当該始点を持つ
    所定方向の注目ベクトルに対する識別情報に関連付け
    て、当該注目ベクトルの座標データを記憶すると共に、 注目ベクトルの始点に対して追跡方向に逆方向にある最
    寄りの前記所定方向のベクトルが既に検出されていると
    前記判別手段が判別した場合、当該注目ベクトルの始点
    の座標データに基づいて前記第1の記憶手段を検索し、
    注目ベクトルに対する最寄りのベクトルの識別情報を抽
    出して記憶する第2の記憶手段とを備えることを特徴と
    する輪郭情報抽出装置。
  8. 【請求項8】 前記画素領域は、2×2画素領域である
    ことを特徴とする請求項第項に記載の輪郭情報抽出装
    置。
  9. 【請求項9】 前記第2の記憶手段でもって、注目ベク
    トルに対する前記最寄りのベクトルの識別情報を記憶し
    た場合、当該最寄りの識別情報を前記第1の格納手段か
    ら消去することを特徴とする請求項第項に記載の輪郭
    情報抽出装置。
  10. 【請求項10】 画像データを入力し、入力された画像
    の有意な画素を常に右側或いは左側にした追跡方向に沿
    った輪郭ベクトルを抽出する輪郭情報抽出方法であっ
    て、 画像データ中のn×mの画素領域の画素データを所定の
    方向に沿って順次入力する入力工程と、 入力した画素領域の画素データに基づいて、所定方向に
    おける前記追跡方向のベクトルの始点或いは終点を検出
    する端点検出工程と、ここで、前記所定方向は主走査、
    副走査方向のいずれか一方である; 該端点検出工程でもってベクトル端点が検出された場
    合、当該端点に最寄りの前記所定方向のベクトルが既に
    検出されているか否かを前記画素領域の状態に応じて判
    別する判別工程と、 該判別工程により、最寄りの所定方向のベクトルが未検
    出であると判別した場合、検出された注目ベクトルの端
    点の座標に関連付けて、当該注目ベクトルの識別情報を
    記憶する第1の記憶工程と、 前記端点検出工程で検出された端点が、前記所定方向の
    追跡方向のベクトルの始点である場合、当該始点を持つ
    所定方向の注目ベクトルに対する識別情報に関連付け
    て、当該注目ベクトルの座標データを記憶すると共に、 注目ベクトルの始点に対して追跡方向に逆方向にある最
    寄りの前記所定方向のベクトルが既に検出されていると
    前記判別手段が判別した場合、当該注目ベクトルの始点
    の座標データに基づいて前記第1の記憶工程で記憶され
    た内容を検索し、注目ベクトルに対する最寄りのベクト
    ルの識別情報を抽出して記憶する第2の記憶工程とを備
    えることを特徴とする輪郭情報抽出方法。
  11. 【請求項11】 前記画素領域は、2×2画素領域であ
    ることを特徴とする請求項第10項に記載の輪郭情報抽
    出方法。
  12. 【請求項12】 前記第2の記憶工程でもって、注目ベ
    クトルに対する前記最寄りのベクトルの識別情報を記憶
    した場合、当該最寄りの識別情報を前記第1の記憶工程
    で記憶された内容から消去することを特徴とする請求項
    10項に記載の輪郭情報抽出方法。
JP07058470A 1994-06-17 1995-03-17 輪郭情報抽出装置及びその方法 Expired - Fee Related JP3093950B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP07058470A JP3093950B2 (ja) 1995-03-17 1995-03-17 輪郭情報抽出装置及びその方法
DE69525390T DE69525390D1 (de) 1994-06-17 1995-06-16 Verfahren und Vorrichtung zur Gewinnung von Konturinformation
US08/491,603 US6356656B1 (en) 1994-06-17 1995-06-16 Contour-information extraction apparatus and method
EP95304214A EP0687994B1 (en) 1994-06-17 1995-06-16 Contour-information extraction apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP07058470A JP3093950B2 (ja) 1995-03-17 1995-03-17 輪郭情報抽出装置及びその方法

Publications (2)

Publication Number Publication Date
JPH08255252A JPH08255252A (ja) 1996-10-01
JP3093950B2 true JP3093950B2 (ja) 2000-10-03

Family

ID=13085327

Family Applications (1)

Application Number Title Priority Date Filing Date
JP07058470A Expired - Fee Related JP3093950B2 (ja) 1994-06-17 1995-03-17 輪郭情報抽出装置及びその方法

Country Status (1)

Country Link
JP (1) JP3093950B2 (ja)

Also Published As

Publication number Publication date
JPH08255252A (ja) 1996-10-01

Similar Documents

Publication Publication Date Title
EP0831418B1 (en) Method and apparatus for character recognition
JP2523222B2 (ja) 画像縮小/拡大方法及び装置
JP3093950B2 (ja) 輪郭情報抽出装置及びその方法
JP3256083B2 (ja) 輪郭情報抽出装置及びその方法
JPH05108823A (ja) 輪郭抽出方法及び装置
JPH0652304A (ja) 画像処理装置及びその方法
EP0687994B1 (en) Contour-information extraction apparatus and method
US5583955A (en) Image processing apparatus
JP2885996B2 (ja) 画像処理方法及び装置
JPH02130692A (ja) 特徴抽出回路
JP2625045B2 (ja) 画像処理装置
JP2743378B2 (ja) 文字認識方法
JP3037504B2 (ja) 画像処理方法及びその装置
JP3396374B2 (ja) 画像処理装置及び画像処理方法
JP2957050B2 (ja) 画像データ拡大装置
JP2933947B2 (ja) 画像処理方法及び装置
JP3045810B2 (ja) 二値画像処理方法および装置
JPH05290162A (ja) 画像入力装置の線図形分岐点接続方法
JPH0750512B2 (ja) 画像処理装置
JP3272381B2 (ja) 領域境界点抽出方法
JP2838556B2 (ja) 画像処理装置
JPS641827B2 (ja)
JPH0821059B2 (ja) 文字輪郭生成時の不要データ除去方式
JPH0571990B2 (ja)
JPS63113770A (ja) 画像処理方式

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20000630

LAPS Cancellation because of no payment of annual fees