(57)【要約】【課題】  ２重始点が検出された画素間格子の次の格子では始点が現れない性質を利用して、該２重始点の処理に必要な始点座標の登録２回の内の１回を、次の格子に移すことによって処理の分散化を図り、どの格子も同一のサイクル数で処理できるようにして、高い性能を保証できる輪郭抽出ハードウェアを提供する。水平ベクトルの２重端点の処理を高速化することによって、輪郭情報を抽出するハードウェアの高速化を図る。【解決手段】  水平ベクトルの端点を検出する手段と、該端点を登録する手段と、２重端点を検出する手段と、水平ベクトルの接続情報を格納する手段とを有し、２重端点検出手段で登録すべき２重端点を検出した時に、該端点の座標を２つの画素間格子に分けて２回登録することを特徴とする。【選択図】  図１０
2008217571.tif 000002
【特許請求の範囲】
【請求項１】
主走査方向順序で入力される２値画像の画素間境界の交点を画素間格子と見立て、着目する画素間格子が主走査方向ベクトルの始点または終点になっているかを、該画素間格子を中心とする２×２近傍画素パターンから検出する端点検出手段と、
検出した端点の始点または終点座標値を登録する端点登録手段と、
前記端点検出手段と並列に動作する２重端点検出手段と、
副走査方向ベクトルを介して接続する主走査方向ベクトルの接続関係を示す情報を格納する接続情報格納手段とを有し、
前記２重端点検出手段の検出結果に基づいて、該端点の座標を２つの画素間格子に分けて２回登録することを特徴とする輪郭情報抽出装置。
【請求項２】
主走査方向順序で入力される２値画像の画素間境界の交点を画素間格子と見立て、着目する画素間格子が主走査方向ベクトルの始点または終点になっているかを、該画素間格子を中心とする２×２近傍画素パターンから検出する端点検出手段と、
検出した端点の始点または終点座標値を登録する端点登録手段と、
副走査方向ベクトルを介して接続する主走査方向ベクトルの接続関係を示す情報を格納する接続情報格納手段と、
前記端点検出手段と並列に動作する２重端点検出手段と、
該２重端点検出結果を２値情報として保持する２値情報保持手段とを有し、
前記接続情報格納手段は、検出した２重端点の１端点座標に対し２つの接続情報を格納することを特徴とする輪郭情報抽出装置。
【請求項３】
主走査方向の各々の画素間格子座標において、前記端点が奇数回または偶数回出現したかという情報を保持する端点出現情報保持手段を有し、
２重端点検出時には該端点出現情報を変更せず、２重ではない単なる端点を検出した時には該端点出現情報を変更し、該端点出現情報に基づいて次に出現する端点を処理することを特徴とする前記請求項１乃至請求項２記載の輪郭情報抽出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２値画像をラスタ走査順に処理しながら輪郭情報を抽出する輪郭情報抽出装置に関するものである。
【背景技術】
【０００２】
本発明の先行技術として、特登録３０９３９５０号公報がある。以下では、該先行技術について説明する。該先行技術は、２値画像中の全ての輪郭線情報を１回のラスタ走査だけで抽出でき、かつ、全画像データを記憶するための画像メモリを必要とせず、少ないメモリ容量で輪郭抽出処理が可能である。
【０００３】
また、正方画素の周囲４つの頂点を画素間格子と見なし、画素の中心位置でなく、該画素間格子を水平または垂直方向につなぐベクトルを単位として輪郭を抽出することによって、１画素幅の細線に対しても有為な幅を抽出可能な輪郭線抽出法である。すなわち、図１に示すように１画素の周囲４辺を各々単位ベクトルとし、図２に示すように該単位ベクトルのつながりして水平ベクトル（主走査方向ベクトル）や垂直ベクトル（副走査方向ベクトル）を抽出して輪郭線とする。
【０００４】
該先行技術では、２値画像の画素間の格子位置に注目しながらラスタ走査を行い、前記格子位置の近傍画素群の状態に基づいて、主走査方向及び副走査方向の輪郭ベクトルの始点と終点を検出する検出手段と、前記輪郭ベクトル同士の接続状態を判別し保持する接続状態保持手段と、前記保持手段により保持された輪郭ベクトルの接続状態をもとに、前記画像データの輪郭情報を抽出する抽出手段とを備える。
【０００５】
ここで、近傍画素群は、前記画素間格子を中心とする２×２の計４個の画素であり、該４画素の状態数は全部で１６通りしか無いため、該状態に基づいて行う輪郭ベクトルの検出処理を簡略化することが出来る。
【０００６】
また、水平ベクトルと垂直ベクトルの両方を抽出するのは、冗長な処理であるため、先行技術では、入力２値画像の有意な画素を常に右側（或いは左側）に見ながら追跡方向に沿って輪郭ベクトルを抽出するにあたり、ラスタ走査順序で入力される２×２近傍画素の画素データ（状態）に基づいて、水平方向における前記追跡方向のベクトルの始点と終点を検出する。（以下では、始点と終点をまとめて端点と呼ぶことにする）
輪郭として抽出するベクトルの情報の中身は座標値の集まりであり、前記端点の座標値がベクトル情報になる。よって、検出した水平ベクトルの端点の座標値を登録する必要があるが、何を登録するかによって２つの方式に分けられる。
【０００７】
一つは始点座標を登録する方式、もう一つは終点座標を登録する方式であるが、最終的には同じ結果が得られる上に、処理の過程で得られる情報も基本的に同じであり、ほとんど違がない。ここでは、始点座標を「座標テーブル」と呼ぶテーブルに登録することとする。すなわち、図３に示すように、当該座標を始点とするベクトルの識別番号（ベクトルナンバー）によってアクセスする該座標テーブルに始点座標のＸ座標値とＹ座標値を登録する。
【０００８】
また、着目している水平ベクトルは、垂直ベクトルを介して、別の水平ベクトルにつながる。前記登録した始点座標が別のどのベクトルにつながるかと言った情報（接続元ベクトルナンバー）を図４に示す「接続テーブル」と呼ぶテーブルに格納する。
【０００９】
前記始点座標や接続ベクトルナンバー以外に、接続関係が未確定の水平ベクトルナンバーを保持しておく必要がある。画素間格子座標の１水平座標毎に、該ベクトルナンバーを保持するために、図５に示す「未接続テーブル」を用意する。
【００１０】
ある水平ベクトルの始点を検出した時、該ベクトルに付与されたベクトルナンバーでアクセスする座標テーブルへ、該始点座標を登録するが、この時、接続元の水平ベクトルナンバーが確定している場合と未確定の場合がある。
【００１１】
接続先が確定している場合には、前記ベクトルナンバーでアクセスする接続テーブルへ、接続先の水平ベクトルナンバーを格納して、接続情報を形成する。接続先が未確定の場合には、接続が確定するまで、当該水平ベクトルナンバーを未接続テーブルへ一旦保持する。以下に具体例を示す。
【００１２】
例えば、図６のように水平ベクトル６０１の終点の接続先の水平ベクトル６０２は（この時点では水平ベクトル６０２は抽出されていないため）未定であり、当該水平ベクトル６０１のナンバーを未接続テーブルに保持する。
【００１３】
或いは、図７のように、水平ベクトル７０１の始点に流入してくる垂直ベクトルを介して接続する水平ベクトル７０２は、この時点で未定であるため、ベクトル７０１のナンバーを未接続テーブルに保持する。この場合検出した端点が始点であるため、該始点座標を前記座標テーブルにも登録する。
【００１４】
前記未接続テーブルは、新たに検出した水平ベクトルの端点座標が、既に検出済みの水平ベクトルと水平座標を共有していないかどうかを調べるのに利用する。
【００１５】
すなわち、垂直ベクトルを介して接続関係にある水平ベクトルの端点は同一の水平座標値をとるため、該水平座標値が同じである端点は、接続関係にあると言える。
【００１６】
これによって、接続が未確定であった、前記座標テーブル中の始点座標の接続ベクトルナンバーが確定し、前記接続テーブルに該ベクトルナンバーを格納することができる。
【００１７】
２値画像をラスタ走査して、以上の処理を２値画像全体に対して行うと、すべての水平ベクトルの接続関係が確定し、前記「座標テーブル」と「接続テーブル」が完成する。
【００１８】
該完成したテーブルに対して、例えば、テーブルの先頭に登録されている座標のベクトルナンバーから出発して、前記登録した始点座標を読み出しながら、該始点座標に接続するベクトルナンバーを辿り、次のベクトルの始点座標を読み出していくと、やがて出発した座標に戻る。
【００１９】
この時、読み出した輪郭ベクトルの座標情報（輪郭情報）によって閉ループが形成され、非常に効率よく輪郭情報の抽出を行うことができる。これによって、不要なメモリアクセスを減らすことにより、処理速度を向上させて画像の輪郭情報を抽出することが可能になる。
【００２０】
しかし、上記処理をハードウェアで高速に処理しようとすると、以下に述べる問題が発生する。
【００２１】
２×２近傍画素の値が図８（Ａ１）に示す状態である場合、着目する画素間格子は２つの水平ベクトルの始点となり、図８（Ｂ１）に示す状態である場合、２つの垂直ベクトルの始点となる。８近傍隣接画素間で連結している場合、水平ベクトルと垂直ベクトルの接続状態は、各々図８（Ａ２）（Ｂ２）に示すようになる。
【００２２】
以下ではこのような始点を２重始点、２つの水平ベクトルの終点を２重終点、両者をまとめて２重端点と呼ぶことにする。前記座標テーブルへ登録する座標を終点座標とする方式では、２重終点が問題になる。
【００２３】
水平ベクトルの２重始点には、２つの垂直ベクトルが流入するため、図１０に示す処理フローのように２重始点を検出すると該始点座標を２回登録し、該始点と接続が確定している水平ベクトルナンバーを前記接続テーブルに格納する。一方、２重ではない単なる始点の場合には、該始点座標を１回登録して、該始点との接続が確定している水平ベクトルがある場合には該ベクトルナンバーを格納する。
【００２４】
ソフト処理においては、この２回登録という処理はまったく問題にならない。２つの水平ベクトルを検出したわけであるから、それに伴い、始点アドレスを２回登録するのは当然のことである。
【００２５】
ところが、ハード処理では１つの画素間格子を処理するサイクル数が問題になる。どのような画素間格子に対しても最低限の処理（例えば、２×２近傍画素の状態を判定する処理など）を行う必要があるため、１画素間格子を処理するのに所定のサイクル数を要する。
【００２６】
１画素間格子を処理する基本となる処理は、前記近傍画素の状態を判定する処理、端点を検出する処理、検出した始点座標を登録する処理、そして、該始点の接続先のベクトルナンバーを格納する処理であり、ハードウェアではこれらを、見かけ上１サイクルで処理するのが一般的である。
【００２７】
前記４つの処理を１サイクルで処理したとすると、前記２重端点を処理する場合、処理時間のかかる前記始点座標の登録処理を２回行う必要があるため、１サイクルで処理しきれず、２サイクルを要することになる。この２重始点が画像中にたくさん存在するほど、画像全体を処理するのに多くの時間（サイクル数）がかかり、処理する２値画像データに依存して処理性能が低下してしまう。
【００２８】
終点座標を登録する方式では、２重終点を検出した時に、該終点座標を座標テーブルに２回登録する必要があり、同じように、２重終点が画像中いたくさん存在すると、処理性能が低下してしまう。
【特許文献１】特登録３０９３９５０号公報
【発明の開示】
【発明が解決しようとする課題】
【００２９】
着目する画素間格子が２つの水平ベクトルの端点（２重端点）として検出されると、該格子座標の登録を２回行う必要があり、２倍の処理サイクルがかかる。
【００３０】
各々の画素間格子を同一のサイクル数で処理するハードウェアにおいては、一番長い処理サイクルに合せる必要があり、この場合、全画素間格子を２倍のサイクル数で処理することになる。これは２倍の処理時間がかかることを意味する。
【００３１】
一方、画素間格子ごとに異なるサイクル数で処理することが許される場合、最低で１倍、最大で２倍のサイクル数となり、全画素間格子を処理するためのトータルのサイクル数は１倍以上１．５倍以下になる。この１．５倍という数値は、画素間格子が２つの水平ベクトルの始点になる割合が最悪５０％になるワーストケースを想定した値であり、特殊な２値画像では性能が１／１．５倍に低下することが有り得ることを示している。
【００３２】
これでは、輪郭抽出する処理性能を正確に評価できず、該輪郭情報抽出装置をシステムに組み込む際に、冗長性を持たせざるを得なくなる。すなわち、最適なシステムを構成することができないという問題が発生する。
【課題を解決するための手段】
【００３３】
上記問題を解決するために、本発明の２値画像の輪郭線抽出装置では、
主走査方向順序で入力される２値画像の画素間境界の交点を画素間格子と見立て、着目する画素間格子が主走査方向ベクトルの始点または終点になっているかを、該画素間格子を中心とする２×２近傍画素パターンから検出する端点検出手段と、
検出した端点の始点または終点座標値を登録する端点登録手段と、
前記端点検出手段と並列に動作する２重端点検出手段と、
副走査方向ベクトルを介して接続する主走査方向ベクトルの接続関係を示す情報を格納する接続情報格納手段とを有し、
前記２重端点検出手段で登録すべき２重端点を検出した時に、該端点の座標を２つの画素間格子に分けて２回登録することを特徴とする。
【発明の効果】
【００３４】
以上説明したように本発明によれば、着目する画素間格子が主走査方向ベクトルの始点または終点になっているかを、該画素間格子を中心とする２×２近傍画素パターンから検出する端点検出手段と、検出した端点の始点または終点座標値を登録する端点登録手段と、前記端点検出手段と並列に動作する２重端点検出手段と、副走査方向ベクトルを介して接続する主走査方向ベクトルの接続関係を示す情報を格納する手段とを有し、前記２重端点検出手段からの検出結果に基づいて、端点座標を２回登録する該登録処理の一部を次の画素間格子で行うよう制御することにより、ハードウェアでのさらなる高速な輪郭抽出を可能にした。
【発明を実施するための最良の形態】
【００３５】
＜第１の実施形態＞
本実施形態では、着目する画素間格子が２つの水平ベクトルの始点、すなわち２重始点になる場合に必要となる、２回の始点座標登録処理の一方を、次の画素間格子に移ってから行うようにする。
【００３６】
これによって、１画素間格子あたりに処理する内容は、多い場合でも、前記近傍画素の状態を判定する処理、端点を検出する処理、および、検出した端点の座標を登録する処理とし、一定のサイクル数で処理できるようにするものである。
【００３７】
このような処理が可能なのは、２重始点が検出された画素間格子の次の格子では、絶対に始点が検出されないからである。以下ではその理由について述べ、その後で実際の処理内容に説明する。
【００３８】
２値画像をラスタ走査して、水平ベクトルの始点検出を行う場合、ある画素間格子において始点が検出されると、次の格子でも始点が検出されることはあるが、さらに次の格子で始点が検出されることはない。
【００３９】
続けて２つの始点が検出される場合、該始点に対応する２つの水平ベクトルは、図９に示すように互いに反対方向、すなわち外側に向き、次に検出される端点は必ず終点になる。
【００４０】
２重始点は、続けて検出される２つの始点が重なったようなもので、２つの水平ベクトルの向きや、次に検出される端点に関して、上で記したこととまったく同じことが言える。よって、２重始点が検出された次の格子では始点が検出されることは絶対に無いと言える。
【００４１】
１つの水平ベクトルの始点が、（垂直ベクトルを介して）どの水平ベクトルに接続しているのかを示すために、前記水平ベクトルにナンバーを付与し、該識別番号でアクセス可能な、座標テーブルには該始点座標を登録し、接続テーブルには接続先の水平ベクトルのナンバーを格納する。
【００４２】
２重始点には、該始点を有する２つの水平ベクトルが存在するので、図１０に示したように、各々に付与したベクトルナンバー（ｐ，ｐ＋１）に対応するテーブル位置に該始点座標を登録し、該始点の接続元水平ベクトルナンバーが確定していれば、それを格納する。
【００４３】
ここで、２重始点ではない単なる始点座標を登録するタイミングと、該始点の接続先ベクトルナンバーを格納するタイミングが同じである場合とずれる場合があることを示す。
【００４４】
接続先の水平ベクトルの始点と終点を既に検出済みで該ベクトルナンバーが確定している場合、同じタイミングになるのに対し、接続先の水平ベクトルがどこに存在するのか確定しておらず、該ベクトルナンバーが不明の場合、タイミングがずれる。
【００４５】
言い換えると、副走査方向で見た時、接続先の水平ベクトルが先に存在し、その水平ベクトルに接続する着目する始点が後で検出される場合、始点座標の登録と接続先ベクトルナンバーの格納を同時に行うことができるので、同じタイミングとなる。
【００４６】
その逆に、着目する始点が先行し、後から接続先となる水平ベクトルが現れる場合、該始点座標を登録する時点で接続先ベクトルナンバーが不明であるため、該２種類の情報を登録し格納するタイミングがずれることになる。
【００４７】
２重始点というのは、上記２種類の始点が重なるので、始点座標の登録２回と、接続先の水平ベクトルナンバーの格納を行う必要があるが、既に説明したように、次の格子に移った時、新たに始点が検出されることは無いので、次の格子では新たな始点座標の登録を行うことは無い。
【００４８】
そこで、図１１の処理フローに示すように、２重始点検出時における始点座標の登録を１回だけ行い、次の格子に移ってから２つ目の登録（Ｓ１００７）を行うことにより処理を分散する。すなわち、２重始点を検出した次の格子のみ例外処理を行う。
【００４９】
この例外処理をきちんと行うために、ここでは、２重始点検出フラグＤを設け、２重始点を検出（Ｓ１００３）したら該フラグＤを１にセットし（Ｓ１０２１）、次の格子に移った時に、該フラグの値をみて（Ｓ１０２３）、０ならば、図１０に示す通常の処理を行い、１ならば前記始点座標の２回目の登録（Ｓ１００７）を行うと共に、前記フラグＤをクリアして０にする。
【００５０】
その結果、２重始点が検出された格子では、始点座標の登録１回と接続先の水平ベクトルナンバーの格納を１回行い、次の格子に移ってから始点座標の登録１回と、もし終点座標が検出されたら、以下に説明する処理を行うことになる。
【００５１】
始点とは対照的な終点を検出した時、該座標の登録は不要であるが、接続元の水平ベクトルナンバーが新たに確定する場合と確定しない場合とがあり、確定した場合には、接続元の水平ベクトルの登録済み始点座標に対応させて、前記終点を有するベクトルナンバーを接続テーブルに格納する。このベクトルナンバー格納処理は、上記始点座標の登録と重なることがあるが、この２つの処理は、元々、１格子で想定している処理内容と同じであるため、問題は無い。
【００５２】
さらに細かく見ていくと、Ｓ１００５とＳ１００７における始点座標の登録処理および、Ｓ１０１１とＳ１０２９における確定ベクトルナンバーの格納処理は、テーブルというメモリへのデータ格納処理であり、これら以外の検出等の処理と比べ、大幅に処理時間が長い。検出等の処理は論理演算のみで済むのでハードウェアでは非常に高速に処理できるからである。
【００５３】
前記始点座標の登録処理と確定ベクトルナンバーの格納処理は、前記座標テーブルと接続テーブルを独立にアクセスできるよう、図３、図４に示したように、分離して持っているため、並列処理が可能であり、片方の処理時間で両方処理できる。よって、２回目の始点座標の登録を次の格子へ移動しても、次の格子におけるメモリへのデータ格納処理は、タイミング的には１回のみで済む。
【００５４】
２重始点を検出した格子においても、前記２回目の始点座標の登録を次の格子へ移動することによって、メモリへのデータ格納処理は、タイミング的には１回のみとなり、ハードウェアによる高速処理が可能になることが分かる。
【００５５】
＜第２の実施形態＞
上記第１の実施形態では、着目する画素間格子が２つの水平ベクトルの２重始点になっていることを検出したら、該始点座標を２回登録する内の１回を、次の画素間格子に移すことによって、当該画素間格子における処理サイクル数の削減を図った。
【００５６】
それに対し本実施形態では、前記２重始点座標の登録そのものが１回で済むような形式で接続情報を持つことによって、各画素間格子の処理サイクル数を１サイクルまたは所定サイクルに抑えるものである。それを実現するために、本実施形態では、登録した端点座標が２重始点であることを示す２重始点フラグを有する座標テーブル２を用いる。該座標テーブル２の構成を図示すると図１２のようになる。
【００５７】
該２重始点フラグにはデフォルトで０の値を格納しておき、通常の単一端点の場合は対応するフラグを０のままとし、２重始点である場合に該始点座標を登録する時に対応する２重始点フラグを１にセットする。そして、２つ存在する接続先の水平ベクトルのベクトルナンバーを２つ格納できるよう拡張した図１３に示す接続テーブル２を用いる。
【００５８】
２重始点がある場合、副走査方向で見た時、図１４に示すように、接続元の水平ベクトルの１つ（ｒ）が先に存在し、間に該２重始点がきて、もう１つの接続元水平ベクトル（ｔ）が後に存在する。
【００５９】
そして、先に存在する水平ベクトルは、該２重始点が検出される時点でベクトルナンバー（図の例では１１７）が付与されており、確定した接続先として、接続テーブルの１列目に該ナンバーを格納することができる。この時点では、後に存在する水平ベクトル（ｔ）は不明であり、２つの接続先の一方が未確定のままである。
【００６０】
副走査方向に処理が進み、後に存在する水平ベクトル（ｔ）が検出されると、未確定であった接続先のベクトルナンバーが確定するので、前記接続テーブルの２列目に該ナンバーを格納することができる。
【００６１】
よって、接続テーブルの１列目には、２重始点を検出する以前に検出済みの水平ベクトルナンバーが入り、接続テーブルの２列目には、２重始点を検出した後に検出する（存在が確認される）水平ベクトルナンバーが入ることになる。
【００６２】
このように、１始点座標に対し、２重始点の２つの接続元水平ベクトルナンバーを格納する形式をとることによって、所定サイクルで該２重始点の接続情報を完全に保持することができ、ハードウェアによる高速処理が可能になる。
【００６３】
＜第３の実施形態＞
本実施形態では、前記未接続テーブルに対応する端点出現フラグのテーブルを設け、処理の簡略化を図るものである。
【００６４】
該端点出現フラグは、ある水平座標値が水平ベクトルの端点として、奇数回あるいは偶数回出現したことを表すのに用いる。図１５に該端点出現フラグの初期値（全部０）と出現したベクトルの端点によって該フラグの値がどのように変化するかを示した。
【００６５】
接続関係にある２つの水平ベクトルは、必ず垂直ベクトルを介してつながり、該垂直ベクトルの端点（２つの水平ベクトルの端点でもある）は、同一の水平座標値を有する。言い換えると、垂直ベクトルを介して接続している２つの水平ベクトルの始点と終点の組みは、同一の水平座標値を有している。
【００６６】
さらに言い換えれば、ある水平座標値を有する端点が現れたら（奇数回目）、必ず同じ水平座標値を有する別の端点が（偶数回目に）現れる。そして、該２つの端点は、それらを結ぶ垂直ベクトルによって接続される。
【００６７】
よって、ある水平座標値を有する端点が奇数回出現したら、その次は、接続先あるいは接続元となる水平ベクトルの端点が現れるのを待つという状況になる。
【００６８】
そこで、水平座標値を有する端点が奇数回出現したら、該水平座標値に対応する前記フラグを“１”に設定し、前記状況にあることがすぐ分かるようにする。このようにして、新たな水平ベクトルの端点が検出される度に、該端点と同じ水平座標を有する端点が、どういう状況にあるか前記フラグをアクセスして瞬時に知る。
【００６９】
該フラグが“１”であれば、検出したばかりの水平ベクトルの端点は、それ以前に出現している水平ベクトルと接続関係にあり、前記未接続テーブルに格納されている接続ベクトルのナンバーが、接続先あるいは接続元のベクトルナンバーになることが分かる。そして、該ベクトルナンバーを前記「接続テーブル」に格納して、接続情報を形成し、該フラグを“１”から“０”へ変更する。
【００７０】
新たに検出した水平ベクトルの端点に対応するフラグが“０”である場合には、それ以前に出現した水平ベクトルと接続関係を持つことは無く、この先に現れる水平ベクトルの端点とつながる。そこで、該端点の水平座標値に対応するフラグを“０”から“１”へ変更する。
【００７１】
以上説明したように、各水平座標値を有する端点の出現状況（奇数回／偶数回）をフラグ情報として持つことにより、処理を簡略化できる。
【００７２】
第１と第２の実施形態で問題となった２重端点を検出した場合には、フラグを２回変更することになるが、２回変更すると変更前の元の値に戻るため、結局、２重端点を検出した時はフラグの変更はしなくてもよい。
【図面の簡単な説明】
【００７３】
【図１】１画素の周囲４辺の単位ベクトルを表す図
【図２】水平ベクトルと垂直ベクトルの例を表す図
【図３】座標テーブルの構成を表す図
【図４】接続テーブルの構成を表す図
【図５】未接続テーブルの構成を表す図
【図６】未接続テーブルに保持するベクトルナンバーの例を表す図
【図７】未接続テーブルに保持するベクトルナンバーの別の例を表す図
【図８】２重始点、２重終点となる２×２画素近傍パターンを表す図
【図９】２重始点の後には必ず終点が現れることを表す図
【図１０】２重始点検出処理を含む従来の処理フローを表す図
【図１１】２重始点検出処理を含む第１実施形態の処理フローを表す図
【図１２】第２実施形態で用いる座標テーブル２の構成を表す図
【図１３】第２実施形態で用いる接続テーブル２の構成を表す図
【図１４】２重始点検出時点における接続確定水平ベクトルと接続未確定水平ベクトルを表す図
【図１５】第３実施形態で導入した端点出現フラグのテーブルの変化状況を表す図
【図１】
2008217571.tif 000003
【図２】
2008217571.tif 000004
【図３】
2008217571.tif 000005
【図４】
2008217571.tif 000006
【図５】
2008217571.tif 000007
【図６】
2008217571.tif 000008
【図７】
2008217571.tif 000009
【図８】
2008217571.tif 000010
【図９】
2008217571.tif 000011
【図１０】
2008217571.tif 000012
【図１１】
2008217571.tif 000013
【図１２】
2008217571.tif 000014
【図１３】
2008217571.tif 000015
【図１４】
2008217571.tif 000016
【図１５】
2008217571.tif 000017